EXT2 EXT3檔案系統(一)

2022-03-06 02:04:18 字數 2373 閱讀 2473

華科小濤

檔案系統

是一種儲存和組織計算機資料的方法,它使得對其訪問和查詢變得容易,檔案系統使用檔案樹形目錄的抽象邏輯概念代替了硬碟和光碟等物理裝置使用資料塊的概念,使用者使用檔案系統來儲存資料不必關心資料實際儲存在硬碟(或者光碟)的位址為多少的資料塊上,只需要記住這個檔案的所屬目錄和檔名。在寫入新資料之前,使用者不必關心硬碟上的那個塊位址沒有被使用,硬碟上的儲存空間管理(分配和釋放)功能由檔案系統自動完成,使用者只需要記住資料被寫入到了哪個檔案中。

我們都知道磁碟分割槽後還要進行格式化,之後作業系統才能夠使用這個分割槽。這是因為每種作業系統所設定的檔案屬性/許可權不同,為了存放這些資料所需要的資料,因此就要對分割槽進行格式化,以成為作業系統能夠利用的檔案系統格式。

檔案資料除了檔案的實際內容外,還含有檔案許可權(rwx)與檔案屬性(所有者、群組、時間引數等)。檔案系統通常會把這兩部分資料放到不同的塊,許可權與屬性放置到inode中,至於實際資料則放置到data block中。另外,還有乙個superblock會記錄檔案的整體資訊,包括inode與block的總量、使用量、剩餘量等。

每個inode和block都有編號,這三個資料的意義簡要的說明如下:

用於inode和block都有自己的編號,而每個檔案都會占有乙個inode,inode內則含有檔案資料放置的block號碼。所以,如果能夠找到檔案的inode,那麼自然就會知道資料存放到哪些block了,也就可以對資料進行讀取。

inode/block資料訪問示意圖:

從此圖我們可以看到,檔案系統先格式化出inode與block的塊,假設乙個檔案的屬性與許可權資料存放到inode4中,而inode4又記錄了檔案資料的實際放置點為2,7,13,15這4個block號碼,此時作業系統就可以據此一下子將資料內容讀出來。這種資料訪問的訪問稱為「索引式檔案系統」。

上面的示意圖,是將所有的inode和block都放到一起。但是如果檔案系統很大時,inode和block的數量就會很多,將它們放在一起就不方便管理了。所以又提出了block group的概念,每個block group內都有獨立的inode/block/superblock系統。我們再看一下含有block group的檔案系統示意圖:

注意,檔案系統最前面有乙個啟動扇區(boot sector),這個啟動扇區可以安裝引導裝在程式(這是個非常nice的設計,如此一來就能夠將不同的引導裝在程式安裝到個別的檔案系統的最前端,而不用覆蓋掉mbr,這樣才能製作出多重引導的環境)。至於每乙個block group的主要內容:

2.1 data block

用來放置檔案內容的地方,在ext2檔案系統中所支援的block大小有1kb,2kb及4kb。由於block大小的區別,會導致該檔案系統能夠支援的最大磁碟容量和最大單一檔案容量不同。因為block大小而產生的ext2檔案系統限制如下所示:

除此之外對block的限制還包括:(1)原則上,block的大小與數量格式化完就不能變了;(2)每個block內最多只能存放一 個檔案的資料;(3)如果檔案大於block的大小,則會占用多個block;(4)若檔案小於block大小,則該block的剩餘空間就不能再用了。

2.2 inode table

inode記錄的資料至少有下面這些:(1)該檔案的訪問模式(rwx);(2)該檔案的所有者(owner/group);(3)該檔案的大小;(4)該檔案建立或狀態改變的時間(ctime);(5)最後一次的讀取時間(atime);(6)最近修改的時間(mtime);(7)定義檔案特性的標誌,如setuid;(8)該檔案真正內容的指向。

下面讓我們來分析一下inode/block與檔案大小的關係。inode大小128b,記錄乙個block用4b。假設檔案很大,將需要很多記錄,為了解決這個問題,作業系統將inode記錄block號碼的區域定義為12個直接、乙個間接、乙個雙間接和乙個三間接記錄區。如圖所示:

我們計算一下這樣的inode能指定多少block?我們假設block大小為1kb:

此時我們知道當檔案系統將block格式化為1k時,能夠容納的最大檔案為16gb,和前面提到的相一致。但這個方法不能用在2k和4k大小的block的計算中,因為它們還會受到檔案系統本身的限制。

EXT2 EXT3檔案系統(二)

整理自 鳥哥的linux私房菜 整理者 華科小濤 接ext2 ext3檔案系統 一 2.3 superblock 超級塊 2.4 file system description 檔案系統描述說明 這個區段可以描述每個block group的開始與結束的block號碼,以及說明每個區段分別介於哪乙個b...

深入理解ext2 ext3檔案系統真相

摘要 我們對於ext2 ext3檔案系統的了解大多來自作業系統的課本或者 understanding linux kernel 這本書,但是最近做了乙個專案,需要根據檔案的inode結點號找到inode本身。因此需要對ext2 ext3檔案系統做深入的理解。在做的過程中才發現,原來書上講的理論和現實...

Liinux 檔案系統EXT2,EXT3區別

概念 ext2 ext3 linux環境上的檔案系統。ext2 ext3檔案系統使用索引節點來記錄檔案資訊,作用像windows的檔案分配表。索引節點是乙個結構,它包含了乙個檔案的長度 建立及修改時間 許可權 所屬關係 磁碟中的位置等資訊。ext2 ext3的區別如下 1 ext2和ext3的格式完...