Windows 安装后卡在 grub 救援状态

Windows 安装后卡在 grub 救援状态

我曾经在 Ubuntu(lucid)和 Windows 7 之间有过双启动,但我想将我的 Windows 升级到 64 位,因此我安装了新的 Windows,它自然会覆盖 MBR,因此我尝试使用以下指南进行修复:https://help.ubuntu.com/community/Grub2#Reinstalling%20GRUB%202

我遇到了很多麻烦,但还是设法让系统启动到某个 grub 命令行,而不是 Windows,我认为这很有用。然后我做了一些奇怪的事情,现在当我启动时,我得到了 grub 救援命令行。

因此,我按照同一页面上与救援模式相关的说明进行操作,但有点困惑。如果我执行 ls,我会得到:

(hd0)(hd0,msdos1)(hd1)(hd1,msdos5)(hd1,msdos1)

如果我尝试列出这些分区的内容,唯一有效的是 (hd1,msdos1),其他分区都显示“未知文件系统”。检查此分区的内容,它似乎包含我的 Ubuntu 主目录。

无论如何,我发现了一些可以执行某些操作的命令组合:

set prefix=(hd1,msdos1)/boot/grub
set root=(hd1,msdos1)
insmod /boot/grub/linux.mod
linux /vmlinuz root=/dev/sdb1 ro
initrd /initrd.img
boot

然后它看起来好像可以工作了,但我发现自己处于某种调用自身的提示符中busybox initramfs。我尝试了各种方法,但无法弄清楚如何update-grub按照建议运行命令。

答案1

这是恢复损坏的系统的 GRUB 2 文件的一种快速而简单的方法。终端用于输入命令,用户必须知道已安装系统的设备名称/分区(sda1、sdb5 等)。从 LiveCD 找到并安装问题分区。然后将文件从 LiveCD 库复制到正确的位置和 MBR。与以下方法相比,它需要的步骤最少,命令行条目也更少。

  1. 启动到 LiveCD 桌面(Ubuntu 9.10 或更高版本)。
  2. 从菜单栏中选择“应用程序”、“附件”、“终端”来打开终端。
  3. 确定 Ubuntu 安装的分区。fdisk 选项“-l”是小写的“L”。

sudo fdisk -l

如果用户不确定分区,请寻找适当大小或格式的分区。

运行 sudo blkid 可能会提供更多信息来帮助找到正确的分区,特别是如果分区已标记。设备/驱动器由 sdX 指定,其中 X 是设备名称。sda 是第一个设备,sdb 是第二个,等等。对于大多数用户来说,MBR 将安装到 sda,即系统上的第一个驱动器。分区由 Y 指定。第一个分区是 1,第二个是 2。请注意,设备和分区的计数方式不同。

  1. 挂载包含 Ubuntu 安装的分区。

sudo mount /dev/sdXY /mnt

例如:sudo mount /dev/sda1 注意:如果用户有单独的 /boot 分区,则必须将其挂载到 /mnt/boot

  1. 按照下面所述运行 grub-install 命令。这将重新安装已安装分区上的 GRUB 2 文件到正确的位置和指定设备的 MBR。

sudo grub-install --root-directory=/mnt/ /dev/sdX

例如:sudo grub-install --root-directory=/mnt/ /dev/sda 6. 重启 7. 使用 sudo update-grub 刷新 GRUB 2 菜单

重新启动...完成....

答案2

如果您想尝试自动化,有一些工具可以更轻松地恢复 grub 启动扇区和 MBR。

Super Grub Disk 可以刻录到 CD 并单独运行。

http://www.supergrubdisk.org/

或者您可以将其用作更广泛的诊断和修复工具的一部分,例如 Ultimate Boot CD:

http://www.ultimatebootcd.com/

相关内容