Drive Initialization
這裡說的是拿到一個啥都沒的 disk 我們會怎麼樣初始化它
Step 1: Low-Level/Physical Formatting
磁碟會被分割成一個個 sector,每個 sector 會有自己的 metadata 以及 ECC。每次讀取此 sector 都會透過 ECC 檢查此 sector 是否有壞掉
一個 sector 大小是 512 bytes 或 4096 bytes(現代 disk)
Sector
硬體層面最小單位我們稱 sector,軟體層面我們則稱 block(兩者相同只是在不同層面的名詞)
Step 2: Partition
在 low-level formatting 後,Disk 會像是一大塊儲存空間,OS 接下來會將其分割成多個 partition,每個都可以當成是獨立硬碟使用
Step 3: Logical Formatting
在啥都沒有的 partition 上我們會在上面建立 file system(ext4, FAT…),這個操作稱為 logical formatting
在這個步驟中 OS 會往 partition 上寫上 file system metadata(i-node table 之類的)
為了提升效率,雖然 bus 的傳輸以 sector 為單位,然而在 file system 會以 cluster 為單位配置空間,cluster 通常由多個 sector 組成,因此會有一些 internal fragmentation 的問題(因為 granularity)
file system metadata
在 OS 每次要 mount 某個 partition 時會先去確認 file system metadata 有沒有問題,沒問題才允許 mount