【Linux】linux内核升级

文章目录

  • [Linux 内核升级](#Linux 内核升级)
    • 一、核心结论
    • [二、CentOS 7:ELRepo 在线升级(推荐)](#二、CentOS 7:ELRepo 在线升级(推荐))
      • [1. 在线安装步骤](#1. 在线安装步骤)
      • [2. 离线安装(虚拟机断网)](#2. 离线安装(虚拟机断网))
      • [3. 回滚](#3. 回滚)
    • 三、Ubuntu:两条升级路线
      • [路线 A:官方 HWE 内核(生产推荐)](#路线 A:官方 HWE 内核(生产推荐))
      • [路线 B:mainline 主线内核(尝鲜 / 测试)](#路线 B:mainline 主线内核(尝鲜 / 测试))
      • 回滚
    • [四、CentOS vs Ubuntu 差异对照](#四、CentOS vs Ubuntu 差异对照)
    • 五、风险提醒(虚拟机同样会踩)

Linux 内核升级

涵盖:CentOS 7 与 Ubuntu 的内核升级路径、ELRepo / HWE / mainline 三种内核来源、GRUB 默认内核切换与回滚、虚拟机升级风险。


一、核心结论

疑问 结论
CentOS 内核包必须拖进虚拟机吗? 不必。虚拟机可联网就直接在线装;只有断网时才下载 rpm 再上传(rz / sftp / 共享文件夹)
Ubuntu 能照搬 CentOS 的流程吗? 不能 。deb + apt/dpkg 与 rpm + yum/dnf 是两套完全独立的体系
Ubuntu 必须升级内核吗? 不必 。LTS 的 HWE 内核由官方维护,apt upgrade 即可;要 BBR 或新硬件支持才考虑 mainline

💡 两条原则:能在线就不离线;生产用 LT / HWE,不追新。


二、CentOS 7:ELRepo 在线升级(推荐)

ELRepo 是正规第三方源,不是个人魔改版,生产可用。

1. 在线安装步骤

bash 复制代码
# 1. 查看当前系统与内核版本
cat /etc/redhat-release
uname -r

# 2. 导入 ELRepo 密钥并安装源
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm

# 3. 查看可用内核(lt = 长期稳定,ml = 主线新版)
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

# 4. 安装:生产选 lt,尝鲜选 ml(二选一)
yum --enablerepo=elrepo-kernel install kernel-lt -y
# yum --enablerepo=elrepo-kernel install kernel-ml -y

# 5. 查看 GRUB 启动菜单列表
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/grub2/grub.cfg

# 6. 将序号 0(新内核)设为默认启动项
grub2-set-default 0
# 重新生成 GRUB 配置(保险操作)
grub2-mkconfig -o /boot/grub2/grub.cfg

# 7. 重启
reboot

# 8. 重启后验证
uname -r
grub2-editenv list    # 应显示 saved_entry=0

⚠️ 新内核安装后默认排在菜单第 0 位,所以 grub2-set-default 0 就是选中它;若顺序不同,先按第 5 步输出的序号再设置。

2. 离线安装(虚拟机断网)

  1. Windows 浏览器打开 ELRepo 归档,下载同一版本 的一组 rpm:kernel-lt、kernel-lt-core、kernel-lt-modules、kernel-lt-modules-extra、kernel-lt-devel、kernel-lt-headers(用 ml 系列则替换前缀)。

  2. 通过 rz / sftp / 共享文件夹上传到虚拟机同一目录。

  3. 进入该目录执行本地安装:

    bash 复制代码
    yum localinstall ./*.rpm -y
  4. 后续 GRUB 设置、重启、验证与在线流程完全一致。

3. 回滚

bash 复制代码
# 重启时在 GRUB 菜单选择旧内核(3.10.x)进入系统
rpm -qa | grep kernel-lt              # 查看已安装的新内核包
yum remove kernel-lt-<版本号> -y       # 删除对应版本
grub2-mkconfig -o /boot/grub2/grub.cfg

新旧内核是并行安装的,旧内核始终保留,删掉新包不会影响系统启动。
⚠️ CentOS 7 已于 2024-06-30 停止维护,新环境建议直接用 Rocky / AlmaLinux 9,流程基本一致(yum → dnf)。


三、Ubuntu:两条升级路线

以 Ubuntu 22.04 LTS 为例,20.04 / 24.04 逻辑一致,替换版本号即可。

路线 A:官方 HWE 内核(生产推荐)

HWE(Hardware Enablement)是 LTS 版本内的官方新硬件支持内核,带安全更新,最稳。

bash 复制代码
# 更新源索引
sudo apt update
# 安装 HWE 内核
sudo apt install linux-generic-hwe-22.04 -y

sudo reboot
uname -r

💡 24.04 换成 linux-generic-hwe-24.04,20.04 换成 linux-generic-hwe-20.04。

路线 B:mainline 主线内核(尝鲜 / 测试)

无官方维护,适合要更高版本号、BBR 或新硬件驱动的测试环境。包是 .deb,与 CentOS 的 rpm 完全不同。

下载页:https://kernel.ubuntu.com/mainline/

需要同一版本的 4 个包:

包名 作用
linux-headers-xxx_all.deb 内核头文件(公共部分)
linux-headers-xxx-generic.deb 内核头文件(generic 架构)
linux-image-unsigned-xxx-generic.deb 内核镜像
linux-modules-xxx-generic.deb 内核模块
bash 复制代码
# 1. 虚拟机内 wget 下载,或 Windows 下载后上传
# 2. 进入 deb 所在目录安装
sudo dpkg -i linux-*.deb

# 3. 若提示依赖缺失,修复依赖
sudo apt -f install

# 4. 重启(GRUB 自动识别新内核,无需手动设置默认)
sudo reboot
uname -r

Ubuntu 的 GRUB 默认最新安装的内核优先启动,一般不用改 GRUB 配置。

回滚

重启时调出 GRUB 菜单,选择旧内核进入即可:

  • 传统 BIOS:开机长按 Shift
  • UEFI 模式:开机连按 Esc

确认新内核确实有问题,再清理对应版本:

bash 复制代码
dpkg -l | grep linux-image                    # 列出已安装内核
sudo apt purge linux-image-<版本>-generic linux-headers-<版本>-*
sudo update-grub

⚠️ 不要用 apt autoremove 一把清空,容易把用于回退的旧内核一起删掉。


四、CentOS vs Ubuntu 差异对照

项目 CentOS / RHEL 系 Ubuntu / Debian 系
包格式 .rpm .deb
包管理器 yum(7)/ dnf(8+) apt / dpkg
内核来源 ELRepo(kernel-lt / kernel-ml) 官方 HWE / mainline
生产首选 kernel-lt linux-generic-hwe-*
默认内核切换 grub2-set-default + grub2-mkconfig 自动优先新内核,grub-reboot 可临时指定
查看已装内核 `rpm -qa grep kernel`
回滚 GRUB 选旧内核 → yum remove GRUB 选旧内核 → apt purge

五、风险提醒(虚拟机同样会踩)

风险点 说明与对策
虚拟机工具失效 升级后 VMware Tools / open-vm-tools 可能不工作,需重装或重建模块;内核越新兼容性越差
盲目追新 优先 LT / HWE,不要上 rc 候选版;kernel-ml 只用于测试
覆盖式升级 新旧内核必须并行安装,保证 GRUB 里能切回去,这是底线
容器限制 OpenVZ 等共享内核容器不能换内核,仅 KVM / VMware 虚拟机与物理机可以
没有回退点 升级前给虚拟机打快照,比任何回滚命令都可靠

相关推荐
Michelle80231 小时前
第1周——认清考试与IDLE生存指南
运维·服务器
DYWorker0011 小时前
第 1-2 课:进程与调度:CPU 空出来时,内核选谁?
linux
严同学正在努力1 小时前
PostgreSQL 高可用教程(流复制 + Patroni 生产级实战)
运维·数据库·ai·postgresql·架构
Soneswy1 小时前
Linux系统篇--用户切换与文件权限
linux·服务器
Ruiery1 小时前
Linux 6.6内核内存管理深度解析(三·补):页表项(PTE)结构与地址翻译
linux·运维·服务器
阿狸猿1 小时前
AI Agent自动写自动化脚本
运维·人工智能·自动化
五块钱的方便面1 小时前
ubuntu下networkmanager不让管理解决办法
linux·运维·ubuntu
云飞云共享云桌面1 小时前
苏州半导体工厂研发部门多个SolidWorks 如何共享服务器来进行研发设计
运维·服务器·3d·自动化·制造
呉師傅1 小时前
Win7剪切文件变成复制文件如何修改【资源管理器异常类故障】
运维·网络·windows·电脑