在过去的几周里,我以为我的 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
在我的根分区上创建一个目录,导致新内核安装在那里而不是启动分区。以下是我修复该问题所采取的步骤:
- 编辑
/etc/fstab
以安装/dev/nvme1n1p2
为/boot
- 通过运行重新挂载所有 fstab 条目
sudo mount -a
- 通过运行重新安装内核
sudo dnf reinstall kernel-core
,因为这会将条目添加到 Grub - 通过运行添加回 Windows 启动项
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
(上一个命令似乎将其删除) - 重新启动并选择新内核