我怎样才能将 MBR 的引导代码清零?

我怎样才能将 MBR 的引导代码清零?

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

  • 驱动器 1、系统和启动。
  • 驱动器2,数据存储。

以前,我曾在第二个驱动器上安装过 Windows。现在我已经拥有了当前设置,我想从驱动器 2 上的引导扇区中删除 Windows 的引导代码。具体来说,我不想删除分区表或任何东西,只是删除(清零)查找 NTLDR 的那一点点代码。

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

答案1

对于 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

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

要擦除 446 字节引导程序:

dd if=/dev/zero of=/dev/<path of data drive> bs=446 count=1 seek=0

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

dd if=/dev/zero of=/dev/<path of data drive> bs=440 count=1 seek=0

答案2

在磁盘管理中将其标记为不活动就足以满足您的情况了。

答案3

对于这个复杂的答案,我提前请求您的原谅,但我不太明白您想做什么(或者更好: 为什么)。

我认为您正在寻找FDISK /CMBR命令。还有一些实用程序可以执行相同的任务,例如 Paragon Partition Magic 或 Boot/Partition Editor。

你要做的是重写 MBR将 D: 分区设置为非系统(不活动、不可启动、没有 B 标志等)。

请注意,FDISK /CMBR 只能作用于非系统磁盘;许多引导加载程序会安装以下代码:需要之后“查看”具有正确格式或几何形状的磁盘;用库存加载器替换它们(这是 /CMBR 所做的)会导致磁盘无法访问,直到恢复先前的代码。

如果您需要将磁盘设为不可引导,因为它会干扰引导顺序或其他问题(例如,显示“NTLDR 未找到”错误而不是引导),则更好的选择是修改 BIOS 参数以设置引导设备顺序,或使用类似 FDISK 的实用程序将该驱动器上的所有分区标记为非系统。在紧急情况下,交换两个硬盘应该可以达到相同的效果。

否则,有“选择性引导加载程序”(例如 GRUB)可以帮助您实现灵活的引导选项(例如从启动菜单屏幕引导 Linux、Windows 或另一个 Windows)。

相关内容