CentOS8卸载旧版本内核 并 更新启动时内核选项grub2

CentOS卸载旧版本内核并更新启动时内核选项grub2

一.网上来的

查看正在使用的内核
uname -a
查看系统中的全部内核
rpm -qa | grep kernel
卸载多余内核
yum remove kernel-x.xx.x

二.按上在的做是不会把内核清理干净的

其实centos关于内核和启动项grub efi等全在/boot目录下如图:
CentOS8卸载旧版本内核 并 更新启动时内核选项grub2

第一次的操作只是删除了内核

1.我们要手动删除/boot目录下对应内核版本的

config :这个是内核的配置
initramfs :这个就是初始文件系统,内核在启动时会先加载这个,执行其中的init 再加载根文件系统,我不太清楚这个
vmlinuz :这个就是内核的二进制文件
syste.map :这个是内核相关函数的地址

Centos8的启动设置文件是在/boot/efi/EFI/centos下的,其中就有grub.cfg
CentOS8卸载旧版本内核 并 更新启动时内核选项grub2

因为centos8用的是EFI启动方式

而/boot/grub2下只的一个grubenv的文件,它是去/boot/efi/EFI/centos下grubenv的链接,如图:
CentOS8卸载旧版本内核 并 更新启动时内核选项grub2

2.把上面的删除后centos8启动时的旧内核选项还是存在:

我们还要把/boot/loader/entries下对应的内核版本xxx.conf删除
CentOS8卸载旧版本内核 并 更新启动时内核选项grub2

为什么是这个你可以看下 /boot/efi/EFI/centos/grubenv这个文档其中的 saved_entry项就是loader/entries下的文件名字一样,
这个就是默认的启动项;
CentOS8卸载旧版本内核 并 更新启动时内核选项grub2

3.接着用grub2-mkconfig更/boot/efi/EFI/centos/grub.cfg就行了

这个命令是生成grub2配置文件的如图:
CentOS8卸载旧版本内核 并 更新启动时内核选项grub2

grub2-mkconfig -o grub.cfg