CentOS7 升级内核及注意事项
一、软件环境:
操作系统:CentOS 7.2
内核版本:3.10.0-327
其他:VirtualBox 5.1.28
二、内核升级:
#导入ELRepo软件仓库的公共秘钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
#安装ELRepo软件仓库的yum源
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
#安装主线内核(ml=mainline)4.14.11
yum --enablerepo=elrepo-kernel install kernel-ml
#升级OK
三、注意事项:
1、我用于测试的CentOS是7.2版本,默认最小化安装,系统内核是3.10.0-327。
2、升级到4.4.x以后,如果随意使用yum update -y命令进行软件升级,会继续安装CentOS7.4中的3.10.0-693内核软件包,并且会作为第一个启动项。
3、每次yum update -y后,需要使用grub2-set-default 0命令,修改默认的内核启动项,0位第一项,1为第二项,依次类推,查看GRUB启动菜单和设置默认启动菜单具体参考:
方法一:(创建、查看、编辑、用命令设置)
#根据/boot/目录内的文件
#自动创建GRUB内核配置开机选单
grub2-mkconfig -o /boot/grub2/grub.cfg
#说明:/boot/grub2/grub.cfg文件不可手工编辑
#查看可选的GRUB内核配置开机选单
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
#说明:/etc/grub2.cfg文件是一个文件链接,
#实际链接到/boot/grub2/grub.cfg
#/etc/default/grub文件是可以编辑,
#保存了GRUB通用的变量设置
#查看编辑/etc/default/grub文件,
#确保GRUB_DEFAULT=saved
vi /etc/default/grub
#假设我们需要运行的内核版本为第0项
#执行grub2-set-default0设置内核配置开机选单为第0项(第一个)
#执行grub2-editenv list确认设置成功(saved_entry=0)
grub2-set-default 0
grub2-editenv list
方法二:(创建、查看、编辑默认启动项)
#根据/boot/目录内的文件
#自动创建GRUB内核配置开机选单
grub2-mkconfig -o /boot/grub2/grub.cfg
#说明:/boot/grub2/grub.cfg文件不可手工编辑
#查看可选的GRUB内核配置开机选单
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
#说明:/etc/grub2.cfg文件是一个文件链接,
#实际链接到/boot/grub2/grub.cfg
#/etc/default/grub文件是可以编辑,
#保存了GRUB通用的变量设置
#假设我们需要运行的内核版本为第0项
#查看编辑/etc/default/grub文件,
#确保GRUB_DEFAULT=0
vi /etc/default/grub
#OK
4、本实验未用于生产环境。
四、运行附图:
01-导入秘钥-安装ELRepo源-安装内核.jpg
02-导入秘钥-安装ELRepo源-安装内核.jpg
03-配置GRUB内核启动项-查看启动项-设置默认启动项.jpg
04-重启机器-默认设置为新版本的内核.jpg
05-重启机器-查看新版本的内核.jpg
06-如果执行yum update kernel命令,会更新内核到CentOS7.4的内核3.10.0-693.jpg
07-如果执行yum update kernel命令,会更新内核到CentOS7.4的内核3.10.0-693.jpg
08-如果执行yum update kernel命令,会更新内核到CentOS7.4的内核3.10.0-693.jpg
09-安装完4.4.11内核后,再次执行yum update命令,会安装3.10的内核,且系统会自动切换到3.10内核上,需要重新手工指定4.14.11版内核启动项.jpg
10-安装完4.4.11内核后,再次执行yum update命令,会安装3.10的内核,且系统会自动切换到3.10内核上,需要重新手工指定4.14.11版内核启动项.jpg
五、参考链接:
如何在 CentOS 7 中安装或升级最新的内核