1. 程式人生 > >linux(centos)核心升級

linux(centos)核心升級

1、背景描述

有一個業務需要使用overlay檔案系統,經查overlayfs需要linux核心3.14以上,我使用的兩臺測試機是2.x和3.10,均不支援overlayfs,在overlay掛載時均報錯:

mount: unknown filesystem type 'overlay'

遂需要對linux核心做升級。

2、檢視那系統核心版本

# uname -r
3.10.0-514.el7.x86_64
# cat /etc/redhat-release 
CentOS Linux release 7.3.1611 (Core)

3、升級核心

Centos 6和Centos 7的升級方法類似,只不過就是選擇的YUM源或者rpm包不同罷了,下面主要是Centos 7的安裝方法,中間也會有對於Centos 6 升級的方法提示。

Centos 6 YUM源:http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
Centos 7 YUM源:http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

升級核心需要先匯入elrepo的key,然後安裝elrepo的yum源:

# rpm -import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

倉庫啟用後,你可以使用下面的命令列出可用的核心相關包,如下:

[[email protected] test]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
Loaded plugins: langpacks
Available Packages
kernel-lt.x86_64                        4.4.163-1.el7.elrepo       elrepo-kernel
kernel-lt-devel.x86_64                  4.4.163-1.el7.elrepo       elrepo-kernel
kernel-lt-doc.noarch                    4.4.163-1.el7.elrepo       elrepo-kernel
kernel-lt-headers.x86_64                4.4.163-1.el7.elrepo       elrepo-kernel
kernel-lt-tools.x86_64                  4.4.163-1.el7.elrepo       elrepo-kernel
kernel-lt-tools-libs.x86_64             4.4.163-1.el7.elrepo       elrepo-kernel
kernel-lt-tools-libs-devel.x86_64       4.4.163-1.el7.elrepo       elrepo-kernel
kernel-ml-devel.x86_64                  4.19.2-1.el7.elrepo        elrepo-kernel
kernel-ml-doc.noarch                    4.19.2-1.el7.elrepo        elrepo-kernel
kernel-ml-headers.x86_64                4.19.2-1.el7.elrepo        elrepo-kernel
kernel-ml-tools.x86_64                  4.19.2-1.el7.elrepo        elrepo-kernel
kernel-ml-tools-libs.x86_64             4.19.2-1.el7.elrepo        elrepo-kernel
kernel-ml-tools-libs-devel.x86_64       4.19.2-1.el7.elrepo        elrepo-kernel
perf.x86_64                             4.19.2-1.el7.elrepo        elrepo-kernel
python-perf.x86_64                      4.19.2-1.el7.elrepo        elrepo-kernel

其中長期維護版本lt為4.4.163,最新主線穩定版ml為4.19

使用如下命令,安裝需要的版本:

# yum -y --enablerepo=elrepo-kernel install kernel-ml.x86_64 kernel-ml-devel.x86_64 

4、修改grub中預設的核心版本

核心升級完畢後,目前核心還是預設的版本,如果此時直接執行reboot命令,重啟後使用的核心版本還是預設的3.10,不會使用新的4.12.4,首先,我們可以通過命令檢視預設啟動順序:

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

由上面可以看出新核心(4.12.4)目前位置在0,原來的核心(3.10.0)目前位置在1,所以如果想生效最新的核心,還需要修改核心的啟動順序為0:

# vim /etc/default/grub

linux設定

Centos 6 更改的檔案相同,使用命令確定新核心位置後,然後將引數default更改為0即可。

接著執行grub2-mkconfig命令來重新建立核心配置,如下:

# grub2-mkconfig -o /boot/grub2/grub.cfg

5、重啟系統並檢視系統核心

# reboot

系統啟動完畢後,可以通過命令檢視系統的核心版本,如下:

# uname -r
4.12.4-1.el7.elrepo.x86_64

已成功更新至4.12.4