启动修复 -> 没有这个分区

我电脑出了个大问题...
我缩小了Windows分区,重新启动后出现了grub rescue,并显示错误信息:“没有这个分区”。
此外,我无法访问BIOS,所以似乎无法更改引导顺序以从我的U盘或光盘启动。
命令行“ls”给出的结果是: (hd0) (hd0,1) (hd0,2) (hd0,3)
我有一个恢复Windows分区(我想是1),一个Windows分区和一个Linux分区。
然而,命令行“ls (hd0,1)”,“ls (hd0,2)”和“(hd0,3)”都显示错误信息:“未知文件系统”,因此我无法设置引导了。
你有什么主意吗?

1你有Windows 8吗? - enedil
3请看一下这个答案:这里 - Amr Ayman
http://askubuntu.com/questions/493826/grub-rescue-problem-after-deleting-ubuntu-partition/495993#495993 - Rafed Nole
http://askubuntu.com/questions/493826/grub-rescue-problem-after-deleting-ubuntu-partition/495993#495993 - Rafed Nole
http://askubuntu.com/questions/493774/grub-rescue-without-cd-error - Rafed Nole
请在上述问题中提供帮助。我无法找到分区,对Ubuntu感到厌烦。请帮忙看一下我上面的问题。谢谢。 - Rafed Nole
http://askubuntu.com/questions/493611/grub-rescue-windows-8-ubuntu-dual-boot - Rafed Nole
2为什么你无法访问你的BIOS?这与GRUB没有任何关系。 - Sudheer
@Sudheer,我不太懂,如果你能帮我解决这个问题,我将非常感激。谢谢! - Rafed Nole
1你能进入你的BIOS设置吗? - Sudheer
当我启动时,出现了GRUB救援提示符。 - Rafed Nole
翻译成中文。只返回翻译的文字,不包含关键词,仅支持ls命令的内容。 - Rafed Nole
2在启动画面之前,当您的计算机标志出现时,您应该看到类似于“按esc键进行设置”的提示。 - Sudheer
是的,按下esc键可以启动,但按下esc键却没有任何反应。 - Rafed Nole
1为了解决你的问题,你可能需要使用Ubuntu的Live USB/CD。 - Sudheer
@Sudheer 没有CD的话,我发现有一些方法。我没有任何CD。 - Rafed Nole
请您看一下我在上面评论的链接。它们描述了我尝试过的方法。 - Rafed Nole
1除了Esc键之外,它还有其他按键吗?比如F11。 - Sudheer
不,它只说了ESC键,也许是这样,但我会再试一次,当我到达我的电脑时按F11键。 - Rafed Nole
这个问题提供了我尝试的方法。请点击链接查看:http://askubuntu.com/questions/493826/grub-rescue-problem-after-deleting-ubuntu-partition?lq=1 - Rafed Nole
@Rafad Nole,你的问题链接在哪里? - Sudheer
2个回答

grub rescue>提示符表示GRUB 2未能找到grub文件夹、grub.cfg文件和/或相关模块。救援提示会呈现给用户以便其提供grub文件夹的路径,加载必要的模块并提供适当的引导命令。

出现grub rescue>提示的常见原因是grub文件夹路径不正确。提示的原因还包括在某些系统或分区操作后未能更新GRUB 2、不正确地指定grub文件夹位置、在/中缺少linux或initrd.img符号链接,或安装失败。

要成功从grub rescue>提示中启动:

  1. 必须存在 grub 文件夹,并包含必要的 GRUB 2 文件和模块。
  2. 必须通过 set prefix 命令设置正确的路径。在设置正确路径之前,许多 GRUB 2 命令将无法正常工作。如果 grub 文件夹的路径(通常为 /boot/grub)不正确,则可能会出现“未知命令”或“文件未找到”的错误信息。
  3. 必须加载所需的模块。在加载 'linux' 模块之前,无法加载内核。
  4. 必须找到并加载 Linux 内核和 initrd.img。

在您的情况下,grub 文件夹和 grub.cfg 似乎可用但无法访问,因为您的操作系统分区无法挂载,原因是相应的模块未加载或在调整大小过程中损坏。为了加载该模块,您的 grub 应该完全加载或者设置正确的前缀。

为此,请执行以下操作:

  1. set prefix=(hdX,Y)/boot/grub
    使用之前确定的数值。 例如:如果Ubuntu系统在sda5上,输入:
    set prefix=(hd0,5)/boot/grub
    在您的情况下,很可能是 (hd0,3)
  2. set root=(hdX,Y)
    确认正确的X、Y数值,然后按回车键。 例如:如果Ubuntu系统在sda5上,输入:set root=(hd0,5)
  3. insmod normal:加载normal模块。
    如果模块成功加载,将不会显示任何消息。 如果模块加载失败,请尝试完整路径:insmod (hdX,Y)/boot/grub/normal.mod
  4. normal:切换到正常的GRUB 2模式,增加功能。 如果模块成功加载,将不会显示任何消息。 如果模块加载成功,应该可以使用HELP、Tab键补全和使用上/下箭头键进行命令回溯。
  5. set (可选)查看当前设置。
  6. insmod linux:加载linux模块。通常出现错误消息意味着路径不正确。
  7. configfile /boot/grub/grub.cfg。这将加载您的配置文件,允许引导所有操作系统。

1请使用之前确定的数值,在步骤1中,但是你能告诉我那个命令是什么吗? - dev_ry
1每次开机我都得这么做。有什么办法可以永久解决这个问题吗? - Md Narimani

其他地方所述,正确的命令是ls (hd0,1)/。请尝试查看是否能列出文件系统的内容。 手动加载grub中的系统 如果(hd0,3)/中不存在vmlinuz和initrd.img文件,则必须指定它们的确切位置以启动Linux。因此,在grub中(请根据您的设置调整vmlinuz和内核版本)>
set root=(hd0,3)
linux (hd0,3)/vmlinuz root=/dev/sda3 ro

或者如果(hd0,3)/vmlinuz不存在:
linux (hd0,3)/boot/vmlinuz-2.6.32.25-generic root=/dev/sda3 ro

那么

initrd (hd0,3)/boot/initrd.img 

或者如果(hd0,3)/initrd.img不存在:

initrd (hd0,3)/boot/initrd.img-2.6.33-25-generic 
boot

可在此处找到更多信息。

1在你手动启动后,运行Boot Repair来修复你的Grub - 这里只是众多关于如何进行此操作的来源之一:http://www.howtogeek.com/114884/how-to-repair-grub2-when-ubuntu-wont-boot/ - Elder Geek
我得到的是:未知命令“linux”。使用ls命令,我确实看到vmlinuz和initrd位于(hd0,msdos5)上。 - Bram
@Bram,请在这个问题上开一个新的提问,可能是一个不同的问题,或者在这里搜索其他更合适的问题。 - noleti
在我的HP 15-ac026tx上,Ubuntu 18.04的情况下,vmlinuz和initrd.img都存在于根目录中,但是它显示为"(hd0,8)/"而不是(hd0,1)/,它显示为"(hd0,msdosY),其中Y是123..89等数字,但我不需要输入完整的(hd0,mados8)/,只需(hd0,8)/同样有效。 - Harshiv

  • 相关问题