1. 程式人生 > >Linux 磁碟與檔案系統 —— 基礎知識(一)

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