在第二块硬盘上安装 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 菜单已修复。
希望它对某些人有用。