默认在centos8.x版本上的内核版本为4.18,这个版本还是比较低的,比如我们试验eBPF的时候,很多功能都无法完全支持,需要升级下内核的版本。
内核是操作系统的核心,负责:
- 进程管理: 确定哪些程序可以使用哪个cpu,使用多长时间;
- 内存管理;
- 设备驱动提供;
- 系统调用和安全。
内核相关列表:
kernel: This package contains the kernel for single-core, multi-core, and multi-processor systems
kernel-devel : This contains kernel headers and makefiles used to build kernel modules against installed Kernel version.
kernel-headers: This package includes the C header files that powers interfacing between the Linux kernel and user-space libraries and programs.
kernel-tools: Contains tools for manipulating the Linux kernel and supporting documentation.
perf: This package contains the perf tool, which enables performance monitoring of the Linux kernel.
linux-firmware: This contains the firmware files required by various devices to operate.
一 将ELRepo 库 添加到系统上:
# centos 8
sudo dnf -y install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
#centos 7
sudo yum -y install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
查看是否安装库成功:
$ cat /etc/yum.repos.d/elrepo.repo
二 导入签名的密钥
# centos 7或8 一样的
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
三 选择安装内核
我们的存储库包含 elrepo-kernel 通道,它为 CentOS 和 RHEL Linux 系统提供了长期(kernel-lt) 支持内核和最新的稳定主线内核(kernel-ml)。
我们可以列出主线内核版本
[root@localhost ~]# sudo dnf --disablerepo="*" --enablerepo="elrepo-kernel" list available | grep kernel-ml
Repository extras is listed more than once in the configuration
kernel-ml-devel.x86_64 5.16.10-1.el8.elrepo elrepo-kernel
kernel-ml-doc.noarch 5.16.10-1.el8.elrepo elrepo-kernel
kernel-ml-headers.x86_64 5.16.10-1.el8.elrepo elrepo-kernel
kernel-ml-modules-extra.x86_64 5.16.10-1.el8.elrepo elrepo-kernel
kernel-ml-tools.x86_64 5.16.10-1.el8.elrepo elrepo-kernel
kernel-ml-tools-libs.x86_64 5.16.10-1.el8.elrepo elrepo-kernel
kernel-ml-tools-libs-devel.x86_64 5.16.10-1.el8.elrepo elrepo-kernel
长期支持版本,可以用下面命令查看:
[root@localhost event-2]# dnf --disablerepo="*" --enablerepo="elrepo-kernel" list available | grep kernel-lt
Repository extras is listed more than once in the configuration
kernel-lt.x86_64 5.4.180-1.el8.elrepo elrepo-kernel
kernel-lt-core.x86_64 5.4.180-1.el8.elrepo elrepo-kernel
kernel-lt-devel.x86_64 5.4.180-1.el8.elrepo elrepo-kernel
kernel-lt-doc.noarch 5.4.180-1.el8.elrepo elrepo-kernel
kernel-lt-headers.x86_64 5.4.180-1.el8.elrepo elrepo-kernel
kernel-lt-modules.x86_64 5.4.180-1.el8.elrepo elrepo-kernel
kernel-lt-modules-extra.x86_64 5.4.180-1.el8.elrepo elrepo-kernel
kernel-lt-tools.x86_64 5.4.180-1.el8.elrepo elrepo-kernel
kernel-lt-tools-libs.x86_64 5.4.180-1.el8.elrepo elrepo-kernel
kernel-lt-tools-libs-devel.x86_64 5.4.180-1.el8.elrepo elrepo-kernel
下面可以选择长期版本或主线最新稳定版本:
# Install mainline kernels
sudo dnf --enablerepo=elrepo-kernel install kernel-ml
或者
# Install long term kernels
sudo dnf --enablerepo=elrepo-kernel install kernel-lt
安装其他内核:
#mainline
sudo dnf --allowerasing --enablerepo=elrepo-kernel install kernel-ml-{devel,headers}
或者
#lt
sudo dnf --allowerasing --enablerepo=elrepo-kernel install kernel-lt-{devel,headers}
allowerasing 是替换老版本的其他核心,比如kenel-headers等
四 切换默认内核版本
# 查看所有可用内核版本
grubby --info=ALL | grep ^kernel
#查看默认的内核版本
grubby --default-kernel
# 设置内核版本
grubby --set-default "/boot/vmlinuz-5.16.10-1.el8.elrepo.x86_64"
#重启
reboot
centos 7 设置新内核
vim /etc/default/grub
GRUB_TIMEOUT=1
GRUB_DEFAULT=0
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="no_timer_check console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 elevator=noop crashkernel=auto"
GRUB_DISABLE_RECOVERY="true"
重新生成grub配置文件:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
五 查看内核版本
uname -r
六卸载内核
sudo dnf remove kernel-ml kernel-ml-{devel,headers}
网友评论