从 GRUB 中删除不存在的 Windows 加载程序

从 GRUB 中删除不存在的 Windows 加载程序

当我update-grub在我的系统上运行时,我得到以下输出:

Found linux image: /boot/vmlinuz-3.2.0-29-generic
Found initrd image: /boot/initrd.img-3.2.0-29-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 (loader) on /dev/sda1

让我烦恼的是 Windows 7 加载程序。/dev/sda确实之前安装了 Windows 7。但是,我的目标是彻底删除它。在安装过程中,我删除了分区表并在每个驱动器上为 RAID 1 创建了两个分区。所以现在我得到了:

md1 : active raid1 sdb2[1] sda2[0]
      1855727424 blocks super 1.2 [2/2] [UU]

md0 : active raid1 sdb1[1] sda1[0]
      97589120 blocks super 1.2 [2/2] [UU]

md0=/md1= /home,均采用 格式ext4

为什么 GRUB 一直坚持有一个 Windows 7 加载程序,这让我很困惑。这个加载程序位于哪里,我该如何摆脱它?

答案1

据我所知,Windows 7 启动过程不仅使用 MBR,还使用 ​​VBR(卷引导记录),它包含在分区的前 512 个字节中。

因此,我会尝试将所有 sda1 清零,例如

dd if=/dev/zero of=/dev/sda1 bs=1M

然后再次运行update-grub

答案2

1 停止(Windows)操作系统探测

sudo chmod a-x /etc/grub.d/30_os-prober

...您应该会看到,下次再使用时不会再进行窗口探测sudo update-grub。(a+x恢复)。更加“棘手”,但“侵入性”更少。

...或 2(擦除 MBR)

  1. 创建备份
  2. 验证确实存在 MBR(以 结尾55 aa,正如 maniaque 所说)
  3. 擦除 mbr。要格外小心,sda 也是如此X数字, 之前读过

代码:

sudo dd if=/dev/sda1 of=~/mbr_sda1_backup bs=512 count=1
hexdump -C -n 512 /dev/sda1
sudo dd if=/dev/zero of=/dev/sda1 bs=512 count=1

相关内容