創建檔案系統的含義:就是格式化一個硬碟磁區,不同的格式化方式,就是創建了不同的檔案系統,
格式化:
-
低級格式化:劃分磁區前執行,主要是劃分硬碟的磁道等,
-
高級格式化:劃分磁區后執行,創建檔案系統
-
創建檔案系統時做的目的:當我們在硬碟上創建檔案后,以后可以用檔案的名字還能找到這個檔案,
檔案包含2部分:
-
元資料(包括:權限,屬主/組,時間戳,大小,資料塊指標等)
資料塊指標:指向檔案內容在資料區的位置(根據檔案內容的大小,位置會有多個)
-
資料本身的內容,
創建檔案系統時,把整個磁區劃分成2個區域,一大一小,
-
小的區域放每個檔案的元資料,叫元資料區(也叫:Inode table)
每個檔案的元資料,叫 inode(index node)
-
大的區域放檔案本身的內容,叫資料區
資料區需要再次劃分成一堆block,block的大小一般是扇區的倍數,一個扇區是512bytes,
-
元資料區和資料區圖例:

-
元資料區和資料區的大小比例怎么決定呢?
如果檔案的size小,而且檔案數量多,則會發生元資料區已經滿了,但是資料區還有很多空余,
如果檔案的size大,而且檔案數量少,則會發生資料區已經滿了,但是元資料區還有很多空余,
-
-
-
一般檔案:它的元資料里的資料塊指標區域,存放的是資料區的地址,占用磁區的資料區域的存盤空間,
-
符號鏈接檔案:它的元資料里的資料塊指標區域,存放不是是資料區的地址,而是實際檔案的路徑,所以它不占用磁區的資料區域的存盤空間,它只占用元資料區域的存盤空間,
-
設備檔案:它的元資料里的資料塊指標區域,存放不是是資料區的地址,而是主設備號和次設備號,所以它不占用磁區的資料區域的存盤空間,它只占用元資料區域的存盤空間,
查看檔案的inode編號,
- 使用
ls -i files,或者stat files
作業系統,如何知道哪些inode別使用了,哪些block被使用了?
搜索整個資料區域,肯定能知道block的使用情況,
搜索整個元資料區域,肯定能知道inode的使用情況,可是性能太低下了,
所以,在元資料區域找塊空間,存放2個東西,叫位圖索引(bitmap),
一個是inode的位圖索引(Inode bitmap),
一個是block的位圖索引(Block bitmap),
位圖索引的每個bit位對應一個inode/block,0代表此inode/block未被使用,1代表此inode/block已被使用,
搜索位圖索引,速度就快多了,
super block
若一個磁區里只有一個元資料區,一個資料區的話,即便有位圖索引,索引也是太多了,遍歷一遍也很費時間,所以實際的檔案系統,都是有多個元資料區和資料區,如下圖,每個元資料區和資料區組成一個獨立的邏輯磁區,獨立自治,每個邏輯磁區里,再建立位圖索引,有了邏輯磁區的話,還需要一個中央政府,去管理這些邏輯磁區,這個中央政府叫【super block】,
super block:記錄著邏輯磁區的資訊,
如果super block損壞了的話,那整個磁區就廢了,所以super block就必須做冗余處理,所以把super block放到了多個邏輯磁區的資料區里,如下圖:

inode里沒有存放檔案的名字,名字放哪里了呢?放目錄里了,目錄也是檔案,可不是windows里的檔案夾,
目錄的block里放的是:目錄里的檔案和檔案所對應的inode編號,
下圖表示了:元資料區,和資料區,和如何找到檔案/var/log/messages的

