Saturday, April 27, 2024

CentOS升級kernel

一、手動檔

手動檔就是從源碼開始編譯內核安裝,好處是可以自己選擇任意版本的內核,缺點就是耗時長,編譯安裝消耗系統資源

1.1、獲取 kernel 源碼

這世界上最偉大的 Linux 內核源碼下載地址是 kernel 官網,選擇一個穩定版本下載即可

1.2、解壓並清理

官方要求將其解壓到 /usr/src 目錄,其實在哪都可以,為了規範一點索性也解壓到此位置,然後為了防止編譯殘留先做一次清理動作

# 下載內核源碼
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.4.1.tar.xz
# 解壓並移動到 /usr/src
tar -Jxvf linux-6.4.1.tar.xz
mv linux-6.4.1 /usr/src/kernels
# 執行清理(沒 gcc 的要裝一下)
cd /usr/src/kernels/linux-6.4.1
make mrproper && make clean

1.3、生成編譯配置表

kernel 在編譯時需要一個配置文件(.config),用於描述開啟哪些特性等,該文件一般可通過一下四種途徑獲得:

複製當前系統編譯配置表,即 cp /boot/config-xxx .config;如果系統有多個內核,那麼根據版本號選擇最新的即可
使用 make defconfig 命令獲取當前系統編譯配置表,該命令會自動寫入到 .config 中
使用 make localmodconfig 命令開啟交互模式,然後根據提示生成編譯配置表
使用 make oldconfig 命令根據舊的編譯配置表生成新的編譯配置表,剛方式會直接讀取舊的便已配置表,並在以前沒有設定過的配置時會自動開啟交互模式
這裡採用最後一種方式生成

1.4、編譯並安裝

內核配置表生成完成後便可進行編譯和安裝(需要安裝 bc、openssl-devel等)

make
make modules
make modules_install
make install

最後執行重啟驗證即可,驗證成功後可刪除舊的內核

rpm -qa | grep kernel

二、自動檔

相對於手動檔編譯安裝,CentOS 還可以通過使用 elrepo 源的方式直接安裝最新穩定版 kernel,腳本如下

For RHEL-7, SL-7 or CentOS-7:

# Import the public key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# To install ELRepo for RHEL-7, SL-7 or CentOS-7
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
# install kernel
yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y
# modify grub
grub2-set-default 0
# reboot
reboot

For RHEL-8 or CentOS-8:

# Import the public key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# To install ELRepo for RHEL-8 or CentOS-8
yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
# install kernel
yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y
# modify grub
grub2-set-default 0
# reboot
reboot

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.