自學Linux Shell8.1-linux文件系統概述及操做

點擊返回 自學Linux命令行與Shell腳本之路html

8.1-linux文件系統概述及操做

1. linux支持的文件系統

  • Windows經常使用的分區格式有三種,分別是FAT1六、FAT3二、NTFS格式
  • Linux支持的文件系統:NFS、MINIX、MS-DOS和ext2,日誌文件系統:ext三、ext四、JFS、ReiserFS和XFS,同時還有加密文件系統(CFS)和虛擬文件系統(/proc)

1.1 基本文件系統

Ext:
extended filesystem擴展文件系統。
使用虛擬目錄來操做硬件設備,在物理設備上按定長的塊來存儲數據。
ext文件系統採用索引節點的系統來存放虛擬目錄中所存儲的文件信息。索引節點系統在每一個物理設備中建立一個單獨的表(索引節點表)才存儲這些文件。

存儲在虛擬目錄中的每個文件在索引節點表中都有一個條目。
linux經過惟一的數值(索引節點號)來引用索引節表中的每一個索引節點,這個值是建立問價時候由文件系統分配的。
文件系統時經過索引節點號而不是文件全名及路徑來標識文件。

Ext2:

Ext2是GNU/Linux系統中標準的文件系統。extended filesystem擴展文件系統。
這是Linux中使用最多的一種文件系統,它是專門爲Linux設計的,擁有極快的速度和極小的CPU佔用率。
Ext2既能夠用於標準的塊設備(如硬盤),也被應用在軟盤等移動存儲設備上。
node

1.2 日誌文件系統

日誌式文件系統(Journal File System),爲linux系統增添了一層安全性。linux

  • 以前是先將數據直接寫入存儲設備再更新索引節點表
  • 如今是先將文件的更改寫入到臨時文件(就是日誌)中,以便有須要時回溯追蹤
    且當在某個過程當中斷時,系統能夠根據這些記錄直接回溯並重整被中斷的部分,重整速度至關快。

linux系統普遍使用3中日誌系統方法(數據模式>有序模式>回寫模式):
安全

  • 數據模式:索引節點和文件都會被寫入日誌;丟失數據風險低,但性能差(安全性好,速度最慢,每次寫兩次數據,第一次寫入日誌,第二次寫入真正的存儲設備)
  • 有序模式:只有索引節點會被寫入日誌,但只有數據成功寫入後才刪除;在性能和安全性之間區中
  • 回寫模式:只有索引節點會被寫入日誌,但不控制文件數據什麼時候寫入;丟失數據風險高,但仍然比不用日誌好

Ext3:
Ext3是Ext2的下一代,也就是保有Ext2的格式之下再加上日誌功能。
Ext3是如今幾乎全部linux發行版默認的文件系統。
Ext3採用和Ext2相同的索引節點表結構,可是給每一個存儲設備增長了一個日誌文件,以便將準備寫入存儲設備的數據先寫入日誌。
Ext3默認狀況下采用有序模式。
缺點:
    Ext3文件系統沒法恢復誤刪的文件。
    Ext3文件系統沒有任何內建的數據壓縮功能。
    Ext3文件系統不支持加密
Ext4:
Ext4大多數流行的liunx發行版系統默認採用,好比Ubantu
Ext4文件系統支持數據壓縮和加密。
Ext4文件系統支持一個稱做區段的特性,在索引節點表中節省了一些空間。
Ext4文件系統引進了塊預分配技術。工具

Reiser:性能

Reiser文件系統,2001年
Reiser文件系統只支持回寫日誌模式。
Reiser文件系統引進2個特性:  能夠在線調整已有文件系統的大小  和 尾部壓縮技術。
JFS:
JFS文件系統只有在IBM linux系統使用。
JFS文件系統採用有序日誌模式。
XFS:
XFS文件系統採用回寫日誌模式。
XFS文件系統容許在線調整已有文件系統的大小,可是XFS文件系統只能擴大不能縮小。測試

1.3 寫時複製文件系統Copy-On-Write

  • COW技術利用快照兼顧了安全性和性能。
  • 若是要修改數據會使用克隆或可寫快照。
  • 修改過的數據並不會直接覆蓋當前數據,而是被放入文件系統中的另外一個位置上,即使數據修改已經完成以前的數據也不會被重寫
    (這樣的好處是一旦系統忽然斷電,重啓以後不須要作Fsck)
  • 最流行的cow是Btrf 和 ZFS

ZFS系統:
2005年研發,OpenSolaris操做系統使用
最大缺點:沒有GPL許可

Btrf 系統:
btrfs在Reiser4的諸多特性的基礎上作了可靠性改進。
OpenSUSE Linux發行版將btrfs最爲默認文件系統。優化

2. linux文件系統的操做

2.1 建立分區

什麼是分區?
分區是將一個硬盤驅動器分紅若干個邏輯驅動器,分區是把硬盤連續的區塊當作一個獨立的磁硬使用。分區表是一個硬盤分區的索引,分區的信息都會寫進分區表。

爲何要有多個分區?
加密

  • 防止數據丟失:若是系統只有一個分區,那麼這個分區損壞,用戶將會丟失所的有數據。
  • 增長磁盤空間使用效率:能夠用不一樣的區塊大小來格式化分區,若是有不少1K的文件,而硬盤分區區塊大小爲4K,那麼每存儲一個文件將會浪費3K空間。
                             這時須要取這些文件大小的平均值進行區塊大小的劃分。
  • 數據激增到極限不會引發系統掛起:將用戶數據和系統數據分開,能夠避免用戶數據填滿整個硬盤,引發的系掛起。

