1. 程式人生 > >Linux磁盤管理(block與inode)

Linux磁盤管理(block與inode)

分享圖片 磁盤 軟鏈接文件 更多 硬盤分區 sta 文件恢復 size 內容

1 硬盤block與inode詳解

1.1 Sector(扇區)與Block(塊)

1) 硬盤的最小存儲單位:sector(扇區),每個扇區儲存512字節;操作系統會一次性連續讀取多個扇區,即一次性讀取多個扇區稱為一個block(塊)

2) 文件存取的最小單位:block(塊),由多個扇區組成;block的大小常見的有1KB、2KB、4KB,在linux中常見設置為4KB,即連續8個扇區組成一個block;/boot分區的block一般為1KB

3) 查看block的方法:

ext3與ext4格式化文件系統:

dumpe2fs /dev/sda1 | grep "Block size"

tune2fs -l /dev/sda1 | grep "Block size"

stat /boot/ | grep "IO Block"

技術分享圖片

xfs格式化文件系統:

xfs_info /dev/sda1

技術分享圖片

stat /boot/ | grep "IO Block"

4) 每個block只能存放一個文件,如果文件的大小比block大,會申請更多的block;如果文件的大小比block小,仍會占用一個block,剩余的空間會浪費

例:有1萬個文件,大小為10B,block為4KB

理論上占用空間大小:10000 * 10B=97.656MB

實際上占用空間大小:10000 * 4KB = 40GB

1.2 硬盤block與inode詳解

1.2.1 superblock、inode與block

操作系統對於文件數據的存放包括兩個部分:1文件內容、2權限及文件屬性

在硬盤分區中,還有一個超級區塊(superblock)

1) superblock:記錄文件系統的整體信息,包括inode與block的總量、使用大小、剩余大小以及文件系統的格式與相關信息等

2) inode:記錄文件的屬性、權限,同時會記錄該文件的數據所在的block編號

3) block:存儲文件的內容

1.2.2 inode與block

每個inode與block都有編號,而每個文件都會占用一個inode,inode內則有文件數據放置的block號碼;能夠找到文件的inode就可以找到該文件所放置數據的block號碼,從而讀取文件內容

1)在格式化時可以指定默認的inode與block的大小;-b指定默認block值,-I指定默認inode值,例:mkfs.ext4 –b 4096 –I 256 /dev/sdb

2)查看inode的方法:

ext3與ext4格式化文件系統:

dumpe2fs /dev/sda1 | grep "Inode size"

tune2fs -l /dev/sda1 | grep "Inode size"

技術分享圖片

xfs格式化文件系統:

技術分享圖片

2 硬鏈接

硬鏈接:Linux系統多個文件名可以指向同一個inode,這意味著可以用不同的文件名訪問同樣的內容,對文件內容進行修改會影響到所有文件名;但刪除一個文件名不會影響另一個文件名的訪問。

硬鏈接不能跨分區鏈接,只能對文件生效,對目錄無效,鏈接後的文件不占用系統多余的空間

命令:ln test1.txt test2.txt #test1.txt為源文件,test2為目標文件

技術分享圖片

3 軟鏈接(符號鏈接)

軟鏈接文件的Inode號不同,可以跨分區鏈接,支持目錄同時也支持文件的鏈接;不管是刪除源文件還是重啟系統,該軟鏈接還存在,但文件內容會丟失,一旦新建源同名文件,軟鏈接文件恢復正常

命令:ln –s test1.txt test2.txt

技術分享圖片

Linux磁盤管理(block與inode)