linux(centos)核心升級
阿新 • • 發佈:2018-12-05
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
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