包含“MBR”的块的大小是如何确定的

包含“MBR”的块的大小是如何确定的

我使用 fdisk 将 Ubuntu Mate 分区从 1M 边界移动到 SD 卡上的 4M 边界。

“boot”分区现在从块 8192 开始。

这就是 Raspbian 发行版的配置方式,这对于分区与擦除块组对齐非常有意义。

这工作正常,但 gparted 在“启动”分区之前显示了 4M 未使用的块,而 Raspbian 则没有显示该块。

我的问题是系统如何“知道”第一个 4M 被保留用于在一个磁盘上启动,但认为在我修改的磁盘上只保留 1M。

编辑

我刚刚购买了一张全新的8GiB SDHC存储卡,它有一个从块8192开始的FAT32Lba分区。我转储了第一个4MiB,其中包含00,除了包含分区表的16字节,所以这里似乎没有什么特别的。

答案1

我建议您:

  1. 对齐DOS-partitions从扇区开始64
  2. 如果只需要一个分区且不需要引导扇区,请避免使用分区表。

62的引导加载程序只需要扇区DOS-partition tables。从我的角度来看,没有充分的理由将分区对齐到4M,而只是对齐到4K

我的问题是系统如何“知道”第一个 4M 被保留用于在一个磁盘上启动,但认为在我修改的磁盘上只保留 1M。

从技术上讲,它们4M不保留用于引导。它们没有被使用。 (第一个除外32256 bytes)。

我刚刚购买了一张全新的8GiB SDHC存储卡,它有一个从块8192开始的FAT32Lba分区。我转储了第一个4MiB,其中包含00,除了包含分区表的16字节,所以这里似乎没有什么特别的。

require和 onlyMaster Boot Record对于定义分区表很有用。512 bytes16 bytes

除此之外512 bytes62 sectors可能会被使用bootloader,因此不超过32256 bytes (63 sectors)a 所需的内容,DOS bootloader with MBR其余的是技术上的unused

相关内容