我的机器总是重新启动到 GRUB 提示符而不是 GRUB 菜单

我的机器总是重新启动到 GRUB 提示符而不是 GRUB 菜单

我遇到一个问题,重新启动后,grub CLI 总是出现,而不是 grub 菜单。对我来说,问题不是无法启动到任何内核(很简单:输入 exit 并输入两次即可完成任务,grub 菜单会重新出现)。我想要的是启动到 grub 菜单而不是 CLI。有没有什么办法解决这一问题?

我正在使用带有 GRUB2 的 Ubuntu 18.04。

答案1

我遇到了同样的问题,除了它根本无法启动。原因:我的新鲜的Ubuntu 18.04、17.10 和 Mate 18.04 的安装都将错误uuid/boot/efi/EFI/ubuntu/grub.cfg.

版本 1(grub-cmd):

ls从 grub shell 中,通过查看(例如)的输出找到根文件夹ls (hd0,gpt2)/,并确保知道您的系统安装在哪个分区上!对我来说,是sda2因为ESP推荐是第一个。

set root=(hd0,gpt2)
linux /boot/vmlinuz-number-generic root=/dev/sda2
initrd /boot/initrd.img-number-generic
boot

如果现在启动成功,您可以通过键入并验证 中记录的值是否正确来获取您uuid的(不是partuuid)。blkid/boot/efi/EFI/ubuntu/grub.cfg

为我:

search.fs_uuid <uuid> root hd0,gpt2
...

版本 2(安装棒):

如果您碰巧有一个可启动的 linux-stick,您也可以启动它,安装ESP并更改uuid那里:

# Create folder to mount ESP
mkdir /tmp/esp

# Mount ESP (assuming sda1) to esp
sudo mount /dev/sda1 /tmp/esp

# Get UUID's of devices
sudo blkid

# Ensure correct `uuid` is set in `/tmp/esp/efi/EFI/ubuntu/grub.cfg`

reboot

答案2

我遇到了启动到 grub 命令行提示符而不是启动加载程序菜单的问题。就我而言,我尝试启动 Linux,问题是在重新格式化 Linux 分区后,ubuntuEFI 分区(文件夹中)中留下了一个较旧的文件夹EFI- 即使我从 EFI 启动列表中删除了它的条目 - 并且UEFI 正在引导旧条目,而不是具有正确 Linux 分区 UUID 的新条目。

首先要知道的是,GRUB 命令提示符并没有那么可怕。如果您熟悉 Linux shell,GRUB 不是问题 - 您基本上想要使用该configfile命令加载驱动器上某处存在的 GRUB 配置文件,并且可以使用该ls命令找到它。与 Linux shell 的主要区别在于,有一种特殊的语法来访问驱动器和分区:

  1. 仅用于ls列出驱动器。
  2. 选择正确的驱动器,可能是第一个,它应该命名为hd0,并使用 列出其分区ls (hd0)
  3. 选择正确的分区 - 在我的例子中是第 6 个 GPT 分区 - 并将其列出,例如:ls (hd0,gpt6)
  4. 这应该显示分区的内容,并且您可以使用(例如)列出其中的文件夹ls (hd0,gpt6)'/boot'
  5. 找到grub.cfg文件后,加载它(例如),如下所示:configfile (hd0,gpt6)'/boot/grub/grub.cfg',这应该显示熟悉的启动菜单,您可以从那里运行操作系统。

就我而言,永久解决方案是EFI/ubuntu从 EFI 分区中删除旧目录并正确设置 UEFI 启动顺序。

答案3

你说你可以进入 Ubuntu 安装,所以更新/重新安装 grub 应该很简单,看看是否可以解决问题。

首先,尝试简单地使用sudo update-grub(如果尚未使用),然后重新启动以检查是否修复了该问题。

如果这不起作用,请尝试手动重新安装它sudo grub-install /dev/sd##(将 ## 替换为 grub 的当前位置)。这应该足以重置可能导致您的问题的任何文件。

注意:如果您最初自定义了 grub 安装,这可能会重置这些更改。

相关内容