Yum升级内核步骤

内核升级,听起来是个大工程,但其实只要步骤清晰、操作得当,整个过程可以相当顺畅。下面这份指南,将帮你安全、高效地完成从准备到验证的全过程。
一 准备与版本确认
动手之前,准备工作至关重要。这不仅是操作规范,更是为可能出现的意外留好退路。
- 备份先行:务必先备份重要数据和关键配置文件。如果服务器在云端,强烈建议先创建一个系统快照。这样一来,万一升级过程出现意外,回滚到健康状态就是分分钟的事。
- 摸清家底:升级前,得先知道自己从哪儿开始。执行以下命令确认当前环境:
- 查看当前内核版本:
uname -r - 查看系统发行版版本:
cat /etc/redhat-release
- 查看当前内核版本:
- 可选检查:你可以用
yum list kernel看看系统仓库里是否有现成的内核包。但更常见的做法,是引入更丰富的第三方仓库来获取新版内核。
二 使用ELRepo安装新内核(推荐)
对于追求新特性或安全补丁的用户,ELRepo仓库是个宝藏。它提供了比系统默认仓库更新、更全的内核版本。
- 配置仓库:首先,需要将ELRepo仓库添加到你的系统中。以CentOS 7为例(其他版本替换对应数字即可):
- 导入仓库的GPG密钥:
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
- CentOS 7:
- 导入仓库的GPG密钥:
- 探索可用内核:仓库配置好后,先别急着安装,看看它提供了哪些“菜品”:
- 列出ELRepo内核仓库所有可用包:
yum --disablerepo="*" --enablerepo="elrepo-kernel" list a vailable - 如果想看得更清晰,可以按版本号排序查看:
yum --disablerepo="*" --enablerepo="elrepo-kernel" list --showduplicates | sort -r | grep kernel
- 列出ELRepo内核仓库所有可用包:
- 选择并安装:ELRepo主要提供两类内核,选择哪一款取决于你的需求:
- 长期支持版(kernel-lt):稳定性优先,适合生产环境。安装命令:
yum --enablerepo=elrepo-kernel install -y kernel-lt - 主线稳定版(kernel-ml):特性最新,适合追求前沿功能的测试或开发环境。安装命令:
yum --enablerepo=elrepo-kernel install -y kernel-ml - 开发包(可选):如果你后续需要编译内核模块或驱动,记得对应安装
kernel-lt-devel或kernel-ml-devel包。
- 长期支持版(kernel-lt):稳定性优先,适合生产环境。安装命令:
三 设置默认启动内核并更新GRUB
新内核安装好后,它只是静静地躺在硬盘里。要让它真正“上岗”,还需要更新引导配置。
- 查看启动菜单:首先,确认新内核在GRUB菜单中的位置。执行以下命令,会列出所有可启动的菜单项及其序号(从0开始计数):
awk -F\' \'$1=="menuentry " {print i++ " : " $2}\' /etc/grub2.cfg
- 设定默认项:接下来,告诉系统下次启动时默认选择新内核。有两种方式,任选其一即可:
- 按序号设置(例如设为第0项):
grub2-set-default 0 - 按完整标题名称设置:
grub2-set-default ‘CentOS Linux (6.0.12-1.el7.elrepo.x86_64) 7 (Core)’
- 按序号设置(例如设为第0项):
- 生效与验证:最后,生成新的GRUB配置文件并重启,让一切生效:
- 生成配置:
grub2-mkconfig -o /boot/grub2/grub.cfg - 重启系统:
reboot - 系统重启后,登录并执行
uname -r,确认输出的版本号已经是新安装的内核。
- 生成配置:
四 仅用系统仓库升级与回退管理
如果你倾向于保守,希望只使用操作系统官方仓库提供的内核,方法则更为直接。
- 系统仓库升级:
- 安装最新内核:
yum install -y kernel - 更新GRUB配置:
grub2-mkconfig -o /boot/grub2/grub.cfg - 重启并验证:
reboot && uname -r
- 安装最新内核:
- 内核清理:升级后,旧内核包会保留在系统中。为了节省空间,可以清理掉不再需要的旧内核,但务必至少保留一个可正常启动的旧版本以备不时之需。
- 查看已安装的所有内核包:
rpm -q kernel - 安全移除特定旧版本(示例):
yum remove -y kernel-3.10.0-1160.el7.x86_64
- 查看已安装的所有内核包:
- 回退方法:万一新内核启动失败怎么办?别慌,你有两个选择:
- 在系统启动时,进入GRUB菜单,手动选择之前的旧内核启动。
- 进入系统后,使用
grub2-set-default命令将默认启动项重新设置为旧内核的序号或标题,然后重新生成GRUB配置并重启。
五 注意事项
行百里者半九十,最后这些提醒,往往是成功与否的关键。
- 风险意识:内核升级存在兼容性风险,可能影响硬件驱动或特定应用。生产环境务必在计划好的维护窗口内操作,并且备份和快照是绝对不能省略的保险。
- 虚拟化环境:对于云服务器(如阿里云ECS、腾讯云CVM等),它们通常依赖特定的虚拟化驱动(如virtio、xen)。升级后需确保initramfs镜像包含了这些驱动模块。如果发现网络或磁盘异常,可能需要检查
/etc/dracut.conf.d/ - 留好退路:再次强调,清理旧内核时,至少保留一个已知可正常启动的旧版本。这是遇到问题时最直接、最有效的救命稻草。
