update-grub 命令无效

update-grub 命令无效

在第二块硬盘上安装 Kubuntu 之后,它改变了我主硬盘 GRUB 的启动顺序,并且我无法将其改回来。

对 grub 配置文件 ( /etc/default/grub) 所做的任何更改update-grub均无效。

正确地更改update-grub了文件/boot/grub/grub.cfg,但并没有修改/boot/efi/目录中的任何文件,而这应该发生,因为我的 GRUB 的挂载点是boot/efi

我认为这是由于write权限问题,但经检查,这些文件root具有权限。write

命令的输出sudo update-grub

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.15.0-33-generic
Found initrd image: /boot/initrd.img-4.15.0-33-generic
Found linux image: /boot/vmlinuz-4.15.0-32-generic
Found initrd image: /boot/initrd.img-4.15.0-32-generic
Found Ubuntu 18.04.1 LTS (18.04) on /dev/sdb2
Adding boot menu entry for EFI firmware configuration
done

文件内容/etc/default/grub

GRUB_SAVEDEFAULT=true
GRUB_DEFAULT=saved
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

编辑,重要:

GRUB 似乎只在启动时通过读取配置文件来受配置影响。所以,如果我理解正确的话,我的配置是在 Kubuntu 分区上加载的。但我该如何改变这种行为呢?这问题已经提出但没有正确回答。

答案1

我通过执行grub-install命令解决了这个问题,解释:

正如之前所说,GRUB 仅在启动时通过读取配置文件来受配置的影响。GRUB 二进制文件存储此配置文件的路径。为了设置所需配置文件的正确路径,需要更新这些二进制文件。

我通过执行命令轻松完成了此sudo grub-install操作从存储所需配置的操作系统(该命令不需要任何附加参数)。

现在, 的任何变化都会影响 GRUB /boot/grub/grub.cfg

答案2

我遇到了类似的问题。我有三重启动:Windows 10、Linux Mint 和 Ubuntu。在我将 Linux Mint 从 20.3 更新到 21 后,它就坏了。我一直在 Mint 中运行 update-grub,它确实显示检测到 Mint 21(内核 5.15.0-52)并表示已更新。但启动仍为 Mint 20 并且无法加载(因为旧内核已被删除)。(我可以在 grub 菜单中用“e”暂时更新它。)

事实证明,有效的 grub 是使用 ubuntu 设置的,而 ubuntu 是在 mint 之前安装的。我登录 ubuntu 并运行“update-grub”。grub 菜单已修复。

希望它对某些人有用。

相关内容