1. 程式人生 > 其它 >Linux磁碟格式化(mkfs、mkfs.xfs、mkfs.ext4)、Linux檔案系統的校驗(xfs_repair、fsck_ext4)

Linux磁碟格式化(mkfs、mkfs.xfs、mkfs.ext4)、Linux檔案系統的校驗(xfs_repair、fsck_ext4)

一、mkfs命令

    磁碟分割槽完畢後自然就是要進行檔案系統的格式化
    格式化其實就是建立檔案系統。命令就是===>mkfs(make fileststem),這個命令只是個綜合命令。它會呼叫正確的檔案系統格式化工具
    功能:mkfs是個綜合命令
    使用
        mkfs [tab] [tab]:按下兩下tab鍵檢視系統支援哪些檔案系統的格式化功能
        mkfs -t [檔案系統格式名]===>等同於mkfs.檔案系統格式名
        mkfs -t xfs 與 mkfs.xfs相同

二、格式化XFS檔案系統(mkfs.xfs)

    XFS檔案系統簡介:https://dongshao.blog.csdn.net/article/details/86694903
    功能:建立xfs檔案系統
    格式
        mkfs.xfs  [-b 引數]  [-d 引數]  [-i 引數]  [-l 引數]  [-L 引數]  [-f]  [-r 引數]  裝置名稱
        第一次執行mkfs.xfs可能需要安裝:apt-get install xfsprogs

相關引數

    -b:後面接的是區塊容量,範圍是512B-64K。不過Linux最大為4K
    -d:後面接的是data section(資料區)的相關引數值

agcount=數值    設定需要幾個儲存群組的意思(AG),通常與CPU有關
agsize=數值    每個AG設定為多少容量的意思。通常agcount/agsize只選一個設定
file    指的是格式化的裝置是個檔案而不是個裝置的意思(例如虛擬磁碟)
size=數值    data section的容量。你可以設定大小
su=數值    當有RAID(磁碟列陣)時,代表stripe的數值大小,與下面的sw搭配使用
sw=數值    當有RAID時,用於儲存資料的磁碟數量(需扣除備份盤與備用盤)
sunit=數值    與su意思相同。不過單位使用的是幾個sector(512B)的意思(一個stripe由多少個扇區組成)
swidth=數值    就是su*sw的數值,但是以幾個sector(512B)來設定

    -f:如果裝置內已經有了檔案系統,則需要使用-f強制格式化
    -i的引數:與inode有較相關的設定

size=數值    最小的是256B,最大是2K。一般使用256B就足夠了
internal=[0/1]    log裝置是否為內建。預設1為內建,如果使用外部裝置,使用下面設定
logdev=裝置名    log裝置為後面接的那個裝置上面的意思,需設定internal=0才可以
size=數值    指定這塊登入區的容量,通常最小得要512個區塊,大約2M=以上才行

    -L引數:後面接這個檔案系統的標頭名稱Label name
    -r引數:指定realtime section(實時執行區)的相關設定值

extsize=數值    就是那個重要的extent區塊數值,一般不需設定。但有RAID時,最好設定與swidth的數值相同較佳。最小為4K,最大為1G
演示案例

    使用mkfs.xfs命令時,一般預設回車就可以了,使用系統預設的
    演示案例1:使用gdisk新建一個sda2新分割槽,並格式化成為xfs檔案系統

    演示案例2:設定CPU的數量
        有時我們為了使用多個數據流來讀寫系統,以增加速度,需要設定多個agcount數量,agcount與CPU的核心數有關
        檢視一下系統的CPU數量:grep 'processor' /proc/cpuinfo
        如果需要兩個執行緒的CPU數量時:mkfs.xfs -f -d agcount=2 /dev/sda2

XFS檔案系統for RAID效能優化

    磁碟列陣(RAID):磁碟列陣是多塊磁碟組成一塊大磁碟的意思,利用同步寫入到這塊磁碟的技術,不但可以加快讀寫速度,還可以讓某一塊磁碟壞掉時,整個檔案系統還是可以持續執行,這就是所謂的容錯
    結構特點
        stripe:磁碟列陣通過將檔案先細分成為數個小型的分割槽區塊(stripe)之後,然後將眾多的stripes分別放到磁碟列陣裡面的所有磁碟,所以一個檔案是被同時寫入到多個磁碟中,效能會好一些。stripe與你的檔案資料容量以及效能相關性較高
        stripe的大小:分割槽區塊的數值介於4K-1M之間,這與你的磁碟列陣卡支援的選項有關。當你的系統多大是大型檔案時,一般建議stripe大一些,如果小檔案較多,建議設定64K左右
        安全性:在這些磁盤裡面,會保留數個校驗磁碟(parity disk),以及可能會保留一個以上的備用磁碟(spare disk)。這些磁碟會佔用總磁碟列陣的容量
    演示案例:使用mkfs.xfs格式化磁碟列陣。我們假設:
        我有兩個執行緒的CPU數量,所以agcount最好指定為2
        RAID的stripe指定為256K,則su也指定為256K
        磁碟列陣總共有8塊,因為RAID 5標準的設定,有1個校驗盤,所以指定sw為7
        由上述可知,資料寬度(swidth)指定為256K*7=1792K,extsize=1792K

