Linux 磁碟與檔案系統 —— 基礎知識(一)
一,磁碟的物理組成
1、扇區(Sector)是最小的物理儲存單位,有 512bytes 和 4K 兩種格式。
2、將扇區組成一個圓,就是磁柱。
3、最小分割槽單位通常為扇區。
4、硬碟分割槽表主要有兩種格式,一種是限制較多的 MBR 分割槽,一種是限制較少的 GPT 分割槽。
5、MBR 分割槽中,一個扇區最重要,包括主要開機區(MBR)和分割槽表(partition table)。
6、GPT 分割槽的分割槽數量擴充多,支援的磁碟容量大。
二,磁碟的檔名
/dev/sd[a-p][1-128]:實體磁碟的檔名 /dev/vd[a-d][1-128]:虛擬磁碟的檔名 /dev/md[1-128]:軟體磁碟的檔名
三,檔案系統特性
分割槽槽只有格式化之後,才能成為作業系統能夠利用的檔案系統格式(filesystem)。
Linux 檔案系統:許可權與屬性資料放置到 inode 中,實際資料放置到 data block 中,檔案系統的整體資訊資料放置到 superinode 中。
四,Linux 的 EXT2 檔案系統
1、boot sector(啟動扇區):安裝開機管理系統,位於檔案系統的最前端。
2、data block(資料區塊):
(a)block —— EXT2 檔案系統的限制
(b)block 的大小和數量在格式化之後無法更改(除非重新格式化)
(c)每個 block 最多隻能放置一個檔案的資料
(d)如果檔案大於 block 的大小,則一個檔案會佔用多個 block 數量
(e)如果檔案小於 block 的大小,則會造成磁碟空間浪費
3、inode table(inode 表格):
(a)inode 記錄的檔案資料
該檔案的存取模式
該檔案的擁有者和群組
該檔案的容量
該檔案建立或狀態改變的時間
最近一次的讀取時間
最近修改的時間
(b)每個 inode 大小固定為 128bytes (新的 ext4 與 xfs 可設定為 256bytes)
(c)每個檔案都僅會佔用一個 inode 而已
(d)檔案系統所能建立的檔案數量與 inode 數量有關
(e)系統讀取檔案時,需要先找到 inode ,並分析 inode 所記錄的許可權與使用者是否符合,若符合才能夠開始實際讀取 block 的內容。
4、Superblock(超級區塊):
(a)block 和 inode 的總量
(b)未使用與已使用的 inode / block數量
(c)block 和 inode 的大小(block 為1,2,4K;inode為 128bytes 或 256bytes)
(d)filesystem的掛載時間,最近一次寫入資料的時間,最近一次檢測硬碟的時間等檔案系統的相關資訊
(e)一個 valid bit 數值,若此檔案系統已被掛載,則 valid bit 為 0;若未被掛載,則 valid bit 為1
5、Filesystem Description(檔案系統描述):記錄每一個 block group 的開始和結束的 block 號碼。
6、block bitmap(區塊對照表):記錄 block 是否為空
7、inode bitmap(inode 對照表):記錄 inode 是否為空
五,與目錄樹的關係
目錄:
Linux 系統中建立目錄時,檔案系統會分配一個 inode 和至少一塊 block 給該目錄。
1、inode 記錄該目錄的相關許可權和屬性,並可記錄分配到的那塊 block 號碼。
2、block 記錄在這個目錄下的檔名和這些檔名佔用的 inode 號碼資料。
3、如果目錄下的檔案數太多,Linux 會給予目錄多一個 block 來繼續記錄相關的資料。
檔案:
Linux 系統中建立檔案時,檔案系統會分配一個 inode 和與相對於該檔案大小的 block 數量給該檔案。同時,由於 inode 有12個直接指向,因此還要多一個 block 來作為區塊號碼的記錄。
1、相關含義可參考第四點 —— Linux 的 EXT2 檔案系統
參考書籍:
1、鳥哥的Linux私房菜
2、The Linux Command Line