我该如何修复 grub rescue?

我该如何修复 grub rescue?

因此我阅读了另一篇关于如何修复 grub 救援的文章...就是这篇:删除 Ubuntu 分区后 GRUB 救援问题!

所以我所做的基本上是

set root=(hd0,msdos6)  # I tried this with a bunch of other msdosses and hd0s and none of them worked
set prefix=(hd0,msdos6)/boot/grub
insmod normal #this is when I got the error
normal #when i put this in it said 'unknown command

我这样做了,但有点失败了。我得到了错误

/boot/grub/i386-pc/normal.mod 

我想知道如何修复这个问题,以便我可以启动 Windows。我的 PC 上没有 Ubuntu/Linux。我没有 Windows CD 或 Live CD 或任何用于启动的东西,但我有一个空的闪存驱动器。我可以在闪存驱动器上安装一些东西来启动我的 PC?我不太确定。我在网上搜索过,但没有找到 :/。我真的想能够访问我的 Windows 操作系统。

答案1

这个问题很容易解决,但是你需要一些工具才能解决:

  • 带有 GRUB 的 Linux 系统。Live 媒体应该可以做到;

  • 备用 USB 驱动器(从中备份数据)。

首先,启动 Linux 系统(必须安装 GRUB!)。使用 GParted 等工具将您的 USB 驱动器格式化为 扩展2。 一定是ext2*

使用 GParted 时,您应该获取 USB 驱动器的设备文件路径(应该是类似/dev/sdb1)。记下来,我们会用到它。

打开终端窗口并运行:

sudo umount -l /dev/sdb1

用您记下的内容进行替换/dev/sdb1。如果上述命令抛出错误(例如“设备未安装”),请忽略它。

sudo mount /dev/sdb1 /mnt

sudo grub-install --root-partition=/mnt /dev/sdb

/dev/sdb用你记下的内容进行替换,但是不要将数字(可能是 1)放在路径末尾。还请注意/mnt和之间的空格/dev/sdb

sudo umount /dev/sdb1

从 Linux 机箱中取出 USB 驱动器并将其插入计算机。打开它。当您看到提示时grub rescue,运行

ls

这应该会显示所有驱动器/分区。您必须找到您的 USB 驱动器。它可能是(hd1,msdos1)。运行ls (hd1,msdos1)/(不要忘记/)。如果输出是,boot/则这是正确的分区。如果您没有得到这个输出,请重复所有“msdoses”,直到得到它。记下正确的那个。我将使用 (hd1,msdos1) 作为示例。运行:

set prefix=(hd1,msdos1)/boot/grub

然后

insmod chainload

insmod ntfs

set root=(hdX,Y)

这里,用您的 Windows 分区(您应该已经知道它的名字)替换(hdX,Y)。

chainloader +1

boot

这应该会引导您进入 Windows。我的任务到此结束;您必须修复 Windows 的引导加载程序,但这不是本论坛的事。提示:查找易BCD

如果您由于某种原因无法修复 Windows 的引导加载程序,请插入您的 USB 驱动器并重复提示中的最后六个命令grub rescue来启动 Windows。

相关内容