我试图了解创建正确对齐的分区的规则是什么。
目前我在parted
虚拟机上玩,但我计划在我更有信心时转移到真正的硬盘上。我在 2008 年买了我的笔记本电脑,所以它没有 4 KiB 扇区,而是 512 B 扇区。我将使用具有 4 KiB 块的 EXT4 文件系统,所以我想无论如何我都需要与 4 KiB 对齐。据我所知,扇区从零开始编号,第一个是为 MBR 保留的。所以我得出结论,我需要在 MBR 之后留下 7 个未使用的扇区(4096 B / 512 B - 512 B),第一个分区可以从扇区 8 开始。该分区的结尾可以是任何小于 1 的扇区号一个可被 8 整除的数字。例如 15,对于只有一个 EXT4 块的极小分区。
问题是parted
我说“结果分区没有正确对齐以获得最佳性能”,但并没有告诉我究竟出了什么问题。如果我尝试使用fdisk
,我什至不能使用小于 2048 (1 MiB) 的扇区作为第一个分区的开始。我搜索了这背后的理由,但我一无所获。
将来,我可能会对考虑 LVM、RAID 和加密的分区规则感兴趣,但目前这并不重要。我需要先了解基础知识。
小智 2
我在 util-linux 邮件列表上询问(“fdisk”程序属于 util-linux 软件包)。您可以在此处阅读整个主题。让我引用相关部分。
凯·西弗斯说道:
这是事实上的标准,Windows 也是如此。第一个兆字节在这里保留用于引导加载程序或磁盘或盒子引导所需的任何其他管理数据。
卡雷尔·扎克说道:
真正的原因是 1MiB 是在几乎所有随机硬件上保持分区对齐的理想偏移量。此偏移量与 512 字节、4096 字节扇区设备、许多 raid 设备以及物理扇区大小报告不正确的旧损坏 WD 磁盘兼容。您可以使用 dd(1) 将 PT + 数据移动到另一个设备,而无需关心物理设备拓扑(I/O 限制)等。
保持分区大小与 MiB 对齐也很重要——例如,如果您在 +{M,G} 约定中指定大小,则这是 fdisk 中的默认值。