为什么新的内核版本没有出现在 Grub 中?

为什么新的内核版本没有出现在 Grub 中?

在过去的几周里,我以为我的 Fedora 38 安装没有获得内核更新(我正在运行6.2.15-300.fc38.x86_64),但今天我看到它似乎成功安装了内核更新(6.3.5),然后重新启动发现它仍然没有。 t 在 Grub 中列出该版本的内核。根据 的内容/boot,看起来这种情况已经发生了一段时间 - 我还安装了内核 6.3.4。有趣的是,我看不到内核 6.2.15 的文件。

我尝试sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg手动运行,但遇到以下错误:

/usr/bin/grub2-editenv: error: cannot open `/boot/grub2/grubenv.new': No such file or directory.
Generating grub configuration file ...
/usr/bin/grub2-editenv: error: cannot open `/boot/grub2/grubenv.new': No such file or directory.

我的系统中似乎/boot/grub2不存在该目录。

显然,Grub 的配置部分缺失是令人担忧的,但它引出了一个问题:在 Grub 没有配置的情况下,我如何能够连续几周正常启动和使用我的系统?

但更重要的是,如何解决这个问题,以便我可以在 Grub 中列出最新的内核版本?

答案1

我发现问题了!事实证明,我的系统没有正确安装启动分区 - 中没有它的条目/etc/fstab。因此,在我的笔记本电脑启动后,它将/boot在我的根分区上创建一个目录,导致新内核安装在那里而不是启动分区。以下是我修复该问题所采取的步骤:

  1. 编辑/etc/fstab以安装/dev/nvme1n1p2/boot
  2. 通过运行重新挂载所有 fstab 条目sudo mount -a
  3. 通过运行重新安装内核sudo dnf reinstall kernel-core,因为这会将条目添加到 Grub
  4. 通过运行添加回 Windows 启动项sudo grub2-mkconfig -o /boot/grub2/grub.cfg(上一个命令似乎将其删除)
  5. 重新启动并选择新内核

相关内容