当我更换MBR时,为什么Windows会提示格式化USB驱动器?

时间:2016-04-10 19:04:15

标签: assembly filesystems nasm bootloader dd

我正在Windows下使用 NASM 在8086程序集中编写一个引导加载程序。构建之后,我使用 DD 实用程序将其写入带有FAT32文件系统的16GB USB介质。我用来更新MBR的命令是:

dd if=source.bin od=drive: bs=512 count=1

使用 DD 更新MBR后,Windows要求我格式化它。为什么Windows会这样做?是因为我损坏了文件系统吗?我如何纠正这一点,以便编写我的MBR并不会导致Windows认为我可能需要重新格式化USB驱动器?

我的bootloader / bootsector包含FAT32文件系统的BIOS参数块。尽管如此,我的问题仍然存在。

1 个答案:

答案 0 :(得分:0)

Windows要求重新格式化USB记忆棒有两个原因:

  1. MBR已损坏;
  2. MBR无法识别Windows识别的任何分区。
  3. 仅当MBR的字节0x1FE和0x1FF分别不是0x55和0xAA时才检测到

    (1)。

    (2)更难:分区表(0x1BE,0x1CE,0x1DE,0x1EE的4个16字节条目)不会在任何(或只是第一个!)的偏移量0x03处列出已知的分区类型条目。