我一直对 Grub2 很头疼。我删除了 MBR(说来话长),现在正试图恢复它。我已经恢复了所有文件,现在我需要做的就是从 Fedora 18 live CD 重新安装 grub。我正在使用 grub-install 来安装 grub。/dev/sda 是我的硬盘。这是我执行 grub2-install 的方式
grub2-install --root-directory=/mnt /dev/sda
我将旧的 grub 分区挂载到 /mnt,没有任何问题。我希望它能正常工作,但我的计算机无法启动。当然,分区被标记为活动分区,并且已设置启动签名。我决定自己调查这个问题,所以我使用 hexedit 查看 /dev/sda 上的 MBR。前几个字节都为空。它们不应该全部为空,前 446(或类似的字节)应该包含第一阶段引导加载程序机器代码。然而事实并非如此。我如何将 grub2 安装到我的 MBR,因为 grub2-install 不执行此操作。此外,我只有 Fedora 18 live CD,不能使用任何其他 live CD(另一个长篇故事)
答案1
1) 启动与您正在使用的版本相匹配的 Fedora live-cd。
2) 挂载您的正常系统分区。X 是驱动器号。Y 是分区号:
mount /dev/sdXY /mnt
3) 仅当您具有单独的启动分区(其中 sdXY 是 /boot 分区名称)时:
mount /dev/sdXY /mnt/boot
4)挂载关键虚拟文件系统。
mount -o bind /dev /mnt/dev
mount -o bind /proc /mnt/proc
mount -o bind /sys /mnt/sys
mount -t tmpfs /mnt/tmpfs /mnt/tmp
5) Chroot 到你的正常系统设备:
chroot /mnt
6) 重新安装 GRUB 2(用 sda、sdb 等替换正确的设备。不要指定分区号):
grub2-install /dev/sdX
或者
grub2-install --force /dev/sdX
7)重新创建 GRUB 2 菜单文件(grub.cfg)
grub2-mkconfig -o /boot/grub2/grub.cfg
8)退出 chroot:
CTRL-D
键盘
reboot
也可以看看:
https://unix.stackexchange.com/questions/72592/chroot-in-to-reinstall-grub2-reinstall-mnt-is-empty
https://ask.fedoraproject.org/question/10666/install-grub2-to-a-partition/