我有一个双启动系统,其中有带有 McAfee 加密端点卷的 Windows 7 和在完全独立的(扩展托架)卷上的 Ubuntu 12.04(3.5.0 内核)。
目前,该系统(笔记本电脑)可以很好地启动到任一系统,只要满足以下任一条件:
- 我物理删除了包含未使用的系统的驱动器。
- 我启动到 BIOS 并选择包含我想要的系统的驱动器。
我想保持这种状态。在过去的几个月里(自从启用 McAfee 加密以来),我曾多次遇到 McAfee 损坏(McAfee 之前的)Windows 卷 GRUB MBR,并且 GRUB2 更新损坏了 Windows 7 McAfee EE MBR,以至于其中一个系统无法访问。
现在,我已经达到了一个稳定的状态,Win 7 卷似乎对 Ubuntu 卷一无所知,反之亦然。但由于最后一次损坏发生在 GRUB 1.99 更新期间(以及随后自动调用 update-grub),每次看到推出新内核时我都很担心。为了安全起见,我在更新内核之前删除了我的 Win-7 卷,这样 GRUB 根本看不到它。
但是有没有办法可以永久地告诉 GRUB 在任何情况下都不应触碰 Windows 卷? BIOS 选择不如 GRUB 那么友好,但它似乎更安全……而且我仍然想使用 GRUB 在 Ubuntu 内核版本之间切换。
答案1
Grub2 会记住在重大更新时重新安装的位置。您应该更改该设置。
要查看 grub2 使用的驱动器,请参阅此行 - grub-pc/install_devices:
sudo debconf-show grub-pc
sudo grub-probe -t device /boot/grub
如果您取消选择所有内容或安装到我们从不推荐的分区,它将不会重新安装到驱动器的 MBR。请重新检查上面的 install_device 设置。
让 grub2 记住更新时重新安装的位置:
sudo dpkg-reconfigure grub-pc
进入第一页,空格键选择/取消选择驱动器,输入接受,不要选择分区