CentOS7 內核升級


背景:修復服務器內核漏洞

當安裝了一個發行版,它包含了一個特定版本的內核,如下這台服務器內核則為:Linux 3.10.0-1160.el7.x86_64

# uname -sr
Linux 3.10.0-1160.el7.x86_64

內核升級操作步驟如下:

安裝elrepo

載入公鑰,安裝eprepo源(網址:http://elrepo.org/)

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

# rpm -Uvh https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

載入elrepo-kernel元數據

# yum --disablerepo="*" --enablerepo="elrepo-kernel" repolist

安裝穩定版本內核

  • 查看可用的內核版本

kernel-ltkernel-ml 二者的區別:

  • kernel-ml軟件包是根據Linux Kernel Archives的主線穩定分支提供的源構建的。 內核配置基於默認的RHEL-7配置,並根據需要啟用了添加的功能。 這些軟件包有意命名為kernel-ml,以免與RHEL-7內核發生沖突,因此,它們可以與常規內核一起安裝和更新。

  • kernel-lt包是從Linux Kernel Archives提供的源代碼構建的,就像kernel-ml軟件包一樣。 不同之處在於kernel-lt基於長期支持分支,而kernel-ml基於主線穩定分支。

ELRepo中有兩個內核選項,一個是 kernel-lt(長期支持版),一個是 kernel-ml(主線最新版本),采用長期支持版本(kernel-lt),更加穩定一些。

# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * elrepo-kernel: mirror-hk.koddos.net
Available Packages
kernel-lt.x86_64                                                   5.4.123-1.el7.elrepo                                  elrepo-kernel
kernel-lt-devel.x86_64                                             5.4.123-1.el7.elrepo                                  elrepo-kernel
kernel-lt-doc.noarch                                               5.4.123-1.el7.elrepo                                  elrepo-kernel
kernel-lt-headers.x86_64                                           5.4.123-1.el7.elrepo                                  elrepo-kernel
kernel-lt-tools.x86_64                                             5.4.123-1.el7.elrepo                                  elrepo-kernel
kernel-lt-tools-libs.x86_64                                        5.4.123-1.el7.elrepo                                  elrepo-kernel
kernel-lt-tools-libs-devel.x86_64                                  5.4.123-1.el7.elrepo                                  elrepo-kernel
kernel-ml.x86_64                                                   5.12.8-1.el7.elrepo                                   elrepo-kernel
kernel-ml-devel.x86_64                                             5.12.8-1.el7.elrepo                                   elrepo-kernel
kernel-ml-doc.noarch                                               5.12.8-1.el7.elrepo                                   elrepo-kernel
kernel-ml-headers.x86_64                                           5.12.8-1.el7.elrepo                                   elrepo-kernel
kernel-ml-tools.x86_64                                             5.12.8-1.el7.elrepo                                   elrepo-kernel
kernel-ml-tools-libs.x86_64                                        5.12.8-1.el7.elrepo                                   elrepo-kernel
kernel-ml-tools-libs-devel.x86_64                                  5.12.8-1.el7.elrepo                                   elrepo-kernel
perf.x86_64                                                        5.12.8-1.el7.elrepo                                   elrepo-kernel
python-perf.x86_64                                                 5.12.8-1.el7.elrepo                                   elrepo-kernel
  • 安裝長期支持版
# yum --enablerepo="elrepo-kernel" install kernel-lt

檢查系統上可用的內核

# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (5.4.123-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-577567423019484e9466d9570b6fbb17) 7 (Core)

設置開機從新內核啟動

  • 方法1:
# grub2-set-default 0
  • 方法2:
編輯配置文件 vim /etc/default/grub
將GRUB_DEFAULT=saved改為GRUB_0=saved,保存退出vim。

創建內核配置

運行grub2-mkconfig命令來重新創建內核配置

# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.4.123-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-5.4.123-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-1160.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1160.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-577567423019484e9466d9570b6fbb17
Found initrd image: /boot/initramfs-0-rescue-577567423019484e9466d9570b6fbb17.img
done

重啟並驗證

  • 重啟
# reboot
  • 驗證
# uname -sr
Linux 5.4.123-1.el7.elrepo.x86_64


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM