前言
centos7默認的內核版本才3.10,諸如VXLAN、eBPF等特性無法體驗,因此需要升級。目前(2022.02)Linux的內核版本已更新到5.16。
步驟
- 更新倉庫
yum update -y
- 啟用ELRepo倉庫。ELRepo倉庫是基於社區的用於企業級Linux倉庫,提供對基於RH的linux發行版的支持。
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
- 查看可用的系統內核相關包
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
- 安裝最新的主線穩定版內核
yum --enablerepo=elrepo-kernel install kernel-ml
- 修改
/etc/default/grub
,設置GRUB_DEFAULT=0
(GRUB初始化頁面的第一個內核將作為默認內核) - 創建內核配置,使上一步驟生效
grub2-mkconfig -o /boot/grub2/grub.cfg
- 重啟(
shutdown -r now
)后使用uname -r
查看內核版本(如果還是3.10的內核版本,見下一節補充內容) - 卸載舊內核(可選)
rpm -qa | grep kernel
# 使用yum remove 卸載所有上述結果中老版本kernel相關程序
# yum remove -y kernel-3.10.0-1160.el7.x86_64 kernel-tools-libs-3.10.0-1160.45.1.el7.x86_64 kernel-headers-3.10.0-1160.45.1.el7.x86_64 kernel-3.10.0-1160.45.1.el7.x86_64 kernel-tools-3.10.0-1160.45.1.el7.x86_64
- 重啟
shutdown -r now
補充:手動指定內核版本
如果重啟過后的內核版本還是3.10,可以手動指定內核版本,步驟如下:
- 查看當前默認啟動內核版本
grub2-editenv list
- 查看當前系統已安裝內核版本
cat /boot/grub2/grub.cfg | grep -v rescue | grep ^menuentry
# 輸出結果示例
# menuentry 'CentOS Linux (5.16.10-1.el7.elrepo.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.16.10-1.el7.elrepo.x86_64-advanced-56b3d73b-0e99-4b69-8eef-3162bc97c494' {
# menuentry 'CentOS Linux (3.10.0-1160.53.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.53.1.el7.x86_64-advanced-56b3d73b-0e99-4b69-8eef-3162bc97c494' {
# menuentry 'CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-693.el7.x86_64-advanced-56b3d73b-0e99-4b69-8eef-3162bc97c494' {
- 指定內核版本
grub2-set-default 'CentOS Linux (5.16.10-1.el7.elrepo.x86_64) 7 (Core)'
- 重啟
shutdown -r now
- 查看內核版本
uname -r