1. 程式人生 > >CentOS7.5-1804系統核心升級

CentOS7.5-1804系統核心升級

一.背景

根據Linux官方網站(https://www.kernel.org)顯示,目前Linux的最新核心是4.19,但是Redhat最新版系統中核心版本還是3.10.*,明顯落後很多版本。有些軟體對系統核心版本就有要求,因此我們就需要把系統核心升級到指定版本(RPM下載地址:https://elrepo.org/linux/kernel ),本文升級到了最新的核心版本。在CentOS中,ELRope是使用較廣泛的源。

二.操作步驟

  1. 配置ELRepo倉庫。
[[email protected] ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[[email protected] ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm 獲取http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm 獲取http://elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm 準備中... ################################# [100%] 正在升級/安裝... 1:elrepo-release-7.0-3.el7.elrepo ################################# [100%]
  1. 列出可以安裝的Kernel及相關元件。
[[email protected] ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
已載入外掛:fastestmirror
Determining fastest mirrors
 * elrepo-kernel: mirrors.tuna.tsinghua.edu.cn
elrepo-kernel                                                                                                                                                         |
2.9 kB 00:00:00 elrepo-kernel/primary_db | 1.8 MB 00:00:02 可安裝的軟體包 kernel-lt.x86_64 4.4.162-1.el7.elrepo elrepo-kernel kernel-lt-devel.x86_64 4.4.162-1.el7.elrepo elrepo-kernel kernel-lt-doc.noarch 4.4.162-1.el7.elrepo elrepo-kernel kernel-lt-headers.x86_64 4.4.162-1.el7.elrepo elrepo-kernel kernel-lt-tools.x86_64 4.4.162-1.el7.elrepo elrepo-kernel kernel-lt-tools-libs.x86_64 4.4.162-1.el7.elrepo elrepo-kernel kernel-lt-tools-libs-devel.x86_64 4.4.162-1.el7.elrepo elrepo-kernel kernel-ml.x86_64 4.19.0-1.el7.elrepo elrepo-kernel kernel-ml-devel.x86_64 4.19.0-1.el7.elrepo elrepo-kernel kernel-ml-doc.noarch 4.19.0-1.el7.elrepo elrepo-kernel kernel-ml-headers.x86_64 4.19.0-1.el7.elrepo elrepo-kernel kernel-ml-tools.x86_64 4.19.0-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs.x86_64 4.19.0-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs-devel.x86_64 4.19.0-1.el7.elrepo elrepo-kernel perf.x86_64 4.19.0-1.el7.elrepo elrepo-kernel python-perf.x86_64 4.19.0-1.el7.elrepo elrepo-kernel
  1. 安裝最新版的核心。kernel-ml是Mainline版本(it=long-term),這個版本的核心會引入所有新功能,新的Mainline核心每2-3 個月釋出一次。
[[email protected] ~]# yum --enablerepo=elrepo-kernel install kernel-ml -y
已載入外掛:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.tuna.tsinghua.edu.cn
 * elrepo: mirrors.tuna.tsinghua.edu.cn
 * elrepo-kernel: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.163.com
 * updates: mirrors.tuna.tsinghua.edu.cn
base                                                                                                                                                                  | 3.6 kB  00:00:00     
elrepo                                                                                                                                                                | 2.9 kB  00:00:00     
extras                                                                                                                                                                | 3.4 kB  00:00:00     
updates                                                                                                                                                               | 3.4 kB  00:00:00     
(1/3): extras/7/x86_64/primary_db                                                                                                                                     | 204 kB  00:00:01     
(2/3): updates/7/x86_64/primary_db                                                                                                                                    | 6.0 MB  00:00:07     
(3/3): elrepo/primary_db                                                                                                                                              | 530 kB  00:00:07     
正在解決依賴關係
--> 正在檢查事務
---> 軟體包 kernel-ml.x86_64.0.4.19.0-1.el7.elrepo 將被 安裝
--> 解決依賴關係完成

依賴關係解決

=============================================================================================================================================================================================
 Package                                   架構                                   版本                                                   源                                             大小
=============================================================================================================================================================================================
正在安裝:
 kernel-ml                                 x86_64                                 4.19.0-1.el7.elrepo                                    elrepo-kernel                                  46 M

事務概要
=============================================================================================================================================================================================
安裝  1 軟體包

總下載量:46 M
安裝大小:205 M
Downloading packages:
kernel-ml-4.19.0-1.el7.elrepo.x86_64.rpm                                                                                                                          |  46 MB  00:01:54     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
警告:RPM 資料庫已被非 yum 程式修改。
  正在安裝    : kernel-ml-4.19.0-1.el7.elrepo.x86_64                           1/1 
  驗證中      : kernel-ml-4.19.0-1.el7.elrepo.x86_64                                                                                                                                     1/1 
已安裝:
  kernel-ml.x86_64 0:4.19.0-1.el7.elrepo                                                                                                                                                     
完畢!
[[email protected] ~]# reboot
  1. 重啟系統後,手動選擇新核心,如果出現如下內容,則說明升級成功。

VMWare
5. 登入系統,檢視相關係統資訊。

[[email protected] ~]# hostnamectl 
   Static hostname: gysl
         Icon name: computer-vm
           Chassis: vm
        Machine ID: ec3aaeb5faad4f0dbe7121416e9af1c8
           Boot ID: 66ff8175b82641328795dbf951c63d7a
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 4.19.0-1.el7.elrepo.x86_64
      Architecture: x86-64
[[email protected] ~]# uname -sr
Linux 4.19.0-1.el7.elrepo.x86_64
[[email protected] ~]# cat /etc/centos-release
CentOS Linux release 7.5.1804 (Core)
  1. 將新核心設定為預設引導核心並建立新核心的配置檔案。預設啟動的順序應該為1,升級以後核心是往前面插入,值為0(如果每次啟動時需要手動選擇哪個核心,該步驟可以省略)
[[email protected] ~]# grub2-set-default 0
[[email protected] ~]# grub2-mkconfig -o /etc/grub2.cfg 
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.19.0-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.19.0-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-862.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-862.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-ec3aaeb5faad4f0dbe7121416e9af1c8
Found initrd image: /boot/initramfs-0-rescue-ec3aaeb5faad4f0dbe7121416e9af1c8.img
done
  1. 安裝命令自動提示包。此步驟僅僅是為了使用更加方便而提及,並非必須步驟。安裝這個包之後,鍵入命令後能夠進一步提示,比如 鍵入systemctl後,按tab建即可進一步提示,該包安裝完成之後需要重啟。
[[email protected] ~]# yum install  -y bash-completion
[[email protected] ~]# reboot
[[email protected] ~]# systemctl re
reboot                 reload                 reload-or-try-restart  reset-failed
reenable               reload-or-restart      rescue                 restart
  1. 使用官方源進行核心更新。官方也提供核心更新,但是比較有侷限性,智慧升級到官方指定的最新版,可能達不到要求。
[[email protected] ~]# yum -y update kernel
  1. 刪除舊版本的核心。
[[email protected] ~]# rpm -qa|grep kernel
kernel-tools-3.10.0-862.el7.x86_64
kernel-ml-4.19.0-1.el7.elrepo.x86_64
kernel-tools-libs-3.10.0-862.el7.x86_64
kernel-3.10.0-862.el7.x86_64
kernel-3.10.0-862.14.4.el7.x86_64

使用rpm和yum remove命令均可刪除舊版本的核心或元件(以下命令刪除的是最新版本的核心,操作類似)。可以安裝新的元件之後再刪除舊版本的元件。

[[email protected] ~]# rpm -e kernel-ml-4.19.0-1.el7.elrepo.x86_64

三.總結

  1. 系統的核心升級是一個需要謹慎操作的過程,需要我們膽大心細。需要在測試環境內進行了嚴格的測試才能上線到生產環境。
  2. 在寫本文時,我已經在VMWare和Hyper-V平臺上均進行過相同步驟的操作,發現在Hyper-V平臺上升級完成之後無法正常啟動,找不到相關日誌記錄。我的系統資訊如下:
[[email protected] ~]# hostnamectl
   Static hostname: gysl
         Icon name: computer-vm
           Chassis: vm
        Machine ID: ca4cb61abf7748a7bae1dd5a94c4c9da
           Boot ID: ff1263b7386f49bd9f4681fd6b6bc964
    Virtualization: microsoft
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-862.el7.x86_64
      Architecture: x86-64

啟動介面如下:
Hyper-V
目前還未在kvm平臺上進行過測試,不知道具體情況。

如果有知道怎麼解決在Hyper-V虛擬化環境中核心升級後不能正常進入系統的辦法的小夥伴,敬請賜教,不勝感激。

四.參考資料

  1. http://elrepo.org/tiki/kernel-ml
  2. https://www.kernel.org