我的问题与另一个但不是重复的,所以请在标记为重复之前尝试理解。我无法发表评论另一个。
在另一个,我理解并同意这个答案。但是,由于 i.MX6UL 处理器的限制,我必须使用 DOS MBR 而不是 GPT。如何将扩展分区中的逻辑分区调整为 8 MiB?
一些带有数字的详细示例将不胜感激。我在 16 GiB eMMC 上有以下分区方案:
p1 primary 128 MiB
p2 primary 128 MiB
p3 primary 16 MiB
p4 extended
p5 logical 256 MiB
p6 logical 256 MiB
p7 logical 256 MiB
p8 logical whatever remains
我需要为 U-Boot 跳过前 4 MiB。为了对齐 8 MiB,我可以在偏移 8 MiB 或块号 16,384 处启动我的第一个主分区 p1。 p1、p2 和 p3 的计算非常简单。
但是,鉴于扩展分区在每个逻辑分区之前都包含一个 EBR,我不知道如何考虑这一点。 EBR 大小为 512 字节,但是,https://en.wikipedia.org/wiki/Extended_boot_record表示逻辑分区在 1-MiB 边界处对齐。
这是我到目前为止所得到的,但如果有人可以验证并解释这是否正确,我将不胜感激:
Partition Start Block End Block Partition Type
--------- ----------- --------- --------------
1 16,384 278,527 primary
2 278,528 540,671 primary
3 540,672 573,439 primary
4 573,440 29,884,415 extended
5 589,824 1,114,111 logical
6 1,114,112 1,638,399 logical
7 1,638,400 2,146,303 logical
8 2,146,304 29,884,415 logical
答案1
毕竟我建议使用 GPT 而不是 MBR 分区。 GPT 分区处理起来要简单得多(没有扩展/逻辑混乱),并且您可以解决 i.MX6UL 引导 ROM 施加的限制。参考手册 (IMX6ULRM) 在表 8.25 中指出,图像向量表是从 eMMC 上的偏移量 1024 读取的。这正好适合在 IVT 之前保存 MBR 和 GPT 标头。通常,分区条目表遵循从 LBA 2 开始的 GPT 标头,但可以通过在标头中设置字段“分区条目数组的起始 LBA”(偏移量 72)来移动它。这样,您就可以在 GPT 标头和分区条目表之间为映像释放尽可能多的空间。要创建带有重定位分区条目表的 GPT,您可以使用sgdisk
(使用该-j
选项)。