如果扇区大小大于 512 字节,MBR 如何存储?

问题描述

据我所知,MBR 大小为 512 字节,以 0x55AA 结尾。

我的问题是:

  1. 磁盘扇区大小大于 512 字节的情况有多常见? (例如服务器中使用的磁盘等)

  2. 如果扇区大小为 4096,MBR 将如何存储?第 4095 个字节等于 0x55 还是第 511 个字节?

  3. 在我的 C 代码中读取 MBR 之前是否需要检查扇区大小?这是我需要担心的事情,还是只读取磁盘的第 512 个字节就足够了?

解决方法

即使底层硬件使用更长的块,大多数设备也提供“标准”接口,其中块大小为 512 字节。

如果扇区的大小大于 512 字节,则 MBR 将看起来完全相同的字节。所有数据都将处于相同的偏移量。只是扇区的剩余部分不会被使用。

如果扇区大小小于 512 字节,则 MBR 将占用多个扇区。

在我的 C 代码中读取 MBR 之前是否需要检查扇区大小?

通常单个扇区是您需要读取的最小块,因此最好知道它的大小,因为您需要分配一个缓冲区来存储这些数据。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...