什么是分区对齐,为什么我需要它?[重复]


Answers:


23

正在制造较新的硬盘,以利用4 KB的扇区,而不是传统的512字节的扇区。

这样做是为了更有效地利用硬盘驱动器上的物理空间,因为每个扇区上都有少量的纠错数据,并且通过将每个扇区的容量从0.5 KB扩展到4 KB,可以减少空间驱动器上的此错误校正数据被浪费了。为了显示我的意思,这是摘自Wikipedia文章“ 高级格式驱动器”的图像:

在此处输入图片说明

必须对齐磁盘的原因是由于编写软件的交互作用而产生的,该软件预期在具有4 KB扇区的驱动器上可以使用512字节的扇区。如果软件期望使用512字节的扇区,那么它很可能会尝试写入它认为是群集的“第二”扇区的内容,但实际上是4千字节扇区的第二个512字节。

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

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

然后就是SSD,它们有类似的问题,因为它们可以逐字节写入,但只能以通常为256KB或512KB的大块进行擦除。这样,为了使性能最大化,您必须沿着256KB或512KB块之一对齐分区边界(并因此对齐扇区边界)。

因此,许多现代分区工具仅将整个驱动器沿1MB边界对齐,从而完全无需检测是否具有多种类型的驱动器,无论是512字节扇区,4KB扇区还是具有任意块大小的SSD。

-=编辑=-

Lifehacker上的文章所述,要判断驱动器是否正确对齐,可以采用多种方法进行检查。该建议主要适用于SSds,但与确保正确对齐正常硬盘驱动器同样重要:

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


3
请注意:由于错误对齐而导致的性能损失是在软件要写入彼此相距较远的许多4kiB文件系统扇区时出现的。如果每个写入都将512B溢出到下一个4kiB磁盘扇区中,则该下一个整个扇区也必须重写,从而导致所需写入量增加一倍。(第一个磁盘扇区仍包含3.5kiB写入的数据)
Eroen'2

@kinokijuf正如我所提到的,4KB扇区是为了更有效地利用磁盘(节省空间相当于释放额外的存储空间,因此可以看作是可以收取的额外现金),但是对齐本身出于性能原因而进行的。 。
Mokubai

1
大多数现代分区工具都沿1 MiB边界对齐,例如1048576字节。沿1 MB边界的对齐方式不起作用,因为它不是4096的倍数
。–最终

1
@Mokubai:1MB = 1,000,000字节(不是1024的倍数),1MiB = 1,048,576字节(1024的倍数)。它在NIST等所有标准机构认可的ISO / IEC 80000中定义。
致命的

1
@Futal 99.9%的人知道使我们需要MiB / MB区别的愚蠢情况,根本不在乎它。这毫无意义,而且(大部分)无关紧要。大多数人还可以使用一种称为“上下文线索”的语言技巧来弄清楚是什么意思。如果我在同一句话中谈论的是512byte和4kb扇区,那么我的意思是4000byte甚至1000000bytes为1MB。
Mokubai
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.