已安装较新的内核,但无法通过 grub 加载

已安装较新的内核,但无法通过 grub 加载

我已经安装了 fedora 24 并更新了内核。

$rpm -qa kernel

kernel-4.6.4-301.fc24.x86_64
kernel-4.5.5-300.fc24.x86_64

这样kernel-4.6.4-301.fc24.x86_64就安装好了。

$uname -r
4.5.5-300.fc24.x86_64

当前加载的内核。

$ cd /boot
$ ll
total 90117
...
-rwxr-xr-x. 1 root root  6277656 Jul 29 07:09 vmlinuz-0-rescue-60cb3109c1ea41d6806444bff16cc074
-rwxr-xr-x. 1 root root  6277656 May 19 16:21 vmlinuz-4.5.5-300.fc24.x86_64

但没有4.6.4内核的文件。

如何手动将更新的内核添加到 grub 中?

答案1

如果您使用的是 Redhat/ Centos,请编辑 grub.conf 文件

复制并编辑旧的内核参数,并用新的参数和位置替换旧的参数和位置

答案2

现在是你该做的时候了

对于BIOS

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak # Creating a backup of current
grub2-mkconfig -o /boot/grub2/grub.cfg

对于 UEFI

在 EFI 下,GRUB 2 在以下位置查找其配置/boot/efi/EFI/fedora/grub.cfg

cp /boot/efi/EFI/fedora/grub.cfg /boot/efi/EFI/fedora/grub.cfg.bak
grub2-mkconfig /boot/efi/EFI/fedora/grub.cfg

笔记

如果你得到

grub2-mkconfig : command not found

这意味着,您还没有安装提供这些工具的软件包(虽然很少见!),那么您需要先安装它们

dnf install grub2-efi grub2-efi-modules shim

答案3

我在使用默认分区布局全新安装 F24 时遇到了同样的问题。在我的系统上,/dev/sda1 是专门为通常不安装的 grub 创建的。为了找到它,我做了:

sudo fdisk /dev/sda

并在 fdisk p 中显示分区。接下来安装该分区:

sudo mount /dev/sda1 /mnt

查找文件:

find /mnt -name grub.cfg

最后更新了 grub.cfg 文件:

sudo grub2-mkconfig -o /mnt/EFI/fedora/grub.cfg

每次更新内核时都必须重复此过程。

还有人有比这更好的解决办法吗?它有效,但我不明白为什么它不自动完成。我是否错过了某个地方的设置?

相关内容