如何将 MBR 的启动代码清零?

K.A*_*ica 2 windows hard-drive bootsector

我的 Windows 系统中有两个驱动器:

  • 驱动器 1,系统和引导。
  • 驱动器2,数据存储。

前一段时间,我在第二个驱动器上安装了 Windows。现在我有了当前的设置,我想从驱动器 2 上的引导扇区中删除 Windows 的引导代码。具体来说,我不想擦除分区表或任何东西,只需删除(清零)寻找 NTLDR 的一点代码。

有没有软件或命令可以做到这一点?

Xyo*_*yon 5

在 DOS 风格的分区表的情况下,MBR 始终作为驱动器开头的一个非常小的扇区集合出现在驱动器上。

它不是要摆脱的东西,因为除了引导代码之外,它还包含驱动器的分区表。丢失意味着磁盘上的数据虽然完好无损,但突然变得更难获取(我见过的大多数操作系统都会报告格式错误,如果没有,Windows 会询问您是否要格式化驱动器了解分区表)。

更多信息:http : //technet.microsoft.com/en-us/library/cc976786.aspx

编辑:既然你编辑了问题,我会更新我的答案;dd可以擦。启动到 linux livecd 并在未安装的数据驱动器上运行;

dd if=/dev/<path to data drive> of=/dev/<somewhere safe on windows drive>/mbr.img bs=512 count=1
Run Code Online (Sandbox Code Playgroud)

这将为您提供 MBR 的 512 字节备份,包括分区表,以防出现任何问题。

要擦除 446 字节的引导程序:

dd if=/dev/zero of=/dev/<path of data drive> bs=446 count=1 seek=0
Run Code Online (Sandbox Code Playgroud)

根据您要实现的目标,您可能只想擦除 MBR 的前 440 个字节。前 440 个字节之后的 4 个字节包含您可能希望保留的 Windows 唯一磁盘签名。要仅擦除前 440 字节,请使用以下命令:

dd if=/dev/zero of=/dev/<path of data drive> bs=440 count=1 seek=0
Run Code Online (Sandbox Code Playgroud)

  • +1,但未来的读者应该注意,没有(明显的)任何人真正想要这样做的原因。 (2认同)