mkfs.xfs -f -d agcount=2,su=256k,sw=7 -r extsize=1792k  /dev/sda2

    承上,如果我們使用sunit與swidth來設定,則
        sunit=256K/512B*1024B=512個sector
        swidth=7個磁碟*sunit=7*512=3584個sector

mkfs.xfs -f -d agcount=2,sunit=512,swidth=3584 -r extsize=1792k  /dev/sda2

三、ext4檔案系統格式化(mkfs.ext4)
  功能:建立ext4檔案系統
    格式

mkfs.ext4 [-b 引數]  [-L 引數]  裝置名稱

引數
        -b:後面設定區塊的大小,有1K、2K、4K
        -L:後面接這個裝置的標頭名稱Label name
    提示:
        ext4的預設值已經相當合適我們系統使用,大部分的預設值寫入至/etc/mke2fs.conf這個檔案中
        因此我們無需額外指定inode的容量,系統都幫我們做好了預設值,只需要知道uuid即可
    演示案例:

mkfs.ext4 /dev/sda2


四、其他檔案系統格式化

    mkswap 裝置檔名:用於記憶體交換分割槽的格式化
    mkfs.vfta 裝置檔名:vfat檔案系統格式的格式化

五、Linux檔案系統的校驗

    系統執行時,如果硬體或者電源等出問題,或者檔案系統執行時,磁碟與記憶體資料非同步的狀態發生,系統會出錯
    此時就需要檔案系統的校驗,不同的檔案系統命令不一樣,下面我們主要針對xfs於ext4檔案系統進行講解
    下面的命令只有當檔案系統出錯且為root身份時在使用,不要隨意使用,可能會對系統造成危害
    重點:修復檔案系統時,可能會造成檔案系統的改變,所以執行命令時,被檢測的硬碟分割槽不能被掛載,若掛載則不能順利的修復檔案系統,需要解除安裝後再處理。當然,沒有掛載的檔案系統可以處理

六、xfs_repair處理XFS檔案系統

    功能:對XFS檔案系統進行檢測或者修復
    格式:

xfs_repair [選項] 裝置名稱

選項:
        -f:後面的裝置其實是個檔案而不是裝置時使用
        -n:單純檢查並不修改檔案系統的任何資料
        -d:通常用在單人維護模式下,針對根目錄(/)進行檢查與修復(很危險,不要隨便使用)
    注意事項:Linux的根目錄無法被解除安裝,所以需要使用-d進入單人維護模式處理,但是跟某的檢查與修復儘量避免
    例如:校驗/dev/sda2分割槽

xfs_repair /dev/sda2

七、fsck_ext4處理ext4檔案系統
   功能:對ext4檔案系統進行檢測或者修復
    格式:

fsck_ext4 [選項] [-b 引數] 裝置名稱

選項與引數:
        -p:當檔案系統在修復時,如果有需要回復y的操作,自動回覆
        -f:強制詳細檢查。一般來說,fsck沒有發現任何unclean的標識,不會主動進入詳細檢查的。如果加上這個引數,fsck就會詳細檢查
        -D:針對檔案系統下的目錄進行最佳化配置
        -b的引數:後面跟的是超級區塊的位置,這個選項一般用不到。如果你的超級區塊受損時,就可以使用這個引數利用檔案系統的備份超級區塊來嘗試修復。一般來說,超級區塊備份在:1K區塊在8193、2K區塊在16384、4K區塊在32768
演示案例
①對32768區塊進行校驗:如果檔案系統出問題,會提示你是否輸入y進行修復。並且檔案系統修復完,會有警告資訊

fsck_ext4 -b 32768 /dev/sda2

 ②檔案系統正確,進行強制校驗

fsck_ext4 -f /dev/sda2