分區類型 :spa

  • 主分區:總共最多隻能分4個 ,主分區能夠直接格式化
  • 擴展分區:只能有1個,也算主分區的一種,也就是說主分區+擴展分區最多隻能有4個,可是擴展分區不能存儲數據和格式化,必須再劃分爲邏輯分區纔可用 
  • 邏輯分區:邏輯分區是在擴展分區中劃分的,若是是IDE硬盤,Linux最多支持59個邏輯分區,若是是SCSI硬盤,Linux最多支持11個邏輯分區

 

 fdisk工具的操做界面:

 fdisk命令提示符下可使用(經常使用):

  • m :顯示菜單和幫助信息
  • a :活動分區標記/引導分區
  • d :刪除分區
  • l :顯示分區類型
  • n :新建分區
  • p :顯示分區信息
  • q :退出不保存
  • t :設置分區號
  • v :進行分區檢查
  • w :保存修改
  • x :擴展應用,高級功能

 sudo fdisk /dev/sda1  

這塊硬磁還沒有分區,按"n"鍵新建一個分區。

 出現兩個菜單e表示擴展分區,p表示主分區
 按"p"鍵出現提示:"Partition number (1-4): "選擇主分區號
 輸入"1"表示第一個主分區。

這樣一個主分區就分好了。
接下來分第二個主分區,把剩餘空間都給第二個主分區。
按"n"
鍵新增一個分區
按"p"鍵設爲主分區
輸入"2"把主分區編號設爲2
按兩下回車把剩餘空間分給第二個主分區。
按"p"鍵打印分區表

而後經過w將更改保存在存儲設備上面。

3. 建立文件系統

 在將數據存儲到分區以前,必須將某種文件系統對其進行格式化,這樣linux才能使用它。每種文件系統類型都用本身的命令行程序來格式化分區。
 爲分區建立了文件系統以後,下一步是將它掛載到虛擬目錄下的某個掛載點,這樣就能夠將數據存儲在新文件系統中了。

mkfs -t fstype /dev/part

  • mkfs -t ext4   =    mkfs.ext4   =   mke2fs -t ext4
  • mkfs -t ext3   =   mkfs.ext3    =   mke2fs -j   =  mke2fs -t ext3
  • mkfs -t ext2   =    mkfs.ext2   =   mke2fs      =  mke2fs -t ext2

mke2fs [-b block大小] [-i inode大小] [-L 標頭] [-cj] 裝置
選項與參數:

  • -b :能夠配置每一個 block 的大小,目前支持 1024, 2048, 4096 bytes 三種;
  • -i :多少容量給予一個 inode 呢?
  • -c :檢查磁盤錯誤,僅下達一次 -c 時,會進行快速讀取測試;
            若是下達兩次 -c -c 的話,會測試讀寫(read-write),會很慢~
  • -L :後面能夠接標頭名稱 (Label),這個 label 是有用的喔!e2label命令介紹會談到~
  • -j :原本 mke2fs 是 EXT2 ,加上 -j 後,會主動加入 journal 而成爲 EXT3。

要想知道某個文件系統工具是否可用,使用type命令

以上表示btrfs文件系統不存在,ext2 ext3 存在。

tune2fs是調整和查看ext2/ext3文件系統的文件系統參數,Windows下面若是出現意外斷電死機狀況,下次開機通常都會出現系統自檢。
Linux系統下面也有文件系統自檢,並且是能夠經過tune2fs命令,自行定義自檢週期及方式。

參數 用途
-l 顯示文件系統超級塊信息
-L label 從新設定卷標
-m  調整預留給管理使用的塊所佔據整體空間比例
-r 調整預留給管理使用的塊的個數
-o 設定掛載默認選項
-O 設定文件系統默認特性
-E 調整文件系統的擴張屬性

tune2fs -r 40000 /dev/sdb1 調整/dev/sdb1分區的保留空間爲40000個磁盤塊

tune2fs  -o acl,user_xattr /dev/sdb1 設置/dev/sdb1掛載選項

啓用Posix Access Control Lists和用戶指定的擴展屬性

開機取消自檢:

tune2fs -l /dev/sdb1 | grep -E ‘Maximum mount count:|Check interval’
tune2fs -i 0 -c 0 /dev/sdb1

磁盤分區步驟:

  • fdisk /dev/sdb 新建分區
  • partprode 更新分區表
  • mkfs.ex4 /dev/sdb{1..3}  格式化製做文件系統
  • mkdir  /sdb1 建立目錄
  • mount /dev/sdb1   /sdb1 掛載

3. 文件系統的檢查與修復 

fsck命令可以檢查和修復大部分類型的Linux文件系統。 

fsck [-t 文件系統] [-ACay] 裝置名稱
選項與參數:

  • -t :如同 mkfs 同樣,fsck 也是個綜合軟件而已!所以咱們一樣須要指定文件系統。
  • 不過因爲現今的 Linux 太聰明瞭,他會自動的透過 superblock 去分辨文件系統,所以一般能夠不須要這個選項的囉!請看後續的範例說明。
  • -A :依據 /etc/fstab 的內容,將須要的裝置掃瞄一次。/etc/fstab 於下一小節說明,一般啓動過程當中就會運行此一命令了。
  • -a :自動修復檢查到的有問題的扇區,因此你不用一直按 y 囉!
  • -y :與 -a 相似,可是某些 filesystem 僅支持 -y 這個參數!
  • -C :能夠在檢驗的過程中,使用一個直方圖來顯示目前的進度!

EXT2/EXT3 的額外選項功能:(e2fsck 這支命令所提供)

  • -f :強制檢查!通常來講,若是 fsck 沒有發現任何 unclean 的旗標,不會主動進入細部檢查的,若是您想要強制 fsck 進入細部檢查,就得加上 -f 旗標囉!
  • -D :針對文件系統下的目錄進行優化配置。
相關文章
相關標籤/搜索