Linux檔案系統ext2二

2021-06-27 17:18:33 字數 2738 閱讀 8891

dumpe2fs [-bh]裝置檔名

-b:列出保留為壞軌的部分(一般用不到!)

-h:僅列出superblock的資料,不會列出其他的區段內容

利用dumpe2fs可以查詢到非常多的資訊,不過依內容分為上半部分是superblock內容,下半部分是每乙個block group的資訊。

從上面的**我們可以觀察到這個第乙個block為1,block大小為1024,詳細資訊就不再詳列。

block group的內容我們只看group0資訊

。group0所占用的block由1到8192號,superblock則在第1號的block塊內!

。檔案系統描述說明在2-3號block中

。block bitmap在260 ,inode bitmap則在276,inode table在292-544

linux系統下,每個檔案都會占用乙個inode,且可依據檔案的大小來分配多個block給檔案使用,目錄記錄內容是檔名,一般

檔案的才是實際記錄資料的,那麼目錄與ext2檔案系統如何記錄資料的呢?

與目錄樹的關係

linux系統下,每個文件(不管檔案還是目錄)都會占用乙個inode,而且依據檔案內容的大小分配多個block給該檔案使用它,

目錄的內容在記錄檔名,一班檔案才是是記錄資料內容的地方。

目錄當我們在linux下ext2檔案選系統建立乙個目錄時,ext2會分配乙個inode與至少乙個block給該目錄,其中

inode記錄給目錄的相關許可權於屬性,並可記錄分配到那塊block號碼,而block則是記錄在這個目錄下的檔名與該檔名占用的inode

號碼資料,也就是說目錄所占用的block內容記錄如下:

|inode number| 檔名   |

---------------------------------

|    654683   |mas.cfg |

|    324234   |dasd.sh     |

---------------------------------

某一目錄內檔案所占用的inode的號碼時,可以使用ls -i這個命令,每個人選擇的專案和分割槽不同,

所以系統說顯示的結果也會是不同的。

檢視某一檔案的占用block的數量,可以使用ll -d /bin/to/some_file,檔案的大小幾乎都是block大小的整數倍。

檔案:當我們在linux下ext2檔案系統建立檔案,ext2會分配與相對檔案大小的block數量給檔案    

目錄樹的讀取:

inode本身並不記錄檔名,檔名記錄在目錄的block中,因此,新增/刪除/更名與目錄的w許可權有關這一特點,

應為檔名記錄在目錄的block中,當我們讀取某乙個檔案是,就必須讀到正確的inode與block,然後才能找到讀取檔案的inode號碼

因此當我們讀取乙個檔案時,就必須經過目錄的inode與block,然後才能找到想要讀取的檔案的inode號,

最終讀到正確的檔案的資料。

由於目錄樹是由根目錄讀起開始,因此系統通過掛載的資訊可以找到掛載點的inode號碼(通常乙個filesystem的最頂層

inode號碼會有2開始),此時就能夠找到目錄的inode內容,並依據該inode讀取目錄的block內的檔案資料,在一層一層往下讀到找到正確的檔名。

例如讀取/etc/passwd這個檔案,系統經過多步奏是:

如圖:

1./的inode:

透過掛載點的資訊找到/dev/sda1的inode號碼為2的根目錄inode,且inode的許可權(rx)

2./的block:

經過上乙個步驟取得block的號碼,並找到該內容有/etc/目錄inode號碼651522

3.etc/的inode:

讀取651522號inode知道了我有r和x許可權,因此可以讀取etc/的block內容;

4.etc/的block:

經過上乙個步驟取得block號碼,並在block內容裡找到passwd檔案的inode號碼(667138)

5.paawd的inode:

讀取667138號inode,獲得我有r和x許可權,因此可以讀取passwd的block內容;

6.passwd的block:

最後將該block內容的資料讀出來。

filesystem 大小與磁碟讀取效能:

當乙個檔案系統的規劃的很大時,由於硬碟上面的資料總是來來去去,所以在整個檔案系統上面的檔案通常無法連續寫在一起(block號碼不會連續坐在一起),、

所以,而填入式的資料填入沒有使用的block當中,當檔案寫入的block真的分的很散,此時就會有所謂的檔案離散的問題發生。

雖然我們的ext2的inode已經將整個檔案所記錄的block號碼上了,所以資料可以一次讀取,

但如果檔案太過離散,確實會造成讀取效率低的問題。如果遇到這種問題,那麼將整個檔案系統內的資料全部複製出來,將filesystem重新格式化,在將資料寫入回去

、可以解決這一問題。

如果filesystem真的太大了,那麼當乙個檔案分別記錄在這個檔案系統的最前面與最後面block號碼中,

此時會造成硬碟的機械手臂移動幅度過

linux檔案系統 ext2檔案系統

如何快速高效的尋到在硬碟儲存的資料,於是檔案系統就誕生了。檔案系統是邏輯層面的,那麼檔案系統是如何管理 件層提供的磁碟空間的?現在,大部分檔案系統採用索引分配方案 優點 1.能夠保持好大部分檔案的區域性性 2.滿足檔案插入,刪除的高效 3.隨機讀寫不需要沿著指標前行 缺點1.會有較多的磁碟尋道次數 ...

ext2檔案系統

ext2磁碟結構 ext2分割槽和ext2分組的分布圖 下圖是借用其他部落格的 塊組中的每個塊包含的資訊 超級快 1個塊 描述該分割槽中的整個檔案系統的資訊,包括有多少個快組,每個快組有多少個塊,多少個索引節點等。組描述符塊 n塊 塊點陣圖 1塊 索引節點位圖 1塊 索引節點 n塊 資料塊 n塊 塊...

Ext2檔案系統

ext2檔案系統的總體布局,如下圖。1檔案系統的最小儲存單元是塊 block 塊的大小一般為512bytes,或者是它的整數倍,塊的大小是在格式化是所確定的。不能修改除非重新格式化。上圖中顯示了檔案系統的總體布局,由乙個boot block和對個block group組成,每個block group...