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

 






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM