fdisk
據我的經驗,當分區時最後幾個扇區不能包含在一個分區中。我一直認為這是由於 MiB 或 IO 塊對齊造成的,但我剛剛意識到它允許我使用的最後一個扇區未對齊!我針對不同供應商的多個 HDD 嘗試了多種工具,但它總是最後 30 個左右的扇區。例如:
Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 976773168 sectors
last MiB-aligned sector: 976773119
last IO-block-aligned (4KiB) sector: 976773167 (the last one)
last usable sector: 976773134
這當然不是一個大問題,但我很好奇原因。跟壞道有關係嗎?
答案1
我打賭你創建了一個GUID 分割區表 (GPT)在磁碟上取得「最後一個可用磁區」號碼。
您是否注意到最後一個可用扇區比扇區總數少了 34 個扇區?
看一下這個:
(來源)
那些「不可用」的33個磁區其實是用來備份GPT的! (到最後就是 LBA -34。)
我們也可以推導出為什麼最後一個 MiB 對齊磁區和最後一個 I/O 區塊對齊磁區是這樣的。
筆記:您可能在不使用 GPT 的情況下獲得了最後的扇區號。這舊版 MS-DOS 分區表僅在磁碟開頭佔用 512 位元組(1 個邏輯磁區),而末端不佔用任何內容。
磁碟資訊
Logical sector size: 512 (used in calculations)
Physical sector size: 4096 (used for I/O block alignment)
物理塊對齊
您最後對齊的磁區:976773167
Physical sector size: 4096
Divide by logical sector size: ÷512
----
Sectors for block alignment: 8
Total sector count: 976773168
Divide by alignment sectors: ÷8
---------
Max 4KiB blocks: 122096646
Unusable sectors remainder: 0
Total sector count: 976773168
Subtract remainder: -0
---------
First unalignable sector: 976773168
Your last aligned sector: 976773167
1MiB 區塊對齊
您最後對齊的磁區:976773119
1MiB in bytes: 1048576
Divide by logical sector size: ÷512
-------
Sectors for 1MiB alignment: 2048
Total sector count: 976773168
Divide by alignment sectors: ÷2048
---------
Max 1MiB blocks: 476940
Unusable sectors remainder: 48
Total sector count: 976773168
Subtract remainder: -48
---------
First unalignable sector: 976773120
Your last aligned sector: 976773119