重启后GRUB在命令行中启动

重启后GRUB在命令行中启动

我在笔记本电脑上安装了 Linux Mint,并预装了 Windows 10。当我打开计算机时,大多数时候都会出现正常的 GRUB 菜单:

GRUB菜单

但是在启动 Linux 或 Windows 然后重新启动后,GRUB 以命令行模式启动,如以下屏幕截图所示:

GRUB 命令行

我可能可以输入一个命令来从该提示符启动,但我不知道。有效的方法是使用 Ctrl+Alt+Del 重新启动,然后重复按 F12,直到出现正常的 GRUB 菜单。使用这种技术,它总是加载菜单。不按 F12 重新启动始终会以命令行模式重新启动。

我认为 BIOS 启用了 EFI,并且我将 GRUB 引导加载程序安装在 /dev/sda 中。

为什么会发生这种情况?如何确保 GRUB 始终加载菜单?

编辑

正如评论中所建议的,我尝试清除grub-efi软件包并重新安装它。这并没有解决问题,但现在当它在命令提示符模式下启动时,GRUB 显示以下消息:

error: no such device: 6fxxxxx-xxxx-xxxx-xxxx-xxxxxee.
Entering rescue mode...
grub rescue>

在此输入图像描述

我检查了blkid命令,这是我的 linux 分区的标识符。也许这些额外的信息可以帮助弄清楚发生了什么?

答案1

引导过程无法找到根分区(磁盘的一部分,包含启动系统的信息),因此您必须自己指定其位置。

我想你应该看看这篇文章:如何救援非启动 grub-2-linux

简短的摘要:

grub rescue>命令行中输入

ls

...列出所有可用设备。
然后你必须遍历每个,输入类似的内容(取决于 ls 命令显示的内容):

ls (hd0,1)/
ls (hd0,2)/ 

...依此类推,直到您发现:

(hd0,1)/boot/grub   OR (hd0,1)/grub

...或者,如果是“UEFI”,它看起来像:

(hd0,1)/efi/boot/grub OR (hd0,1)/efi/grub

现在您必须相应地设置启动参数 - 只需键入以下内容(使用适合您情况的正确数字),然后在每行后按回车键:

set prefix=(hd0,1)/grub

...或(如果grub位于子目录中):

set prefix=(hd0,1)/boot/grub

然后继续

set root=(hd0,1)
insmod linux
insmod normal
normal

现在它应该启动:

boot



现在转到命令行(例如启动“终端”),然后执行:

sudo update-grub

...这应该会纠正丢失的信息,并且下次应该会启动。

如果不是 - 您必须再次执行这些步骤,可能需要再次修复或安装 grub:
请查看本文中的“启动修复”工具:https://help.ubuntu.com/community/Boot-Repair(我对此有过积极的经历,当时之前的步骤在重新启动后无法继续存在)

答案2

对于许多使用 Windows 10 双启动的 PC 来说,这是一件有趣的事情。最近发生在我和朋友身上。请注意,我不知道为什么,我只能推测这取决于某些 Windows 10 更新。正如有人所说,这确实是由于引导过程由于某种原因找不到根分区,因此 GRUB 要求您通过 CLI 告诉他根分区在哪里。

这就是我得到的

无论如何,感谢您提出这个问题,我发现它试图解决我的问题,我创建这个帐户只是为了回答这个问题。修复非常简单:

  • 进入 BIOS/UEFI
  • 检查引导分区:是否正常或太多?你都认识吗?删除那些不需要的。
  • 将启动顺序重置为默认值
  • 重新启动,您应该会看到通常的 GRUB 菜单

答案3

您可以通过 Super Grub2 磁盘启动您的 linux 系统,从以下位置下载 iso这里并创建一个可启动的USB

成功启动kali linux后,重新安装grub-efi如下:

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian --recheck --debug /dev/sda
update-grub

答案4

我遇到了同样的问题。我发现有时在 Windows 10 中启动时启动顺序会发生变化。我的笔记本电脑中有两个 SSD。一个安装了 ubuntu 和 grub,另一个安装了 windows。 Windows 10更新时启动顺序有时会改变,将Windows SSD放在第一位,导致系统始终启动到Windows。最近它随机改变了它,我开始看到系统启动进入 grub 提示符。一旦我更改了 BIOS 中的启动顺序,grub 菜单就会正常加载。

相关内容