Ubuntu 内核安全更新、HWE 升级与故障回退
Ubuntu 内核升级并不等于“安装版本号最大的内核”。生产环境应优先使用当前 Ubuntu 发行版提供和维护的内核包;HWE 用于获得较新的硬件支持;Mainline 构建主要供调试,不提供 Ubuntu 的常规安全支持。
本文于 2026-07-29 复核。升级前请确认 Ubuntu 版本、备份策略和远程主机的带外访问能力。
1. 升级前检查
记录系统版本、当前内核和磁盘空间:
1 | lsb_release -ds |
重要服务器应先创建可恢复备份或快照。如果使用 DKMS 驱动(例如部分 NVIDIA、网卡或存储驱动),还要确认它支持目标内核。
2. 首选:安装发行版提供的安全更新
刷新软件包索引并查看更新:
1 | sudo apt update |
安装更新:
1 | sudo apt upgrade |
如果 /run/reboot-required 存在,安排维护窗口重启:
1 | test -f /run/reboot-required && cat /run/reboot-required |
重启后用 uname -r 验证正在运行的新内核。旧内核通常仍会保留一段时间,便于故障回退。
3. LTS 桌面和服务器的 HWE 内核
Ubuntu LTS 的 Hardware Enablement(HWE)栈会为部分版本提供较新的内核和硬件支持。不要照搬别的发行版版本号;先在 Ubuntu 内核生命周期页面确认当前 LTS 的支持轨道。
例如,在确实适用于 Ubuntu 24.04 的系统上,元包形式通常为:
1 | sudo apt install --install-recommends linux-generic-hwe-24.04 |
元包会跟随后续受支持的内核更新。云主机、低延迟或 OEM 系统可能使用专用内核 flavor,不应未经确认改装 generic。
4. 为什么不把 Mainline 当作日常升级
Ubuntu Mainline Kernel Builds 用于定位上游内核问题。它们没有 Ubuntu 团队提供的正常支持,也不会像发行版内核一样持续收到安全更新,因此不适合作为生产环境的长期内核。
只有在排查硬件或上游内核缺陷、并且有明确回退方案时才短期测试 Mainline。测试时保留至少一个可启动的受支持内核,避免使用模糊的通配符一次安装或删除多组 .deb。
5. 启动失败时回退
- 重启并进入 GRUB。
- 选择 Advanced options for Ubuntu。
- 选择一个已知可用的旧内核启动。
- 登录后确认当前运行版本,并检查失败启动的日志:
1 | uname -r |
确认新内核确实有问题后,再针对准确的软件包名称处理。切勿删除 uname -r 显示的当前运行内核,也不要删除最后一个已知可用内核。
6. 运维建议
- 使用受支持的 Ubuntu 发行版,并定期安装安全更新。
- 对需要减少重启窗口的合资格系统,可评估 Ubuntu Livepatch;它不能取代所有常规更新和重启。
- 远程服务器升级前,应确保控制台、快照或救援模式至少有一种可用。
- 如果要在容器宿主机上更新系统,可结合 Docker 安装与入门 检查 Docker 和存储驱动状态。