CentOS 7. × 系統(tǒng)及內(nèi)核升級(jí)指南

centos

最近在學(xué)習(xí) Docker,想在服務(wù)器上實(shí)踐一下.Docker 需要安裝在 CentOS 7 64 位的平臺(tái),并且內(nèi)核版本不低于 3.10。 CentOS 7 滿足最低內(nèi)核的要求,但由于 CentOS 7 內(nèi)核版本比較低,部分功能(如 overlay2 存儲(chǔ)層驅(qū)動(dòng))無法使用,并且部分功能可能不太穩(wěn)定.需要升級(jí)到最新的 CentOS 版本,并且內(nèi)核也更新到最新的穩(wěn)定版本.這是我對(duì)升級(jí) CentOS 系統(tǒng)版本及內(nèi)核的記錄,方便以后查閱,也分享給大家.

注意:這篇文章只在 CentOS 7.× 系列版本上驗(yàn)證過,其他 CentOS 版本請(qǐng)謹(jǐn)慎使用.

我的服務(wù)器是騰訊云云主機(jī),系統(tǒng)為 CentOS 7.1,系統(tǒng)內(nèi)核版本為 3.10,我在寫這篇博客的時(shí)候最新的 CentOS 版本為 CentOS 7.3,而 The Linux Kernel Archives 上提供的最新穩(wěn)定的系統(tǒng)內(nèi)核為 4.12 版本.所以就把我的服務(wù)器系統(tǒng)升級(jí)為最新的 CentOS 7.3 版本,系統(tǒng)內(nèi)核升級(jí)為 4.12 版本.

備份重要數(shù)據(jù)

備份重要數(shù)據(jù)(例如:/etc ,/var ,/opt文件夾)如果 CentOS 是安裝在虛擬機(jī)上,那么可以使用快照進(jìn)行備份.像 VMware 虛擬機(jī)可以快照備份.也可以針對(duì)重要程序數(shù)據(jù)進(jìn)行備份,例如 MySQL、Appache、Nginx、DNS 等等.云主機(jī)的話,阿里云和騰訊云都可以創(chuàng)建快照備份數(shù)據(jù).

檢查當(dāng)前 CentOS 系統(tǒng)版本

# cat /etc/redhat-release

> CentOS Linux release 7.1.1503 (Core)

檢查當(dāng)前 CentOS 系統(tǒng)內(nèi)核版本

# uname -sr

> Linux 3.10.0-327.10.1.e17.x86_64

可以看出當(dāng)前系統(tǒng)為 CentOS 7.1,系統(tǒng)內(nèi)核版本為 3.10.

運(yùn)行 yum 命令升級(jí)

CentOS 中 update 命令可以一次性更新所有軟件到最新版本。

注意:不推薦使用 update-y選項(xiàng),-y 選項(xiàng)會(huì)讓你在安裝每項(xiàng)更新前都進(jìn)行確認(rèn),這樣會(huì)非常費(fèi)時(shí)間.對(duì)于 CentOS 5.× 和 6.× 的系統(tǒng)我們?cè)诟潞笮枰匦掳惭b應(yīng)用程序恢復(fù)數(shù)據(jù),慶幸的是 CentOS 7.× 不需要這么麻煩,可以直接升級(jí).

# yum clean all

# yum update

期間會(huì)有確認(rèn)提示,直接回車確認(rèn)即可.

重啟系統(tǒng)

# reboot

檢查當(dāng)前 CentOS 系統(tǒng)版本

# cat /etc/redhat-release

> CentOS Linux release 7.3.1611 (Core)

檢查當(dāng)前 CentOS 系統(tǒng)內(nèi)核版本

# uname -sr

> Linux 3.10.0-327.10.1.e17.x86_64

可以看到當(dāng)前系統(tǒng)為 CentOS 7.3 已經(jīng)升級(jí)成功了,但系統(tǒng)內(nèi)核版本依舊為 3.10 并沒有升級(jí),這是因?yàn)?CentOS 為了安全和穩(wěn)定并不會(huì)把系統(tǒng)內(nèi)核升級(jí)到最新的版本,所以 yum update 命令只會(huì)升級(jí)系統(tǒng)版本和更新軟件.接下來我們就來升級(jí)系統(tǒng)內(nèi)核.

升級(jí) CentOS 7.× 內(nèi)核,啟用 ELRepo