找到硬碟上的檔案后,就放到記憶體的【buff/cache】中,下次用戶再訪問此檔案就能快速的從記憶體中讀取到,
用free命令查看記憶體情況:
# free -h
total used free shared buff/cache available
Mem: 3.7G 336M 3.0G 13M 429M 3.1G
Swap: 3.9G 0B 3.9G
硬鏈接和符號鏈接的區別
作業系統能根據檔案路勁,找到它對應的inode編號,
-
硬鏈接:
- 創建硬鏈接命令:
ln src link_file - 多個硬鏈接檔案,所對應的inode編號相同
- 硬鏈接不能跨檔案系統,因為每個檔案系統的inode計數方式不同,
- 創建硬鏈接會增加inode的參考計數,同樣洗掉硬鏈接會減少inode的參考技術,當inode的參考計數變成零時,是否資料區對應的空間,
- 目錄不支持硬鏈接,防止回圈參考,
- 創建硬鏈接命令:
-
符號鏈接:
- 創建符號鏈接命令:
ln -s src link_file - 符號鏈接檔案,有自己獨立的inode,
- 可以跨檔案系統
- 創建或洗掉符號鏈接,不影響inode的參考計數
- 符號鏈接可以指向目錄
- 符號鏈接的mode是777,但實際的mode還是要取決于它指向的檔案的mode
- 符號鏈接的size是其指定的檔案的路徑字串的位元組數
$ ls -l lrwxrwxrwx. 1 ys ys 14 Dec 27 13:25 sl1 -> 符號鏈接11 -rw-rw-r--. 1 ys ys 0 Dec 27 13:24 符號鏈接11
- 創建符號鏈接命令:
Linux支持大部分的檔案系統,哪個檔案系統最好呢?沒有最好只有更好,
不同的檔案系統,適應不同的使用場景,
不同的檔案系統,對磁區的劃分方法都不一樣,對應讀寫檔案的程式來說,就太難了,不可能針對每種檔案系統,寫不同的代碼,那么,linux是如何解決這個問題的呢?使用VFS,
VFS:virtual FIle System虛擬檔案系統,
檔案讀寫程式,只跟VFS打交道,然后VFS和各個檔案系統打交道,
VFS給程式員統一的,簡潔的API介面,
Linux支持哪些檔案系統:
- ext2,ext3,ext4:基本被淘汰了,單個檔案的大小有限制
- xfs:紅帽7開始好像使用xfs了,centos7好像使用此檔案系統,特點:單個檔案的大小沒有限制
- relserfs:能相對容易找回誤洗掉的檔案,但是作者入獄了,所以不是主流了,
- btrfs:特點:單個檔案的大小沒有限制,性能好,但還是處于測驗階段,
- iso9660:光碟(包括dvd和vcd)的檔案系統
- nfs,cifs:網路檔案系統
- gfs2,ocfs2:集群檔案系統
- ceph:內核級分布式檔案系統
- vfat(fat32),ntfs:windows的檔案系統
- proc, sysfs, tmpfs, hugepagefs:偽檔案系統
- UFS(unix檔案系統),FFS(fast檔案系統),JFS(日志檔案系統):Unix下的檔案系統,
- swap:交換檔案系統
- mogilefs,moosefs,glusterfs:用戶空間的分布式檔案系統,
檔案系統里的日志功能
由一個問題引出了檔案系統里的日志功能,
當往硬碟里寫入的時候,先去找一個空閑的inode,寫入元資料資訊,但是size在資料全部寫入完前,是不知道的,在寫入資料區的途中,突然斷電了,資料寫了一部分;再次開機的時候,作業系統為了檢查出壞資料,
就要掃描硬碟的inode區和資料區,找出壞的block,這樣一來開機的就太慢了,如何解決呢?日志功能(journal)登場了!
日志功能:
- 在硬碟找一塊區域當日志區域,
- 當要創建檔案的時候,先不往元資料區,寫入元資料資訊,而是往日志區域,寫入元資料資訊,
- 然后寫入資料到資料區,當資料全部寫入到資料區后,把日志區的元資料,剪切到元資料區域,
- 系統啟動時,只要看硬碟的日志區域,如果日志區域里有資料,就說明這是壞資料,加速了系統的系統速度,
日志功能的缺點:
- 由于要從把日志區域的資料,剪切到元資料區域,增加了一次IO,
Linux里常用的檔案系統:ext2,ext3,ext4, xfs, relserfs, btrfs
只有ext2是無日志功能的,
檔案系統組成部分
-
檔案系統驅動程式:由內核空間提供,
檔案系統的驅動程式,可以選擇直接編譯到內核空間;也可以選擇作為一個module,安裝到內核空間,
使用
lsmod命令可以看到,內核安裝了哪些檔案系統的驅動程式module,# lsmod Module Size Used by fuse 91880 3 xt_CHECKSUM 12549 1 iptable_mangle 12695 1 xfs 997127 3如果發現想要的檔案系統的驅動程式module沒有在里面,也有可能是直接編譯到內核空間了,
直接編譯到內核空間的檔案系統的驅動程式,不在
lsmod結果里, -
檔案系統管理工具:由用戶空間的應用程式提供
檔案系統工具
1, 創建檔案系統的工具
-
mkfs:mkfs.ext2, mkfs.ext3, mkfs.ext4, mkfs.xfs, mkfs.vfat等
可以用選項:
-t指定安裝說明檔案系統,例:mkfs -t ext4=mkfs.ext4ext4兼容ext3,ext3兼容ext2.
下面是創建ext2檔案系統:
# fdisk -l /dev/sdb Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x2594e4e1 Device Boot Start End Blocks Id System /dev/sdb1 2048 411647 204800 83 Linux /dev/sdb2 411648 616447 102400 5 Extended /dev/sdb5 413696 516095 51200 83 Linux # mkfs.ext2 /dev/sdb1 #在/dev/sdb1里,安裝檔案系統ext2 mke2fs 1.42.9 (28-Dec-2013) Filesystem label=識別設備的卷標 OS type: Linux Block size=1024 (log=0)塊的大小,沒有指定大小,默認是1K Fragment size=1024 (log=0) Stride=0 blocks, Stripe width=0 blocks 51200 inodes(創建了51200個inode), 204800 blocks(創建了204800個blocks) 10240 blocks (5.00%) reserved for the super user(給管理員預留了5%的空間) First data block=1(第一個資料在編號為1的block) Maximum filesystem blocks=67371008 25 block groups(把block分成了25個組) 8192 blocks per group(每個組有8192個block), 8192 fragments per group 2048 inodes per group(每個組有2048個block) Superblock backups stored on blocks:(super block存放在塊編號為下面的塊) 8193, 24577, 40961, 57345, 73729 Allocating group tables: done Writing inode tables: done Writing superblocks and filesystem accounting information: done # blkid /dev/sdb1 查看/dev/sdb1的檔案系統和UUID /dev/sdb1: UUID="4752177b-e026-483d-b166-19229b64e4c3" TYPE="ext2"下面是創建ext3檔案系統:和ext2相比,多了下面的存放日志的空間,
Creating journal (4096 blocks): done
# mkfs.ext3 /dev/sdb5 mke2fs 1.42.9 (28-Dec-2013) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) Stride=0 blocks, Stripe width=0 blocks 12824 inodes, 51200 blocks 2560 blocks (5.00%) reserved for the super user First data block=1 Maximum filesystem blocks=52428800 7 block groups 8192 blocks per group, 8192 fragments per group 1832 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961 Allocating group tables: done Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done # blkid /dev/sdb5 /dev/sdb5: UUID="8f066109-6fcf-4c40-812a-66909b54469e" SEC_TYPE="ext2" TYPE="ext3"創建xfs檔案系統:
centos5和6里沒有xfs,需要安裝,安裝命令:
yum install xfsprogs# mkfs.xfs -f /dev/sdb5 meta-data=https://www.cnblogs.com/dev/sdb5 isize=512 agcount=2, agsize=6400 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=12800, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=855, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@localhost ~]# blkid /dev/sdb5 /dev/sdb5: UUID="d73b8a2c-147d-4322-80a4-812553696c26" TYPE="xfs"yum小知識:查看用yum安裝的包里都包含哪些東西:
# rpm -ql xfsprogs /usr/lib64/libhandle.so.1 /usr/lib64/libhandle.so.1.0.3 /usr/sbin/fsck.xfs /usr/sbin/mkfs.xfs /usr/sbin/xfs_admin /usr/sbin/xfs_bmap /usr/sbin/xfs_copy /usr/sbin/xfs_db /usr/sbin/xfs_estimate /usr/sbin/xfs_freeze /usr/sbin/xfs_fsr /usr/sbin/xfs_growfs /usr/sbin/xfs_info /usr/sbin/xfs_io /usr/sbin/xfs_logprint /usr/sbin/xfs_mdrestore /usr/sbin/xfs_metadump /usr/sbin/xfs_mkfile /usr/sbin/xfs_ncheck /usr/sbin/xfs_quota /usr/sbin/xfs_repair /usr/sbin/xfs_rtcp ...后面省略ext檔案系統專用管理程式:mke2fs
-
語法:
mke2fs [options] device -
指定檔案系統:-t
mke2fs -t {ext2|ext3|ext4}
-
指定blocksize:-b {1024|2048|4096}
# mke2fs -t ext4 -b 2048 /dev/sdb5 mke2fs 1.42.9 (28-Dec-2013) Filesystem label= OS type: Linux Block size=2048 (log=1) Fragment size=2048 (log=1) -
指定卷標(filesystem label):-L
一般不指定卷標,因為容易重復,
指定卷標后,用blkid命令就能看到卷標了,
# mke2fs -t ext4 -L myLabel1 /dev/sdb5 mke2fs 1.42.9 (28-Dec-2013) Filesystem label=myLabel1 # blkid /dev/sdb5 /dev/sdb5: LABEL="myLabel1" UUID="3bd32005-bea7-42bb-969e-3b37de466f3e" TYPE="ext4"卷標雖然重復了,但是UUID是不一樣的,
# mke2fs -t ext4 -L myLabel1 /dev/sdb6 mke2fs 1.42.9 (28-Dec-2013) Filesystem label=myLabel1 # blkid /dev/sdb5 /dev/sdb5: LABEL="myLabel1" UUID="3bd32005-bea7-42bb-969e-3b37de466f3e" TYPE="ext4" [root@localhost ~]# blkid /dev/sdb6 /dev/sdb6: LABEL="myLabel1" UUID="7e71e3a9-5075-4b07-97fc-af7eefae27fc" TYPE="ext4"更改ext2,ext3,ext4的卷標:
e2label- 查看磁區的卷標:
e2label device - 修改磁區的卷標:
e2label device LABEL
- 查看磁區的卷標:
-
創建有日志功能的檔案系統:-j
mke2fs -j=mke2fs -t ext3=mkfs -t ext3=mkfs.ext3 -
每多少個位元組創建一個inode:-i
指明inode與位元組的比率,
-
指定inode的數量:-N 數字
和用-i指定比率相比,直接指定inode的數量可能更好,
-
指定inode的size:-I(大i)
The inode-size value must be a power of 2 larger or equal to 128.
-
enable檔案系統某個特性:
-O feature或者disable檔案系統某個特性:
-O -feature后者-O ^featurefeature一覽:用
man 5 ext4查看mke2fs -O has_journal device:啟動日志功能
-
指定預留空間(super block)的大小的百分比:-m 數字(不需要加%,2就是2%)
默認是預留5%,但是如果是100G的磁區,5G就太大了,
-
2,檢測及修復檔案系統的工具
因行程意外終止或系統崩潰(斷電)的原因,導致系統非正常終止時,可能會造成檔案損壞;此時,應該檢查并修復檔案系統,建議:離線進行
-
ext檔案系統系列:e2fsck
- -y:對所有問題自動回答yes
- -f:即使檔案系統處于clean狀態,也要強制行程檢查,
# e2fsck -f /dev/sdb6 e2fsck 1.42.9 (28-Dec-2013) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information L1: 11/6400 files (0.0% non-contiguous), 2155/25600 blocks -
所有檔案系統:fsck
# fsck. fsck.btrfs fsck.ext2 fsck.ext4 fsck.minix fsck.vfat fsck.cramfs fsck.ext3 fsck.fat fsck.msdos fsck.xfs-
-t:指明檔案系統型別
-
-a:無須互動自動修復所有錯誤(不建議使用)
若有個2G的檔案,寫入了1.9G后,系統斷電,如果不修復還能保持1.9G,如果用-a修復,則把這1.9G也洗掉了,
-
-r:互動式修復
-
3,查看ext系列檔案系統的屬性和組的詳細資訊的工具:?dumpe2fs
-
只查看屬性:
-h# dumpe2fs -h /dev/sdb6 dumpe2fs 1.42.9 (28-Dec-2013) Filesystem volume name: L1 Last mounted on: <not available> Filesystem UUID: c48a5e5a-2ebf-42e6-a191-87496b19e281 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 acl Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 6400 Block count: 25600 Reserved block count: 1536 Free blocks: 23445 Free inodes: 6389 First block: 1 Block size: 1024 Fragment size: 1024 Reserved GDT blocks: 99 Blocks per group: 8192 Fragments per group: 8192 Inodes per group: 1600 Inode blocks per group: 200 Filesystem created: Fri Dec 27 21:24:40 2019 Last mount time: n/a Last write time: Fri Dec 27 22:19:54 2019 Mount count: 0 Maximum mount count: -1 Last checked: Fri Dec 27 21:24:40 2019 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: ea467d23-e9b0-43ca-b762-f6b70ea21180 Journal backup: inode blocks Journal features: (none) Journal size: 1029k Journal length: 1024 Journal sequence: 0x00000001 Journal start: 0 -
組的詳細資訊:不加選項
組的詳細資訊包括:
- super block存盤在哪個塊
- Reserved GDT blocks存盤在哪些塊
- inode的位圖索引(Inode bitmap)存盤在哪些塊
- block的位圖索引(Block bitmap)存盤在哪些塊
- 組里的哪些塊是存盤元資料(Inode table)的
- 多少個block是可以使用的;多少個inode是可以使用的;組里有幾個目錄,
- 可以使用的block的編號是多少;可以使用的inode的編號是多少,
# dumpe2fs /dev/sdb6 此處省略了head的資訊, Group 0: (Blocks 1-8192) Primary superblock at 1, Group descriptors at 2-2 Reserved GDT blocks at 3-101 Block bitmap at 102 (+101), Inode bitmap at 103 (+102) Inode table at 104-303 (+103) 7875 free blocks, 1589 free inodes, 2 directories Free blocks: 318-8192 Free inodes: 12-1600 Group 1: (Blocks 8193-16384) Backup superblock at 8193, Group descriptors at 8194-8194 Reserved GDT blocks at 8195-8293 Block bitmap at 8294 (+101), Inode bitmap at 8295 (+102) Inode table at 8296-8495 (+103) 7889 free blocks, 1600 free inodes, 0 directories Free blocks: 8496-16384 Free inodes: 1601-3200 Group 2: (Blocks 16385-24576) Block bitmap at 16385 (+0), Inode bitmap at 16386 (+1) Inode table at 16387-16586 (+2) 6961 free blocks, 1600 free inodes, 0 directories Free blocks: 17616-24576 Free inodes: 3201-4800 Group 3: (Blocks 24577-25599) Backup superblock at 24577, Group descriptors at 24578-24578 Reserved GDT blocks at 24579-24677 Block bitmap at 24678 (+101), Inode bitmap at 24679 (+102) Inode table at 24680-24879 (+103) 720 free blocks, 1600 free inodes, 0 directories Free blocks: 24880-25599 Free inodes: 4801-6400
4,調整ext系列檔案系統的特性:tune2fs
查看/調整ext2/ext3/ext4檔案系統的可調整屬性,不是所有屬性,比如block的大小就不能調整,
-
查看super block里的資訊/查看檔案系統的layout資訊:
-l# tune2fs -l /dev/sdb5 tune2fs 1.42.9 (28-Dec-2013) Filesystem volume name: myLabel1(卷標) Last mounted on: <not available>(上次掛載,目前還沒有掛載過) Filesystem UUID: 3bd32005-bea7-42bb-969e-3b37de466f3e(UUID) Filesystem magic number: 0xEF53(魔數,標識檔案系統的) Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize(檔案系統啟用了哪些feature) Filesystem flags: signed_directory_hash Default mount options: user_xattr acl(檔案系統的掛載選項) Filesystem state: clean(檔案系統狀態,clean:檔案系統一致,沒有損壞的檔案,如果有損壞的檔案就是dirty狀態,) Errors behavior: Continue(錯誤時的處理,continue就是不管錯誤,繼續處理) Filesystem OS type: Linux Inode count: 12824(inode的數量) Block count: 51200(block的數量) Reserved block count: 2560(預留給super block的數量) Free blocks: 44440(空閑的block數量) Free inodes: 12813(空閑的inode數量) First block: 1(第一個塊的編號) Block size: 1024(塊的大小,單位是byte) Fragment size: 1024 Group descriptor size: 64 Reserved GDT blocks: 256(預留給GDT的block數量) Blocks per group: 8192(每組里block的數量) Fragments per group: 8192 Inodes per group: 1832(每組里inode的數量) Inode blocks per group: 229(每組有多少個塊,存放inode) Flex block group size: 16 Filesystem created: Fri Dec 27 16:48:53 2019 Last mount time: n/a Last write time: Fri Dec 27 16:48:53 2019 Mount count: 0 Maximum mount count: -1 Last checked: Fri Dec 27 16:48:53 2019 Check interval: 0 (<none>) Lifetime writes: 4445 kB Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 128(inode的大小) Journal inode: 8 Default directory hash: half_md4 Directory Hash Seed: 05ca7d6b-d6b6-4e15-854f-e9d49f0f3f61 Journal backup: inode blocks -
把ext2升級到ext3:-j
無損升級,不會損壞檔案系統里的檔案
# blkid /dev/sdb6 /dev/sdb6: UUID="c48a5e5a-2ebf-42e6-a191-87496b19e281" TYPE="ext2" # tune2fs -j /dev/sdb6 tune2fs 1.42.9 (28-Dec-2013) Creating journal inode: done # blkid /dev/sdb6 /dev/sdb6: UUID="c48a5e5a-2ebf-42e6-a191-87496b19e281" SEC_TYPE="ext2" TYPE="ext3" -
無損修改卷標:-L LABEL
# tune2fs -L L1 /dev/sdb6 tune2fs 1.42.9 (28-Dec-2013) [root@localhost ~]# blkid /dev/sdb6 /dev/sdb6: LABEL="L1" UUID="c48a5e5a-2ebf-42e6-a191-87496b19e281" SEC_TYPE="ext2" TYPE="ext3" -
無損修改給super block預留的空間的百分比:-m 數字
# tune2fs -m 6 /dev/sdb6 tune2fs 1.42.9 (28-Dec-2013) Setting reserved blocks percentage to 6% (1536 blocks) -
enable檔案系統某個特性:
-O feature或者disable檔案系統某個特性:
-O -feature后者-O ^featuredisable日志功能后,檔案系統型別從原來的ext3變成了ext2;enable后又從ext2變成了ext3
feature一覽:用
man 5 ext4查看# tune2fs -O ^has_journal /dev/sdb6 tune2fs 1.42.9 (28-Dec-2013) # blkid /dev/sdb6 disable日志功能后,檔案系統型別從ext3變成了ext2 /dev/sdb6: LABEL="L1" UUID="c48a5e5a-2ebf-42e6-a191-87496b19e281" TYPE="ext2" # tune2fs -l /dev/sdb6 feature里沒有了has_journal Filesystem features: ext_attr resize_inode dir_index filetype sparse_super # tune2fs -O has_journal /dev/sdb6 tune2fs 1.42.9 (28-Dec-2013) Creating journal inode: done # blkid /dev/sdb6 /dev/sdb6: LABEL="L1" UUID="c48a5e5a-2ebf-42e6-a191-87496b19e281" SEC_TYPE="ext2" TYPE="ext3" # tune2fs -l /dev/sdb6 Filesystem features: has_journal ext_attr resize_inode dir_index filetype sparse_super -
enable檔案系統的掛載選項:
-o mount_options或者disable檔案系統的掛載選項:
-o -mount_options后者-o ^mount_options具體的mount options可以在man tune2fs的-o選項出查看到,
例如,disable acl(access control list,檔案的特殊權限控制功能),
在centos7創建檔案系統時,acl是默認啟動的,
只有在檔案系統這里,啟用了acl功能,getfacl,setfacl命令才有作用,
5,根據卷標(LABEL),UUID來定位設備:blkid
-
查看設備的卷標和UUID
# blkid /dev/sdb6 /dev/sdb6: LABEL="L1" UUID="c48a5e5a-2ebf-42e6-a191-87496b19e281" SEC_TYPE="ext2" TYPE="ext3" -
根據卷標定位設備:-L
# blkid /dev/sdb6 /dev/sdb6: LABEL="L1" UUID="c48a5e5a-2ebf-42e6-a191-87496b19e281" SEC_TYPE="ext2" TYPE="ext3" # blkid -L L1 /dev/sdb6 -
根據UUID定位設備:-U
# blkid /dev/sdb6 /dev/sdb6: LABEL="L1" UUID="c48a5e5a-2ebf-42e6-a191-87496b19e281" SEC_TYPE="ext2" # blkid -U c48a5e5a-2ebf-42e6-a191-87496b19e281 /dev/sdb6
swap檔案系統
linux上的swap檔案系統必須在獨立的磁區,且system id必須是82
window上的swap檔案系統,可以和作業系統在一個磁區,比如都在c盤,
1,創建swap檔案系統:mkswap
-
不指定卷標和UUID,若原來的/dev/sdb6上有卷標和UUID,執行mkswap /dev/sdb6后,/dev/sdb6的卷標和UUID都被洗掉,且生成一個新的UUID,
# mkswap /dev/sdb6 mkswap: /dev/sdb6: warning: wiping old ext3 signature. Setting up swapspace version 1, size = 25596 KiB no label, UUID=c9f3ecb5-d82e-461a-9701-23a364792800注意:若/dev/sdb6原來的system id不是82,則執行mkswap /dev/sdb6后,system id是不會自動變成82的,還需要手動用
fdisk的-t選項,修改system id, -
指定卷標:-L LABEL
# blkid -L L1 [root@localhost ~]# mkswap -L L1 /dev/sdb6 mkswap: /dev/sdb6: warning: wiping old swap signature. Setting up swapspace version 1, size = 25596 KiB LABEL=L1, UUID=3e848623-b82a-4a4f-9c58-53b868260208 [root@localhost ~]# blkid -L L1 /dev/sdb6 [root@localhost ~]# blkid /dev/sdb6 /dev/sdb6: LABEL="L1" UUID="3e848623-b82a-4a4f-9c58-53b868260208" TYPE="swap" -
指定UUID:-U UUID
vfat檔案系統
windows無法識別Linux的檔案系統,因此,存盤設備需要兩種系統之間交叉使用時,應該使用windows和linux都支持的檔案系統:fat32(vfat),
創建vfat檔案系統:mkfs.vfat device
# mkfs.vfat /dev/sdb5
mkfs.fat 3.0.20 (12 Jun 2013)
# c/c++ 學習互助QQ群:877684253

# 本人微信:xiaoshitou5854
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/144219.html
標籤:Linux
上一篇:CentOS7安裝Python3
下一篇:微服務相關命令
