Linux 上的分区及其 CHS 依赖性

Linux 上的分区及其 CHS 依赖性

最近我在对 WD20EARS 磁盘(具有 4k 扇区)进行分区时遇到了问题。我需要正确对齐分区,因此我仅使用 parted 的“unit s”模式,从 mod8 扇区开始所有分区(驱动器本身报告,该扇区为 512b),然后从 mod8-1 扇区结束所有分区。

但后来我想,也许我应该考虑磁柱边界(我在网上看到过一些帖子,其中 fdisk 抱怨分区不是在磁柱边界上开始/结束的)。然后...我想,如果驱动器谎报了它的扇区大小,那么它是否也谎报了整个几何形状?

我是否应该关心分区是否与柱面边界对齐?如果是这样,我如何找到这些边界?我猜每个驱动器模型每个磁道/柱面可以包含不同的扇区...或者扇区对齐就是我应该关心的全部?

答案1

您无需担心现代(大约 1998 年以后)硬盘的柱面对齐问题。C/H/S 值与实际驱动器几何形状毫无关系。您的 BIOS 会选择并报告一些方便的虚构值,以实现向后兼容性。(您也可以在启动时通过 CMOS 设置更改这些值。)

除非您使用的是 20 世纪 90 年代中期的操作系统或更古老的操作系统(例如 MS-DOS),否则 BIOS 报告的 C/H/S 值基本上无关紧要。现代 Linux 和 Windows 变体使用 LBA(逻辑块寻址)进行磁盘 I/O,因此它们直接将磁盘扇区作为扇区号进行寻址。无论 C/H/S 值相对于分区边界如何,磁盘操作和性能都将完全相同。

'fdisk'实用程序可能会抱怨,但您可以放心地忽略它。

答案2

错误,如果您使用 Grub4DOS 映射到内存上,它应该关心,它使用 C/H/S 而不是 LBA,并且对于许多 VHD 文件,MBR 显示的 C/H/S 值与分区 C/H/S 值不同。

当使用 Windows 原生工具 Diskpart 创建 VHD 文件时,其分区本身也是使用该工具创建的。

因此有时 C/H/S 在 2017 年也很重要。

相关内容