删除Ubuntu分区后的GRUB救援问题!

在我删除了Ubuntu分区之后,我重新启动了电脑,但只出现了一个提示符:

grub rescue >

命令ls用于列出目录中的文件。
(hd0) (hd0,msdos5) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) (hd1) (hd1,msdos1)

我一个一个地检查它们:
ls (hd0,msdos5)/
ls (hd0,msdos1)/

但是我找不到合适的分区。

你的电脑上是否有另一个 Linux 安装? - Dalton
1不,只是Ubuntu 13.04,但是与Windows 7双系统。 - user302065
当我尝试通过USB或DVD重新启动时,它显示"加载操作系统错误"。 - user302065
不清楚你在问什么。请定义“正确的分区”。你是想恢复一个你意外删除的分区吗? - Elder Geek
我无法发布答案,所以我在这里写下我的答案:创建一个Ubuntu可启动的USB,然后从USB启动Ubuntu,打开Ubuntu终端并输入以下命令:sudo apt-get install syslinux回车,然后输入sudo dd if=/usr/lib/syslinux/mbr.bin of=/dev/sda。创建可启动的USB:http://www.ubuntu.com/download/desktop/create-a-usb-stick-on-windows,要从USB启动Ubuntu,在计算机启动时(在Windows启动之前)按下F11或F12。要打开Ubuntu终端,按下Ctrl - Alt + T。 - MagTun
4个回答

尝试以下内容...
grub rescue > ls
(hd0) (hd0,msdos5) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) (hd1) (hd1,msdos1)
grub rescue > ls (hd0,msdos1) # try to recognize which partition is this
grub rescue > ls (hd0,msdos2) # let's assume this is the linux partition
grub rescue > set root=(hd0,msdos2)
grub rescue > set prefix=(hd0,msdos2)/boot/grub # or wherever grub is installed
grub rescue > insmod normal # if this produced an error, reset root and prefix to something else ..
grub rescue > normal

运行以下命令来永久修复问题,确保成功启动后执行:
sudo update-grub
sudo grub-install /dev/sdX

请将/dev/sdX替换为您的启动驱动器。

12grub rescue > ls (hd0,msdos1) # 尝试识别这是哪个分区 -----> 我在每个由ls命令列出的三个分区中都得到错误:未知文件系统。请帮忙。谢谢。 - Rafed Nole
5ls命令应该像这样:“ls(hd0,msdos1)/boot” - Aakash
这对我也有效!但下次我重新启动机器时,我又不得不再次输入相同的命令。我该如何解决这个问题呢? - samsamara
@KillBill:insmod使用root和prefix变量将普通模块插入内核,这些变量负责配置引导操作。我能想到的解决方案是使用增强版的insmod,modprobe,并运行:modprobe normal从你的安装中。我并不真的期望这会起作用,只是告诉我你得到了什么输出。 - Amr Ayman
3谢谢回复。但是我通过使用Live USB登录并输入'update-grub'命令已经修复了它。 - samsamara
这个方法有效,我能够启动。但是每次启动时都会遇到这个问题,我不得不重复这个步骤。我该如何使这个解决方案变为永久性的? - ArcaneDominion
@Jim 请参考上面的评论。 - Amr Ayman
@AmrAyman 我在启动时运行了 update-grub 命令,但并非使用活动的 USB。然而这并没有解决问题。 - ArcaneDominion
@Jim 安装完毕后,请执行 'grub-install' 命令。 - Amr Ayman
非常好的指导,几分钟内就让我的系统重新运行起来了,谢谢! - Gondrup
@AmrAyman,我尝试了最后两个命令,但没有成功。每次都需要重复操作。你有什么想法吗? - Sigur
1是的。请看这里:https://help.ubuntu.com/community/Grub2/Installing#via_the_LiveCD_terminal。 - Amr Ayman
太棒了!它起作用了。一个有帮助的事情是,你可以输入ls (hd0,msdos1)/(斜杠后面的斜杠很重要),这样就能真正显示驱动器上的文件。 - mgiuca
5我尝试了对所有的 'ls (hd0,msdos1) /boot' 命令,但显示为 'unknown filesystem'。请问我该怎么办?请帮忙解决一下。 - Anusha Prasanth
在我尝试救援的机器上,我发现(hd0,msdos1)/grub/grub.cfg,相应地设置root=(hd0,msdos1)prefix=(hd0,msdos1)/grub,但是insmod normal只会给我一个“错误:文件未找到”。这是怎么回事? - Giszmo
在一个双系统的电脑上,按照描述的方式完美运行,我在移除一个空分区后使用了Ubuntu 14.04和Windows 7。非常感谢!附注:关于找到启动驱动器的方法,请参阅 https://askubuntu.com/a/542360/438017 - lmeurs

要删除GRUB,只需从另一台电脑上下载Windows 8或10。使用Rufus将iso刻录到USB中。从USB启动,点击“故障排除”,然后选择“命令提示符”,输入以下命令:
Bootrec /fixmbr  

Windows会正常启动,不需要Ubuntu的GRUB。你可以重新安装Ubuntu。

我运行了没有末尾点的命令:Bootrec /fixmbr - draw
我曾经遇到过同样的问题,在搜索和尝试了一整天后,我认为这是在这种情况下最好的解决方案。我的电脑是win 10(UEFI),它正常工作。我想从我的传统BIOS中删除grub rescue,并在那里安装一个新的Ubuntu。然而,我的笔记本电脑没有光驱。我之前创建了一个可启动的Ubuntu USB,对我来说完美运行。但现在,grub rescue拒绝承认它,并且对所有分区(包括插入的USB)显示未知文件系统。我相信使用可启动的Windows USB也会遇到同样的问题。那么,我该如何摆脱grub rescue呢? - Yasser Mohseni
1看起来你没有正确地从USB启动!在grub出现之前,请在BIOS设置中选择你的USB! - user413862
我可以合法地用这种方式安装Windows 7吗?我有Windows 7恢复分区,但我既无法也不感兴趣在那台电脑上安装Windows 8。 - reducing activity
2在2020年左右,认识到fixmbr命令将恢复MBR样式引导非常重要。如果之前是UEFI引导,现在会变回MBR。我没有看到很多正确的答案,所以如果你已经处于那个状态,你应该研究一下Windows的mbr2gpt程序,它是WinPE可启动的一部分。它非常麻烦,但可以将你的磁盘恢复为GPT/UEFI。它可能还有修复工具来恢复UEFI设置,假设你没有运行fixmbr命令。 - user694859
从USB启动 -> 选择“修复Windows”而不是“安装Windows”,然后选择“故障排除”。 - mon


3我试过了。它声称修复了,但只是不断地把我带回到grub终端。 - astromax
我尝试了引导修复,但仍然出现黑屏。在我的情况下,问题是引导修复尝试修复我的笔记本上的SD卡(根据日志)。所以我从电脑上取下了这张卡,并重新运行了引导修复,然后引导被修复了。 - hakatashi

我做了同样的事情。删除了Ubuntu分区。我能进入BIOS。
如果你有一个可启动的Ubuntu USB,进入BIOS并选择USB作为启动顺序中的第一项。重新启动。然后再次安装Ubuntu。这次你可以安全地删除它。