什么是分区对齐,我为什么需要它?

Det*_*ant 23 partitioning

什么是分区对齐,为什么?是否与两个逻辑分区之间的 2048 扇区间隙有关?

Mok*_*bai 26

正在制造的新硬盘驱动器使用 4 KB 扇区,而不是传统的 512 字节扇区。

这样做是为了更有效地利用硬盘驱动器上的物理空间,因为对于每个扇区,驱动器上都有一小批纠错数据,并且每个扇区从 0.5 千字节增加到 4 千字节意味着空间可以少得多在驱动器上浪费了这个纠错数据。为了说明我的意思,这是从维基百科关于高级格式驱动器的文章中截取的图像:

在此处输入图片说明

必须对齐您的磁盘的原因源于软件的交互,该软件被编写为期望 512 字节扇区在具有 4 KB 扇区的驱动器上工作。如果软件需要 512 字节的扇区,那么它很可能正在尝试写入它认为是集群的“第二个”扇区,但实际上是 4 KB 扇区的第二个 512 字节。

问题在于,模拟 512 字节扇区到操作系统但实际上在内部使用 4 KB 扇区的“高级格式”驱动器是一个扇区只能“一次性”写入。为了写入第二个 512 字节区域,必须读取整个 4KB 扇区,然后重新写入驱动器,这比简单地告诉驱动器重写整个 4KB 扇区要慢。

即使操作系统知道 4KB 扇区,它也必须正确对齐驱动器,以便扇区之间的边界在驱动器所说的位置和操作系统认为的位置之间达成一致。

然后是 SSD,它们具有类似的问题,它们可以逐字节写入,但只能以通常为 256KB 或 512KB 的大块擦除。这样,为了最大限度地提高性能,您必须沿着那些 256 或 512KB 块之一对齐分区(以及扇区)边界。

出于这个原因,许多现代分区工具只是将整个驱动器沿 1MB 边界对齐,这巧妙地消除了检测是否有多种驱动器类型的需要,无论是 512 字节扇区、4KB 扇区还是具有任意块大小的 SSD。

-=编辑=-

要判断您的驱动器是否正确对齐,有多种方法可以检查,正如Lifehacker 上的这篇文章所述。该建议主要适用于 SSD,但同样适用于确保正常硬盘驱动器正确对齐:

要查看您的分区是否正确对齐,请点击“开始”菜单并输入msinfo32. 进入Msinfo32并转到Components> Storage> 磁盘。在列表中查找您的 SSD 并找到“分区起始偏移量”项。如果这个数字能被 4096 整除(也就是说,如果它除以 4096 等于一个整数而不是一个小数),你的分区就正确对齐了。如果没有,您需要重新调整它。幸运的是,使用 Gparted live CD 很容易做到这一点。如果你有一个 Ubuntu live CD,它也可以工作,因为它在系统 > 管理下有 Gparted 可用。

  • 请注意:当软件想要写入大量 4kiB 文件系统扇区时,由于错误对齐而导致性能下降。如果每次写入溢出 512B 到下一个 4kiB 磁盘扇区,那么下一个整个扇区也必须重写,从而导致所需写入量增加两倍。(第一个磁盘扇区仍包含 3.5kiB 写入的数据) (3认同)
  • @Futal 99.9% 的人都知道导致我们需要 MiB/MB 区别的愚蠢情况,并且根本不在乎它。这是毫无意义的,(在大多数情况下)无关紧要。大多数人还可以使用一种称为“上下文线索”的语言技巧来找出是指哪个。如果我在同一个句子中谈论 512byte 和 4kb 扇区,那么我的意思是 4000bytes 甚至 1000000bytes 作为 1MB 是值得怀疑的。 (2认同)