linux磁盤及文件系統之三文件系統的管理工具

centos7中,默認的文件系統類型已經變爲了xfscentos6默認不支持xfs類型的文件系統,可以通過yum install xfsprogs安裝支持程序來實現。

創建文件系統

創建文件系統常用的命令有mkfsmkfs.{ext[234]|xfs|vfat...}mke2fsmkfs是一個包裝器,它根據-t參數來確定要調用的文件系統構建器(mkfs.cramfs,mkfs.ext [234],mkfs.fat,mkfs.hfs等)

mke2fs是專用於ext系列文件系統的工具,mkfs.ext[234]mke2fs是相同的,都是執行的mke2fs的程序。下圖比較了四個可執行文件完全相同
在這裏插入圖片描述

注意先看下不同命令執行後,實際使用的程序及版本是完全一樣的。

在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述

當運行mkfs -t ext4時,它最終調用的是mke2fs

從功能上相比較mkfsmkfs.{ext[234]|xfs|vfat...},後者功能更爲強大(意思就是命令選項更多)。

  1. mkfs

    使用方式 : mkfs [-V] [-t fstype] [fs-options] filesys [blocks]

    fs-options 部分指定的參數會傳遞給真正用於創建文件系統的構造器,假如-t指定的文件類型爲xfs,則可以在後面指定mkfs.xfs需要的選項。

    屬性 作用
    device 預備檢查的硬盤分區,例如:/dev/sda1
    -t 給定檔案系統的類型,Linux 的預設值爲 ext2
    -c 在製做檔案系統前,檢查該partition 是否有壞軌
    -l bad_blocks_file 將有壞軌的block資料加到 bad_blocks_file 裏面
    block 生成塊的數量,ext系列每個塊的默認大小爲1024字節,xfs默認塊的大小爲 4096字節
  • mkfs.{ext[234]|xfs|vfat…}

    使用格式:mkfs.{ext[234]|xfs|vfat...} [options] device

    不同文件系統的選項參數有所不同,可以通過man mkfs.{ext[234]|xfs|vfat...}來查看具體的選項參數,比如centos7 現在默認的xfsext系列的選項差別還是很大的,使用的時候需要具體查一下。

    mkfs.xfs

    mkfs.ext4

    下表列出常用的選項。

    屬性 作用
    -b 指定文件系統每個塊的大小,
    ext系列的塊大小默認爲1k,可選值1024/2048/4096
    對於xfs類型的文件系統,-b選項的格式爲-b log=n|size=num,默認爲4k
    每個塊最小可以是1ksize的值必須爲2n次方k,最大不超過64k
    -L LABEL 指定卷標
    -m # 指定文件系統預留空間的百分比,默認值爲5
    -i # bypes-per-inode,指定inode與文件系統字節之比率,即沒多少個字節創建一個ionde
    $ sudo mkfs -t ext4 -L LABEL_NAME -m 3 -b 4096 /dev/sdb1
    mke2fs 1.42.9 (28-Dec-2013)                    # 實際使用的是 mke2fs
    Filesystem label=LABEL_NAME                    # 設定卷標
    OS type: Linux
    Block size=4096 (log=2)                        # 每個 block 的大小 
    Fragment size=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    65536 inodes, 262144 blocks                    # 創建的塊和inode的總數
    7864 blocks (3.00%) reserved for the super user  # 預留空間
    First data block=0                             # 起始塊
    Maximum filesystem blocks=268435456
    8 block groups                                 # 塊組數量
    32768 blocks per group, 32768 fragments per group  # 每個塊組包含多少個塊
    8192 inodes per group                          # 每個塊組有多少 inode
    Superblock backups stored on blocks:           # 超級塊所在的實際塊編號
    	32768, 98304, 163840, 229376
    
    Allocating group tables: done                  # 塊組表分配完成           
    Writing inode tables: done                     # 寫入元數據區完成
    Creating journal (8192 blocks): done           # 創建日誌區完成
    Writing superblocks and filesystem accounting information: done    # 寫入超級塊和整個文件系統完成
    
    
    $ sudo mkfs -t xfs -f  -L LABEL_XFS -b size=2k /dev/sdb1
    meta-data=/dev/sdb1              isize=512    agcount=4, agsize=131072 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=0, sparse=0
    data     =                       bsize=2048   blocks=524288, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal log           bsize=2048   blocks=5120, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    
    

修改文件系統屬性

ext系列

