我遇到一个问题,重新启动后,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 分区后,ubuntu
EFI 分区(文件夹中)中留下了一个较旧的文件夹EFI
- 即使我从 EFI 启动列表中删除了它的条目 - 并且UEFI 正在引导旧条目,而不是具有正确 Linux 分区 UUID 的新条目。
首先要知道的是,GRUB 命令提示符并没有那么可怕。如果您熟悉 Linux shell,GRUB 不是问题 - 您基本上想要使用该configfile
命令加载驱动器上某处存在的 GRUB 配置文件,并且可以使用该ls
命令找到它。与 Linux shell 的主要区别在于,有一种特殊的语法来访问驱动器和分区:
- 仅用于
ls
列出驱动器。 - 选择正确的驱动器,可能是第一个,它应该命名为
hd0
,并使用 列出其分区ls (hd0)
。 - 选择正确的分区 - 在我的例子中是第 6 个 GPT 分区 - 并将其列出,例如:
ls (hd0,gpt6)
。 - 这应该显示分区的内容,并且您可以使用(例如)列出其中的文件夹
ls (hd0,gpt6)'/boot'
- 找到
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 安装,这可能会重置这些更改。