温馨提示×

CentOS怎么替换系统内核

小樊
42
2026-08-04 15:38:02
栏目: 智能运维

在 CentOS 系统中替换(升级或切换)系统内核,常见有三种场景
1️⃣ 升级到 官方更新的内核
2️⃣ 安装 ELRepo 提供的新内核(如 mainline)
3️⃣ 手动编译并替换内核

下面按最常用 → 进阶的方式详细说明。


一、查看当前内核版本

uname -r

示例输出:

3.10.0-1160.el7.x86_64

二、通过官方仓库升级内核(推荐 ✅)

✅ CentOS 7

yum update -y

升级完成后重启:

reboot

查看新内核:

uname -r

CentOS 官方仓库 不会提供 mainline 内核,只提供稳定版本。


三、使用 ELRepo 安装新内核(最常见方式 ✅)

1️⃣ 安装 ELRepo

yum install -y epel-release
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

CentOS 7

yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

CentOS 8

yum install -y https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm

2️⃣ 查看可用内核

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

3️⃣ 安装新内核

安装 长期支持内核(LT)

yum --enablerepo=elrepo-kernel install -y kernel-lt

安装 最新主线内核(ML)

yum --enablerepo=elrepo-kernel install -y kernel-ml

4️⃣ 设置默认启动内核(GRUB)

查看当前 GRUB 内核列表

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)'

5️⃣ 重新生成 GRUB 配置

grub2-mkconfig -o /boot/grub2/grub.cfg

6️⃣ 重启系统

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

⚠️ 风险高,不建议生产环境使用。


六、常见问题

❓ 升级后无法启动?

  • 进入 GRUB 选择旧内核
  • 检查 /boot 是否已满
  • 检查 initramfs 是否生成失败

❓ CentOS 8 已 EOL?

建议迁移到:

  • Rocky Linux
  • AlmaLinux
  • CentOS Stream

七、总结(推荐方案)

场景 推荐方式
稳定升级 yum update
新特性 ELRepo + kernel-ml
生产环境 kernel-lt
内核开发 手动编译

如果你愿意,可以告诉我:

  • ✅ CentOS 版本(7 / 8 / Stream)
  • ✅ 是否生产环境
  • ✅ 想升级到哪个内核版本

我可以给你精确的一步步命令

0