1. 程式人生 > >centos7升級內核

centos7升級內核

gre test pre port lis rhgb 使用 swa cfg

由於業務需求,需要將線上服務器的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內核,這是個很好的途徑。

centos7升級內核