只對ext系列的文件系統有效。

  1. e2label

    • 查看文件系統卷標e2label DEVICE
    • 修改文件系統卷標e2label DEVICE LABEL_NAME
    $ sudo e2label /dev/sdb5
    ext4_label
    $ sudo e2label /dev/sdb5 new_label
    $ sudo e2label /dev/sdb5
    new_label
    
  2. tune2fs

    下面所有內容來自:http://linux.51yip.com/search/tune2fs

    tune2fs 調整/查看ext系列文件系統的參數,Windows下面如果出現意外斷電死機情況,下次開機一般都會出現系統自檢。Linux系統下面也有文件系統自檢,而且是可以通過tune2fs命令,自行定義自檢週期及方式。

    -l 查看文件系統信息;
    -c max-mount-counts 設置強制自檢的掛載次數,如果開啓,每掛載一次mount conut就會加1,超過次數就會強制自檢
    屬性 作用
    -i interval-between-checks[d|m|w]設置強制自檢的時間間隔[d天m月w周]
    -m reserved-blocks-percentage 保留塊的百分比
    -j 將ext2文件系統轉換爲ext3類型的文件系統
    -L volume-label 類似e2label的功能,可以修改文件系統的標籤
    -r reserved-blocks-count 調整系統保留空間
    -o [^]mount-option[,…] Set or clear the indicated default mount options in the filesystem. 設置或清除默認掛載的文件系統選項
    tune2fs -c 30 /dev/hda1           #設置強制檢查前文件系統可以掛載的次數
    tune2fs -c -l /dev/hda1           #關閉強制檢查掛載次數限制。
    tune2fs -i 10 /dev/hda1           #10天后檢查
    tune2fs -i 1d /dev/hda1           #1天后檢查
    tune2fs -i 3w /dev/hda1           #3周後檢查
    tune2fs -i 6m /dev/hda1           #半年後檢查
    tune2fs -i 0 /dev/hda1            #禁用時間檢查
    tune2fs -j /dev/hda1              #添加日誌功能,將ext2轉換成ext3文件系統
    tune2fs -r 40000 /dev/hda1        #調整/dev/hda1分區的保留空間爲40000個磁盤塊
    tune2fs -o acl,user_xattr /dev/hda1            #設置/dev/hda1掛載選項,啓用Posix Access Control Lists和用戶指定的擴展屬性
    
  3. dumpe2fs

    dumpe2fs命令用於打印ext文件系統的超級塊和塊組信息。dumpe2fs [options] [文件系統],常用參數爲-h,僅列出超級塊的數據。

     # 列出所有的文件系統的使用情況
    $ df -h
    文件系統        容量  已用  可用 已用% 掛載點
    tmpfs           2.4G  2.0M  2.4G    1% /run
    /dev/sda3       113G   29G   79G   27% /
    /dev/sda1       300M  6.6M  293M    3% /boot/efi
    /dev/sdb1       916G  345G  525G   40% /home
    ...
    
    # 查看 /dev/sdb1 中超級塊的信息
    $ dumpe2fs -h /dev/sdb1
    dumpe2fs 1.43.4 (31-Jan-2017)
    Filesystem volume name:   <none>
    Last mounted on:          /home    # 掛載點
    Filesystem UUID:          ef86575e-ad9a-4c4b-9491-0c74699f4a07
    Filesystem magic number:  0xEF53
    ...
    Default mount options:    user_xattr acl  # 掛載參數
    Filesystem state:         clean           # clean 表示文件系統正常
    Errors behavior:          Continue
    Filesystem OS type:       Linux
    Inode count:              61054976        # inode 總數
    Block count:              244190208       # block 總數
    Reserved block count:     12209510        
    Free blocks:              147309568       # 可用 block 數量
    Free inodes:              58206937        # 可用 inode 數量
    First block:              0
    Block size:               4096            # 每個 block 的大小爲 4k
    
    Inode size:	          256                 # inode 大小
    ...
    

xfs

xfs類型的文件系統,

xfs 文件系統的管理可以參考這裏

檢測修復

用於實現文件系統檢測修復的工具。

因爲進程意外中止或系統崩潰等原因導致的操作系統非正常中止時,可能會造成文件損壞,此時,應該檢測並修復文件系統,最好是離線進行。

ext系列使用e2fsck

xfs使用xfs_repair DEVICE

查看文件系統

blkid

查看文件系統相關屬性,blkid [options] DEVICE

參數 作用
-L LABEL 根據卷標來定位文件系統
-U UUID 根據 UUID 來定位文件系統
$ sudo blkid /dev/sdb5
/dev/sdb5: LABEL="ext4_label" UUID="8dc990bd-73e5-4133-950e-6ce88a8fac12" TYPE="ext4" 
$ sudo blkid -L ext4_label
/dev/sdb5
$ sudo blkid -U 8dc990bd-73e5-4133-950e-6ce88a8fac12
/dev/sdb5
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章