分区表是以逻辑块大小为单位还是以512字节为单位?

Do partition tables use logical block size or 512 bytes as the unit?

当我从设备读取分区 table(MBR 或 GPT)时,数字是以逻辑块大小为单位还是标称 512 字节扇区?令人惊讶的是,我无法通过谷歌搜索找到规范的答案。

结论已根据进一步调查推翻

虽然几乎所有驱动器都使用512字节的逻辑扇区,但现代分区表使用LBA地址,LBA单元大小是设备的逻辑扇区大小,今天可能有4096字节那么大。

最后,我将有关单元大小的问题发布到主 GNU parted(分区编辑器)邮件列表中,并已收到 this response。具体来说:

"LBA 总是指驱动器的块大小。所以它可能是 512 或 4096 或其他一些值,具体取决于驱动器报告的内容。"

不正确的先前答案版本:[[分区表(在 MBR 中和其他地方)指的是 512 字节块/逻辑扇区。例如参见 [​​=11=]

背景资料

磁盘物理磁盘扇区大小的报告似乎基本上是通过 ATA-8 规范中的命令完成的,特别是 "IDENTIFY DEVICE" 命令。兼容性问题(最常讨论的)是 I/O 操作的对齐。显然大多数驱动器处理 512 字节对齐,但性能会下降,尽管有一些驱动器标榜为“4k native”或“4kn”,但根本不支持 512 字节对齐 I/O。一般来说,物理 4k 扇区的驱动器使用所谓的 "Advanced Format",如果您需要更多信息,这可能会帮助您搜索。

这篇文章 https://linuxconfig.org/linux-wd-ears-advanced-format 有一些相对清晰的讨论,特别是如果您是 Linux 用户。对于它的价值,在 Linux 上,"parted -l" 命令报告物理和逻辑扇区大小,并且 parted 还知道如何为高级格式设备适当地对齐分区。

此外,您可能会发现这篇文章 http://www.seagate.com/tech-insights/advanced-format-4k-sector-hard-drives-master-ti/ 在这个问题上提供了信息并使您放心。