2021-05-12 14:32:11
Linux檔案系統簡介及其系統管理工具
常見的檔案系統
Linux檔案系統: ext2, ext3, ext4, xfs, btrfs, reiserfs, jfs, swap
swap: 交換分割區
光碟:iso9660
Windows:fat32, ntfs
Unix: FFS, UFS, JFS2
網路檔案系統:NFS, CIFS
叢集檔案系統:GFS2, OCFS2
分散式檔案系統:ceph, moosefs, mogilefs, GlusterFS, Lustre
實驗環境CentOS7.2
Linux根據其是否支援"journal"功能:
紀錄檔型檔案系統: ext3, ext4, xfs, ...
非紀錄檔型檔案系統: ext2, vfat
Linux的檔案系統的組成部分:
核心中的模組:ext4, xfs, vfat
使用者空間的管理工具:mkfs.ext4, mkfs.xfs, mkfs.vfat
在正式介紹檔案系統的前先說一下建立檔案系統之前的格式化問題。
格式化
低階格式化:硬體製造商、分割區之前劃分磁軌,形成簇 磁碟出廠前由廠家完成
高階格式化:分割區之後對分割區進行,建立檔案系統
每種作業系統所設定的檔案屬性/許可權不相同,為了存放這些所需的資料
我們常說的重灌系統及格式化都是屬於高階格式化層面的。本文所說的檔案系統均為高階格式化後的產物。
Linux檔案系統管理工具
blkid:塊裝置屬性資訊檢視
命令使用格式:blkid [OPTION]... [DEVICE]
-U UUID: 根據指定的UUID來查詢對應的裝置
-L LABEL:根據指定的LABEL來查詢對應的裝置
命令演示:
1
2
3
4
|
[root@localhost ~] # blkid /dev/sda1 /dev/sda1 : UUID= "6efb8a23-bae1-427c-ab10-3caca95250b1" TYPE= "xfs" [root@localhost ~] # blkid -U 6efb8a23-bae1-427c-ab10-3caca95250b1 /dev/sda1 |
…………………………………………………………………………………………………………
mkfs:檔案系統建立工具:
mkfs - build a Linux filesystem
命令使用格式:
1、 mkfs [options] [-t type] device [size]
[ -t type] :指定要建立的檔案系統型別ext4|xfs|btrfs|vfat|...|]
[options]:-L 'LABEL': 設定卷標 在建立檔案系統同時指定捲標。
-f 若檔案系統已存在,強制覆蓋
命令演示:
[root@localhost ~]# mkfs -L 'new1' -t ext4 /dev/sdb5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
mke2fs 1.42.9 (28-Dec-2013) 檔案系統標籤=new1 OS type : Linux 塊大小=1024 (log=0) 分塊大小=1024 (log=0) Stride=0 blocks, Stripe width=0 blocks 25688 inodes, 102400 blocks 5120 blocks (5.00%) reserved for the super user 第一個資料塊=1 Maximum filesystem blocks=33685504 13 block groups 8192 blocks per group, 8192 fragments per group 1976 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729 Allocating group tables: 完成 正在寫入inode表: 完成 Creating journal (4096 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 [root@localhost ~] # blkid /dev/sdb5 /dev/sdb5 : LABEL= "new1" UUID= "10880486-7ad9-43de-9607-f9bc1fda1edf" TYPE= "ext4" |
…………………………………………………………………………………………………………
2、 mkfs.FS_TYPE /dev/DEVICE
FS_TPYE:ext4、xfs、btrfs、vfat...
命令演示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
[root@localhost ~] # mkfs.xfs -L 'new2' /dev/sdb6 mkfs.xfs: /dev/sdb6 appears to contain an existing filesystem (ext3). mkfs.xfs: Use the -f option to force overwrite. [root@localhost ~] # mkfs.xfs -f -L 'new2' /dev/sdb6 meta-data= /dev/sdb6 isize=256 agcount=4, agsize=6400 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 finobt=0 data = bsize=4096 blocks=25600, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal log bsize=4096 blocks=853, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@localhost ~] # blkid /dev/sdb6 /dev/sdb6 : LABEL= "new2" UUID= "ed636bf6-1cee-43d1-96e2-8baa8dc29087" TYPE= "xfs" |
若/dev/sdb# 指定的磁碟塊已經存在檔案系統,執行命令mkfs會失敗,若加-f,則強制將原檔案系統覆蓋。慎用-f。
…………………………………………………………………………………………………………
mke2fs:ext系列檔案系統專用管理工具
mke2fs - create an ext2/ext3/ext4 filesystem
-t {ext2|ext3|ext4}指明要建立的檔案系統型別
-b {1024|2048|4096}指明檔案系統的塊大小
-L 'LABEL'指明卷標
-j: 建立有紀錄檔功能的檔案系統ext3
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i #: 為資料空間中每多少個位元組建立一個inode;此大小不應該小於block的大小;
-N #:為資料空間建立個多少個inode;
-m #: 為管理人員預留的空間占據的百分比;
-O [^]FEATHER:開啟或關閉某種特性;
命令演示:mk2fs建立ext2格式的檔案系統
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
[root@localhost ~] # mke2fs -t ext2 /dev/sd sda sda1 sda2 sdb sdb1 sdb2 sdb5 sdb6 sdb7 [root@localhost ~] # mke2fs -t ext2 /dev/sdb7 mke2fs 1.42.9 (28-Dec-2013) 檔案系統標籤= OS type : Linux 塊大小=1024 (log=0) 分塊大小=1024 (log=0) Stride=0 blocks, Stripe width=0 blocks 25688 inodes, 102400 blocks 5120 blocks (5.00%) reserved for the super user 第一個資料塊=1 Maximum filesystem blocks=67371008 13 block groups 8192 blocks per group, 8192 fragments per group 1976 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729 Allocating group tables: 完成 正在寫入inode表: 完成 Writing superblocks and filesystem accounting information: 完成 [root@localhost ~] # blkid /dev/sdb7 /dev/sdb7 : UUID= "4b9767fc-a8bf-4dda-9ce1-50eb5418da04" TYPE= "ext2" |
指定inode數及為管理人員預留空間的百分比
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
[root@localhost ~] # mke2fs -N 1024 -m 3 /dev/sdb7 mke2fs 1.42.9 (28-Dec-2013) 檔案系統標籤= OS type : Linux 塊大小=1024 (log=0) 分塊大小=1024 (log=0) Stride=0 blocks, Stripe width=0 blocks 1040 inodes, 102400 blocks 3072 blocks (3.00%) reserved for the super user 第一個資料塊=1 Maximum filesystem blocks=67371008 13 block groups 8192 blocks per group, 8192 fragments per group 80 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729 Allocating group tables: 完成 正在寫入inode表: 完成 Writing superblocks and filesystem accounting information: 完成 |
…………………………………………………………………………………………………………
e2label:管理ext系列檔案系統的LABEL
檢視:e2label device
設定:e2label device LABEL
命令演示:設定指定塊裝置的卷標
1
2
3
|
[root@localhost ~] # e2label /dev/sdb7 new3 [root@localhost ~] # e2label /dev/sdb7 new3 |
…………………………………………………………………………………………………………
tune2fs:重新設定ext系列檔案系統可調整引數的值(不進行格式化)
-l:檢視指定檔案系統超級塊資訊;super block
-L 'LABEL':修改卷標
-m #:修預留給管理員的空間百分比
-j: 將ext2升級為ext3
-O: 檔案系統屬性啟用或禁用
-o: 調整檔案系統的預設掛載選項
-U UUID: 修改UUID號;
命令演示:修改卷標
1
2
3
4
|
[root@localhost ~] # tune2fs -L 'another label' /dev/sdb7 tune2fs 1.42.9 (28-Dec-2013) [root@localhost ~] # blkid /dev/sdb7 /dev/sdb7 : LABEL= "another label" UUID= "a57b2116-d72b-48d2-a648-bb6d2d5487ac" TYPE= "ext2" |
升級ext2到ext3
1
2
3
4
5
|
[root@localhost ~] # tune2fs -j /dev/sdb7 tune2fs 1.42.9 (28-Dec-2013) Creating journal inode: 完成 [root@localhost ~] # blkid /dev/sdb7 /dev/sdb7 : LABEL= "another label" UUID= "a57b2116-d72b-48d2-a648-bb6d2d5487ac" SEC_TYPE= "ext2" TYPE= "ext3" |
…………………………………………………………………………………………………………
dumpe2fs:
-h:檢視超級塊資訊等同於tune2fs -l
命令演示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
[root@localhost ~] # dumpe2fs -h /dev/sdb7 dumpe2fs 1.42.9 (28-Dec-2013) Filesystem volume name: another label Last mounted on: <not available> Filesystem UUID: a57b2116-d72b-48d2-a648-bb6d2d5487ac Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype sparse_super Filesystem flags: signed_directory_hash Default mount options: user_xattr Filesystem state: clean Errors behavior: Continue Filesystem OS type : Linux Inode count: 1040 Block count: 102400 Reserved block count: 3072 Free blocks: 96568 Free inodes: 1029 First block: 1 Block size: 1024 Fragment size: 1024 Reserved GDT blocks: 256 Blocks per group: 8192 Fragments per group: 8192 Inodes per group: 80 Inode blocks per group: 10 Filesystem created: Sun Aug 21 20:11:13 2016 Last mount time : n /a Last write time : Sun Aug 21 20:52:01 2016 Mount count: 0 Maximum mount count: -1 Last checked: Sun Aug 21 20:11:13 2016 Check interval: 0 (<none>) Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 128 Journal inode: 8 Default directory hash : half_md4 Directory Hash Seed: 3e1f3581-59c7-41b3-bd4f-d262e3ce026e Journal backup: inode blocks Journal features: (none) 紀錄檔大小: 4113k Journal length: 4096 Journal sequence: 0x00000001 Journal start: 0 |
…………………………………………………………………………………………………………
fsck:check and repair a Linux file system檢查修復Linux檔案系統
因進程意外中止或系統崩潰等 原因導致定稿操作非正常終止時,可能會造成檔案損壞;此時,應該檢測並修復檔案系統; 建議,離線進行;
-t fstype:指明檔案系統型別;比如:fsck -t ext4 = fsck.ext4
-a:無須互動而自動修復所有錯誤;
-r:互動式修復;
Note: FS_TYPE一定要與分割區上已經檔案型別相同;
…………………………………………………………………………………………………………
e2fsck:ext系列檔案專用的檢測修復工具
-y:自動回答為yes;
-f:強制修復;
總結
檔案系統管理工具
通用:mkfs、blkid、fsck
ext系列檔案系統專用工具:mke2fs、dumpe2fs、tune2fs、e2label、e2fsck
簡要比較兩種型別的命令
1
2
3
4
5
6
|
[root@localhost ~] # dumpe2fs /dev/sda1 dumpe2fs 1.42.9 (28-Dec-2013) dumpe2fs: Bad magic number in super-block 當嘗試開啟 /dev/sda1 時 找不到有效的檔案系統超級塊. [root@localhost ~] # blkid /dev/sda1 /dev/sda1 : UUID= "6efb8a23-bae1-427c-ab10-3caca95250b1" TYPE= "xfs" |
本文永久更新連結地址:http://www.linuxidc.com/Linux/2016-08/134665.htm
相關文章