溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Centos和Ubutun系統(tǒng)內(nèi)核升級(jí)操作是怎樣的

發(fā)布時(shí)間:2021-09-28 14:32:45 來(lái)源:億速云 閱讀:133 作者:柒染 欄目:系統(tǒng)運(yùn)維

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)Centos和Ubutun系統(tǒng)內(nèi)核升級(jí)操作是怎樣的,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

在日常運(yùn)維中有時(shí)候會(huì)出現(xiàn)內(nèi)核版本過(guò)低,導(dǎo)致一系列的問(wèn)題,比如k8s使用3.10會(huì)出現(xiàn)cgroup內(nèi)存泄漏,或者有的軟件依賴內(nèi)核版本。

1 centos7升級(jí)內(nèi)核

1.1  檢查已安裝的內(nèi)核版本

讓我們安裝了一個(gè)發(fā)行版,它包含了一個(gè)特定版本的內(nèi)核。為了展示當(dāng)前系統(tǒng)中已安裝的版本,我們可以:

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

如果我們現(xiàn)在進(jìn)入https://www.kernel.org/,在撰寫本文時(shí),我們看到最新的內(nèi)核版本是5.12(其他版本可以從同一網(wǎng)站獲得)。還要考慮的一個(gè)重要的事情是內(nèi)核版本的生命周期  - 如果你當(dāng)前使用的版本接近它的生命周期結(jié)束,那么在該日期后將不會(huì)提供更多的 bug 修復(fù)。關(guān)于更多信息,請(qǐng)參閱內(nèi)核發(fā)布頁(yè)。

1.2 升級(jí)內(nèi)核

大多數(shù)現(xiàn)代發(fā)行版提供了一種使用 yum 等包管理系統(tǒng)和官方支持的倉(cāng)庫(kù)升級(jí)內(nèi)核的方法。但是,這只會(huì)升級(jí)內(nèi)核到倉(cāng)庫(kù)中可用的最新版本 -  而不是在 https://www.kernel.org/ 中可用的最新版本。不幸的是,Red Hat 只允許使用前者升級(jí)內(nèi)核。與 Red Hat  不同,CentOS 允許使用 ELRepo,這是一個(gè)第三方倉(cāng)庫(kù),可以將內(nèi)核升級(jí)到最新版本。ELRepo 倉(cāng)庫(kù)是基于社區(qū)的用于企業(yè)級(jí) Linux 倉(cāng)庫(kù),提供對(duì)  RedHat Enterprise (RHEL) 和 其他基于 RHEL的 Linux 發(fā)行版(CentOS、Scientific、Fedora  等)的支持。ELRepo 聚焦于和硬件相關(guān)的軟件包,包括文件系統(tǒng)驅(qū)動(dòng)、顯卡驅(qū)動(dòng)、網(wǎng)絡(luò)驅(qū)動(dòng)、聲卡驅(qū)動(dòng)和攝像頭驅(qū)動(dòng)等。要在 CentOS 7 上啟用 ELRepo  倉(cāng)庫(kù),請(qǐng)運(yùn)行:

#導(dǎo)入ELRepo倉(cāng)庫(kù)的公共密鑰 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org #安裝ELRepo倉(cāng)庫(kù)的yum源 rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

 

1.3 查看可用的系統(tǒng)內(nèi)核包

倉(cāng)庫(kù)啟用后,你可以使用下面的命令列出可用的內(nèi)核相關(guān)包:可以看到5.4和5.12兩個(gè)版本

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

 

1.4  安裝最新版本內(nèi)核

對(duì)于centos操作系統(tǒng),直接使用yum進(jìn)行rpm包安裝,可以避免一些依賴的問(wèn)題,但是默認(rèn)會(huì)安裝最新版本內(nèi)核,如果不需要的話,可以自己到網(wǎng)站下載對(duì)應(yīng)版本,然后指定版本安裝,https://buildlogs.centos.org/c7-kernels.x86_64/kernel/

#--enablerepo 選項(xiàng)開啟 CentOS 系統(tǒng)上的指定倉(cāng)庫(kù)。默認(rèn)開啟的是 elrepo,這里用 elrepo-kernel 替換。 yum -y --enablerepo=elrepo-kernel install kernel-ml

 

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

內(nèi)核安裝好后,需要設(shè)置為默認(rèn)啟動(dòng)選項(xiàng)并重啟后才會(huì)生效

查看系統(tǒng)上的所有可用內(nèi)核:

# sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg 0 : CentOS Linux 7 Rescue 8916e15095f33283a3b46d8f9ac7c654 (5.12.1-1.el7.elrepo.x86_64) 1 : CentOS Linux (5.12.1-1.el7.elrepo.x86_64) 7 (Core) 2 : CentOS Linux (3.10.0-862.el7.x86_64) 7 (Core) 3 : CentOS Linux (0-rescue-ea3169a040da42e0b632f72ceb5abd82) 7 (Core)

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

服務(wù)器上存在4 個(gè)內(nèi)核,我們要使用 5.12 這個(gè)版本,為了讓新安裝的內(nèi)核成為默認(rèn)啟動(dòng)選項(xiàng),可以通過(guò) grub2-set-default 0 命令或編輯  /etc/default/grub 文件來(lái)設(shè)置

#設(shè)置 GRUB_DEFAULT=0。意思是 GRUB 初始化頁(yè)面的第一個(gè)內(nèi)核將作為默認(rèn)內(nèi)核 grub2-set-default 0

