据我所知,分区时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