大多數(shù)現(xiàn)代發(fā)行版提供了一種使用 yum 等包管理系統(tǒng)和官方支持的倉(cāng)庫(kù)升級(jí)內(nèi)核的方法。

但是,這只會(huì)升級(jí)內(nèi)核到倉(cāng)庫(kù)中可用的最新版本,而不是在 The Linux Kernel Archives 中可用的最新主線穩(wěn)定內(nèi)核.不幸的是, Red Hat 只允許使用 yum 升級(jí)內(nèi)核.與 Red Hat 不同,CentOS 允許使用 ELRepo,這是一個(gè)第三方倉(cāng)庫(kù),可以將內(nèi)核升級(jí)到最新主線穩(wěn)定內(nèi)核.

要在 CentOS 7.× 上啟用 ELRepo 倉(cāng)庫(kù),請(qǐng)運(yùn)行:

# 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

倉(cāng)庫(kù)啟用后,你可以使用下面的命令列出可用的系統(tǒng)內(nèi)核相關(guān)包:

# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

接下來,安裝最新的主線穩(wěn)定內(nèi)核:

# yum --enablerepo=elrepo-kernel install kernel-ml

由于網(wǎng)絡(luò)原因,以上操作可能需要不少時(shí)間.

重啟機(jī)器,檢查當(dāng)前 CentOS 系統(tǒng)內(nèi)核版本

# uname -sr

> Linux 4.12.0-1.el7.elrepo.x86_64

可以看到系統(tǒng)內(nèi)核已經(jīng)升級(jí)到最新的主線穩(wěn)定內(nèi)核.

設(shè)置 GRUB 默認(rèn)的內(nèi)核版本

為了讓新安裝的內(nèi)核成為默認(rèn)啟動(dòng)選項(xiàng),你需要如下修改 GRUB 配置,打開并編輯 /etc/default/grub 并設(shè)置 GRUB_DEFAULT=0.意思是 GRUB 初始化頁(yè)面的第一個(gè)內(nèi)核將作為默認(rèn)內(nèi)核.

# vi /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 console=ttyS0 console=tty0 panic=5"
> GRUB_DISABLE_RECOVERY="true"
> GRUB_TERMINAL="serial console"
> GRUB_TERMINAL_OUTPUT="serial console"
> GRUB_SERIAL_COMMAND="serial --speed=9600 --unit=0 --word=8 --parity=no --stop=1"

接下來運(yùn)行下面的命令來重新創(chuàng)建內(nèi)核配置.

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

重啟機(jī)器,查看系統(tǒng)當(dāng)前內(nèi)核版本,驗(yàn)證最新的內(nèi)核已作為默認(rèn)內(nèi)核

# uname -a

> Linux VM_112_0_centos 4.12.0-1.el7.elrepo.x86_64 #1 SMP Sun Jul 2 20:38:48 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux

刪除 CentOS 更新后的舊內(nèi)核

查看系統(tǒng)中全部的內(nèi)核 RPM 包:

# rpm -qa | grep kernel

> kernel-tools-3.10.0-514.26.2.el7.x86_64
> kernel-devel-3.10.0-514.10.2.el7.x86_64
> kernel-3.10.0-514.26.2.el7.x86_64
> kernel-3.10.0-327.el7.x86_64
> kernel-ml-4.12.0-1.el7.elrepo.x86_64
> kernel-headers-3.10.0-514.26.2.el7.x86_64
> kernel-devel-3.10.0-514.26.2.el7.x86_64
> kernel-tools-libs-3.10.0-514.26.2.el7.x86_64

刪除舊內(nèi)核的 RPM 包

yum remove kernel-tools-3.10.0-514.26.2.el7.x86_64 kernel-devel-3.10.0-514.10.2.el7.x86_64 kernel-3.10.0-514.26.2.el7.x86_64 kernel-3.10.0-327.el7.x86_64 kernel-headers-3.10.0-514.26.2.el7.x86_64 kernel-devel-3.10.0-514.26.2.el7.x86_64 kernel-tools-libs-3.10.0-514.26.2.el7.x86_64

重啟系統(tǒng)

# reboot

這樣就可以升級(jí)完成了.Ubuntu 系統(tǒng)的話可以看看這篇博文 <<如何在 Ubuntu 中升級(jí)內(nèi)核>>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容