GNU parted:如何处理分区正确对齐的错误

XXL*_*XXL 6 linux partitioning

这是使用parted 进行分区时得到的结果:

生成的分区未正确对齐以获得最佳性能

这是一个令人不安的部分,在使用谷歌搜索时,我在某种程度上还没有找到正确的答案。这个错误是什么意思,如何处理以及为什么会发生?

注意

mkpart p 8192 X

在分区边界开始之前正好 跳过4 MiB (512x8192) 的空间,使 parted 不会喷出此错误消息(任何更少 - 确实如此)。

use*_*686 8

注意:我相信 SuperUser 已经对此有了很好的答案。但是,我找不到它。)

磁盘和文件系统都以一定大小的块(扇区、簇)来划分它们的空间,通常是 512 B ~ 8192 B 范围内 2 的倍数。

当一个分区没有“对齐”时——也就是说,当一个文件系统在一个物理扇区的中间启动时——写入单个文件系统集群涉及读取、更新和重写多个物理扇区:

              1       2       3
fsys:     |-------|-------|-------|
disk:  |-------|--'----|--'----|-------|
           1       2       3       4
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,写入文件系统集群 #2 将需要磁盘控制器读取块 #2 和 #3,然后写回同一位置(如果是硬盘,则在等待盘片旋转近 360° 之后)。

但是如果分区是对齐的,那么只需要一次写入即可。

最近的大容量磁盘在物理上使用 4096 B 扇区(称为“高级格式”),但操作系统将每个扇区视为 8 个扇区,每个扇区为 512 B。即使文件系统与那 512 个 B 扇区对齐,它仍然可能从真正的 4 kiB 扇区的中间开始,导致与上述相同的问题。

为了避免将来出现这种和相关的对齐问题,许多分区程序已经开始在高达 1 MiB 的边界上对齐(无论如何,这在 TB 磁盘上并没有太大的损失)。


归档时间:

查看次数:

7167 次

最近记录:

6 年,4 月 前