在 CentOS 系统中替换(升级或切换)系统内核,常见有三种场景:
1️⃣ 升级到 官方更新的内核
2️⃣ 安装 ELRepo 提供的新内核(如 mainline)
3️⃣ 手动编译并替换内核
下面按最常用 → 进阶的方式详细说明。
uname -r
示例输出:
3.10.0-1160.el7.x86_64
yum update -y
升级完成后重启:
reboot
查看新内核:
uname -r
CentOS 官方仓库 不会提供 mainline 内核,只提供稳定版本。
yum install -y epel-release
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
yum install -y https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
yum --enablerepo=elrepo-kernel install -y kernel-lt
yum --enablerepo=elrepo-kernel install -y kernel-ml
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
示例输出:
0 : CentOS Linux (6.1.XX) 7 (Core)
1 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
grub2-set-default 0
或指定版本:
grub2-set-default 'CentOS Linux (6.1.XX) 7 (Core)'
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot
验证:
uname -r
rpm -qa | grep kernel
yum remove kernel-3.10.0-1160.el7.x86_64
⚠️ 不要删除正在运行的内核
适用于:
流程简述:
yum groupinstall -y "Development Tools"
yum install -y ncurses-devel openssl-devel
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.x.tar.xz
tar -xf linux-6.x.tar.xz
cd linux-6.x
make menuconfig
make -j$(nproc)
make modules_install
make install
⚠️ 风险高,不建议生产环境使用。
/boot 是否已满建议迁移到:
| 场景 | 推荐方式 |
|---|---|
| 稳定升级 | yum update |
| 新特性 | ELRepo + kernel-ml |
| 生产环境 | kernel-lt |
| 内核开发 | 手动编译 |
如果你愿意,可以告诉我:
我可以给你精确的一步步命令。