我试图了解创建正确对齐的分区的规则是什么。
目前我正在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 和加密的分区规则感兴趣,但这目前并不重要。我需要先了解基础知识。
答案1
我在 util-linux 邮件列表上询问(“fdisk”程序属于 util-linux 软件包)。您可以阅读整个主题这里。让我引用相关部分。
凯·西弗斯说道:
这是事实上的标准,Windows 也是如此。第一个兆字节在这里保留用于引导加载程序或磁盘或盒子引导所需的任何其他管理数据。
卡雷尔·扎克说道:
真正的原因是 1MiB 是在几乎所有随机硬件上保持分区对齐的理想偏移量。此偏移量与 512 字节、4096 字节扇区设备、许多 raid 设备以及物理扇区大小报告不正确的旧损坏 WD 磁盘兼容。您可以使用 dd(1) 将 PT + 数据移动到另一个设备,而无需关心物理设备拓扑(I/O 限制)等。
保持分区大小与 MiB 对齐也很重要——例如,如果您在 +{M,G} 约定中指定大小,则这是 fdisk 中的默认值。