我在笔记本电脑上安装了 Linux Mint,并预装了 Windows 10。当我打开计算机时,大多数时候都会出现正常的 GRUB 菜单:
但是在启动 Linux 或 Windows 然后重新启动后,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
答案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 菜单就会正常加载。