温馨提示×

centos虚拟机如何升级内核

小樊
42
2025-10-25 21:18:04
栏目: 云计算

一、升级前的准备工作

  1. 备份重要数据:内核升级可能导致系统无法启动或出现兼容性问题,务必提前备份系统配置、数据库、个人文件等重要数据。
  2. 检查当前内核版本:通过uname -r命令确认当前运行的内核版本(如3.10.0-1160.el7.x86_64),避免升级后出现预期外的版本。
  3. 更新系统软件包:运行sudo yum update -y && sudo reboot,将系统现有软件包升级至最新版本,减少升级过程中的依赖冲突。

二、通过ELRepo仓库升级内核(推荐方法)

ELRepo是CentOS社区维护的第三方仓库,提供比官方更及时的内核版本(包括长期支持版kernel-lt和主线版kernel-ml)。

1. 启用ELRepo仓库

  • 导入GPG公钥:验证软件包来源的安全性,执行sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
  • 安装ELRepo仓库包:根据CentOS版本选择对应命令(以CentOS 7为例):
    sudo rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm

2. 查看可用内核版本

执行sudo yum --disablerepo="*" --enablerepo="elrepo-kernel" list available,列出ELRepo仓库中可用的内核包(如kernel-lt-5.15.13-1.el7.elrepo.x86_64kernel-ml-6.9.7-1.el7.elrepo.x86_64)。

3. 安装新内核

  • 选择内核类型
    • 长期支持版(LT):稳定性高,适合生产环境(如kernel-lt);
    • 主线版(ML):包含最新特性,但稳定性可能稍弱(如kernel-ml)。
  • 执行安装:以安装主线内核为例,运行sudo yum --enablerepo=elrepo-kernel install kernel-ml -y

三、配置GRUB引导新内核

  1. 设置默认启动项
    • 查看内核列表(按启动顺序编号):awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg(示例输出:0: CentOS Linux (6.9.7-1.el7.elrepo.x86_64)1: CentOS Linux (3.10.0-1160.el7.x86_64))。
    • 将新内核设为默认(假设新内核编号为0):sudo grub2-set-default 0
  2. 生成新的GRUB配置文件:执行sudo grub2-mkconfig -o /boot/grub2/grub.cfg,确保新内核被纳入引导菜单。

四、重启并验证内核

  1. 重启系统:运行sudo reboot,等待系统重启完成。
  2. 验证内核版本:重启后执行uname -r,若输出为新内核版本(如6.9.7-1.el7.elrepo.x86_64),则说明升级成功。

五、后续操作(可选)

  1. 删除旧内核(节省空间)
    • 查看已安装内核:rpm -qa | grep kernel
    • 删除旧内核(保留至少一个旧内核用于回滚):sudo yum remove kernel-3.10.0-1160.el7.x86_64 -y
  2. 回滚到旧内核:若新内核无法启动,在GRUB菜单中选择旧内核版本即可(默认会保留至少一个旧内核)。

注意事项

  • 依赖问题:若安装过程中出现依赖冲突(如内核头文件冲突),可重启到新内核后重新安装。
  • 兼容性:确保应用程序(如Docker、KVM)与新内核版本兼容,避免升级后无法运行。
  • 保留旧内核:至少保留一个旧内核,防止新内核出现问题无法启动。

0