GPT 是否针对 4k 块对齐?

Ric*_*ket 5 hard-drive partitioning alignment gpt

GUID 分区表的维基百科文章没有明确说明它是否与底层 4k 块文件系统对齐。如图所示,数据扇区的第一个块为块 34,它不能被 8 整除(每个扇区 512 字节 * 8 个扇区 = 4k 块),那么我倾向于说不。即使 Windows 使第一个分区成为Microsoft Reserved Partition,正如它通常所做的那样,该分区是 65536 个块(32 MiB),因此仍然 65536+34=65570 不能被 8 整除。

我错过了什么吗?

Jde*_*eBP 7

是的,你错过了两件事:

  • EFI分区表要求为34块长。 维基百科文章在这方面完全具有误导性。根据实际规范,而不是维基百科,分区表长度由分区表条目的大小和分区表条目的数量决定。它们都是可变的,对于任何单独的 EFI 分区磁盘,它们的值都存储在 EFI 分区表头中。34 个块仅仅是一个 128 字节的分区表条目大小、512 字节的块大小和一个具有 128 个条目的分区表所得到的。这是规范要求的 EFI 分区表的最小大小。这不是大小。
  • 第一个可用块不一定是第一个使用的块。(它不是一个“数据部分”,由的方式。)仅仅因为一个特定盘块#34可以是第一可使用的块,所以要求一个分区从那里开始。EFI 分区工具可以将分区与他们喜欢的任何规则对齐。(确实,有几个,例如 Apple 的 Disk Utility,著名的就是这样做。Rod Smith 的gdisk也有一个重要的规则集。)EFI 规范没有强制要求分区与第一个或最后一个可用块对齐。事实上,严格来说,它甚至没有强制要求第一个可用块紧跟在分区表的主副本之后。


小智 5

JdeBP 的反应很好,但我想补充一点,在实践中,大多数现代分区工具默认在 MBR 和 GPT 磁盘上对齐 2048 扇区 (1 MiB) 边界上的分区。这可以使高级格式驱动器以及其他驱动器类型(例如 SSD 和具有其他对齐要求的某些类型的 RAID 阵列)的分区正确对齐。此规则的一个部分例外是 OS X 的磁盘实用程序,它倾向于创建一个 EFI 系统分区 (ESP) 作为从扇区 40 开始的第一个分区。但是,磁盘实用程序创建从 1 MiB 边界开始的后续分区。