生成 grub 配置文件并重啟

#接下來(lái)運(yùn)行下面的命令來(lái)重新創(chuàng)建內(nèi)核配置 # grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub configuration file ... Found linux image: /boot/vmlinuz-5.12.1-1.el7.elrepo.x86_64 Found initrd image: /boot/initramfs-5.12.1-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-8916e15095f33283a3b46d8f9ac7c654 Found initrd image: /boot/initramfs-0-rescue-8916e15095f33283a3b46d8f9ac7c654.img Found linux image: /boot/vmlinuz-0-rescue-ea3169a040da42e0b632f72ceb5abd82 Found initrd image: /boot/initramfs-0-rescue-ea3169a040da42e0b632f72ceb5abd82.img done

驗(yàn)證

# reboot # uname -r 5.12.1-1.el7.elrepo.x86_64

已升級(jí)成功

題外話

沒(méi)有外網(wǎng),制作離線內(nèi)核升級(jí)包

# 下載制作升級(jí)包的工具 yum -y install yum-utils yum -y install createrepo -y repotrack httpd -p ./httpds/           或者   yumdownloader --resolve --destdir /tmp/ansible ansible # 制作最新版本的內(nèi)核軟件包,保存在了./kernel-ml.x86_64/目錄 repotrack kernel-ml.x86_64 -p ./kernel-ml.x86_64/           或者   yumdownloader --resolve --destdir ./kernel-ml.x86_64 kernel-ml.x86_64 # 制作好了之后只需要把kernel-ml.x86_64目錄拷貝到需要升級(jí)的機(jī)器升級(jí)即可

刪除舊內(nèi)核

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

[root@hadoop-iot-test-01 ~]# rpm -qa | grep kernel kernel-headers-3.10.0-957.27.2.el7.x86_64 kernel-tools-3.10.0-862.el7.x86_64 kernel-debug-devel-3.10.0-957.27.2.el7.x86_64 kernel-ml-5.12.1-1.el7.elrepo.x86_64 kernel-3.10.0-862.el7.x86_64 kernel-tools-libs-3.10.0-862.el7.x86_64

方法1、yum remove 刪除舊內(nèi)核的 RPM 包

# yum remove kernel-3.10.0-514.el7.x86_64 \ kernel-tools-libs-3.10.0-862.11.6.el7.x86_64 \ kernel-tools-3.10.0-862.11.6.el7.x86_64 \ kernel-3.10.0-862.11.6.el7.x86_64

方法2、yum-utils 工具

如果安裝的內(nèi)核不多于 3 個(gè),yum-utils 工具不會(huì)刪除任何一個(gè)。只有在安裝的內(nèi)核大于 3 個(gè)時(shí),才會(huì)自動(dòng)刪除舊內(nèi)核。

# 安裝yum-utils yum install -y yum-utils # 刪除舊版本   package-cleanup --oldkernels

2 Ubutun升級(jí)內(nèi)核

2.1 環(huán)境

在虛擬機(jī)上運(yùn)行的ubuntu16.04 , 使用命令uname -r查看當(dāng)前系統(tǒng)內(nèi)核版本  當(dāng)前版本為4.15.0-45-generic 要升級(jí)的內(nèi)核為4.20.2

2.2 準(zhǔn)備需要的材料

到網(wǎng)址[https://kernel.ubuntu.com/~kernel-ppa/mainline/]下載要升級(jí)的內(nèi)核版本

選擇對(duì)應(yīng)的文件,我的是amd64

使用命令下載(也可以網(wǎng)頁(yè)下載)

wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.20.5/linux-headers-4.20.5-042005_4.20.5-042005.201901260434_all.deb wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.20.5/linux-headers-4.20.5-042005-generic_4.20.5-042005.201901260434_amd64.deb wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.20.5/linux-image-unsigned-4.20.5-042005-generic_4.20.5-042005.201901260434_amd64.deb wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.20.5/linux-modules-4.20.5-042005-generic_4.20.5-042005.201901260434_amd64.deb

2.3 安裝

直接使用dpkg命令安裝下載好的deb包

sudo dpkg -i *.deb

安裝完成后,重啟ubuntu系統(tǒng) 使用命令uname -r查看當(dāng)前版本號(hào)

# reboot 等待機(jī)子重啟 # uname -r Linux hadoop-master02 4.20.5-042005-generic

內(nèi)核升級(jí)成功。

2.4 遇到問(wèn)題及解決方案

* 遇到問(wèn)題

升級(jí)ubuntu 16.04的新內(nèi)核時(shí)出現(xiàn)依賴libssl1.1.0問(wèn)題

解決方案

需要安裝包 libssl1.1,  直接使用命令會(huì)安裝失敗,需要更添加源,這個(gè)包的更新數(shù)據(jù)ubuntu官方認(rèn)可的源才能更新。到該網(wǎng)址去查看[https://packages.ubuntu.com/bionic/libssl1.1]或者單獨(dú)下載安裝一個(gè)libssl1.1_1.1.0g-2ubuntu4.1_amd64.deb文件然后再dpkg  -i *.deb升級(jí)就可以了

wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb dpkg -i libssl1.1_1.1.0g-2ubuntu4_amd64.deb

上述就是小編為大家分享的Centos和Ubutun系統(tǒng)內(nèi)核升級(jí)操作是怎樣的了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI