由于业务需求,需要将线上服务器的Centos7系统的内核升级为4.4.14lt版本,除此之外考虑到内核漏洞问题,学习了如何更新linux内核
官方给出的使用yum 更新,但是这只会升级内核到仓库中可以使用的最新版本,并不是将内核升级到内核发布的最新的版本,内核发布页:https://www.kernel.org/
由于Red Hat只允许使用yum升级内核,这很糟糕
但是CentOs可以通过第三方来升级内核
参考升级内核第三方文档:http://elrepo.org/tiki/tiki-index.php

首先导入第三方的公共key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
安装就近的镜像
rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/elrepo/kernel/el7/x86_64/RPMS/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
查看目前可以使用的longterm 版本(生产环境中一定要使用这种版本)
[root@test ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * elrepo-kernel: mirrors.tuna.tsinghua.edu.cn
Available Packages
kernel-lt-devel.x86_64                                            4.4.140-1.el7.elrepo                                 elrepo-kernel
kernel-lt-doc.noarch                                              4.4.140-1.el7.elrepo                                 elrepo-kernel
kernel-lt-headers.x86_64                                          4.4.140-1.el7.elrepo                                 elrepo-kernel
kernel-lt-tools.x86_64                                            4.4.140-1.el7.elrepo                                 elrepo-kernel
kernel-lt-tools-libs.x86_64                                       4.4.140-1.el7.elrepo                                 elrepo-kernel
kernel-lt-tools-libs-devel.x86_64                                 4.4.140-1.el7.elrepo                                 elrepo-kernel
kernel-ml.x86_64                                                  4.17.6-1.el7.elrepo                                  elrepo-kernel
kernel-ml-devel.x86_64                                            4.17.6-1.el7.elrepo                                  elrepo-kernel
kernel-ml-doc.noarch                                              4.17.6-1.el7.elrepo                                  elrepo-kernel
kernel-ml-headers.x86_64                                          4.17.6-1.el7.elrepo                                  elrepo-kernel
kernel-ml-tools.x86_64                                            4.17.6-1.el7.elrepo                                  elrepo-kernel
kernel-ml-tools-libs.x86_64                                       4.17.6-1.el7.elrepo                                  elrepo-kernel
kernel-ml-tools-libs-devel.x86_64                                 4.17.6-1.el7.elrepo                                  elrepo-kernel
perf.x86_64                                                       4.17.6-1.el7.elrepo                                  elrepo-kernel
python-perf.x86_64                                                4.17.6-1.el7.elrepo                                  elrepo-kernel
我们使用4.4.140版本的
yum --enablerepo=elrepo-kernel install kernel-lt
同时修改默认加载内核的启动顺序,修改成如下:
[root@test ~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap net.ifnames=0 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
执行重建内核配置
grub2-mkconfig -o /boot/grub2/grub.cfg
重启系统
我们再检查是否更新
uname -a
删除原来的内核及内核工具
[root@test ~]#  rpm -qa | grep kernel*
kernel-lt-4.4.140-1.el7.elrepo.x86_64
kernel-3.10.0-862.3.2.el7.x86_64
kernel-headers-3.10.0-862.3.3.el7.x86_64
kernel-tools-libs-3.10.0-862.3.2.el7.x86_64
kernel-tools-3.10.0-862.3.2.el7.x86_64

yum remove kernel-3.10.0-862.3.2.el7.x86_64 kernel-headers-3.10.0-862.3.3.el7.x86_64  kernel-tools-libs-3.10.0-862.3.2.el7.x86_64  kernel-tools-3.10.0-862.3.2.el7.x86_64
安装最新的内核工具
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-headers kernel-ml-tools.x86_64

至此更新完毕

还有一种更新内核的方法:编译安装内核,这种方法费事费力,如果没必要,不要采用此种方法,很有可能导致系统不能使用。除非是你需要研究linux内核,这是个很好的途径。