Ubuntu 内核安全更新、HWE 升级与故障回退

Chen Xi
Chen Xi

Ubuntu 内核升级并不等于“安装版本号最大的内核”。生产环境应优先使用当前 Ubuntu 发行版提供和维护的内核包;HWE 用于获得较新的硬件支持;Mainline 构建主要供调试,不提供 Ubuntu 的常规安全支持。

本文于 2026-07-29 复核。升级前请确认 Ubuntu 版本、备份策略和远程主机的带外访问能力。

1. 升级前检查

记录系统版本、当前内核和磁盘空间:

1
2
3
4
lsb_release -ds
uname -r
df -h /boot
apt-mark showhold

重要服务器应先创建可恢复备份或快照。如果使用 DKMS 驱动(例如部分 NVIDIA、网卡或存储驱动),还要确认它支持目标内核。

2. 首选:安装发行版提供的安全更新

刷新软件包索引并查看更新:

1
2
sudo apt update
apt list --upgradable

安装更新:

1
sudo apt upgrade

如果 /run/reboot-required 存在,安排维护窗口重启:

1
2
test -f /run/reboot-required && cat /run/reboot-required
sudo reboot

重启后用 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. 启动失败时回退

  1. 重启并进入 GRUB。
  2. 选择 Advanced options for Ubuntu
  3. 选择一个已知可用的旧内核启动。
  4. 登录后确认当前运行版本,并检查失败启动的日志:
1
2
3
uname -r
journalctl -b -1 -p warning
dpkg -l 'linux-image*'

确认新内核确实有问题后,再针对准确的软件包名称处理。切勿删除 uname -r 显示的当前运行内核,也不要删除最后一个已知可用内核。

6. 运维建议

  • 使用受支持的 Ubuntu 发行版,并定期安装安全更新。
  • 对需要减少重启窗口的合资格系统,可评估 Ubuntu Livepatch;它不能取代所有常规更新和重启。
  • 远程服务器升级前,应确保控制台、快照或救援模式至少有一种可用。
  • 如果要在容器宿主机上更新系统,可结合 Docker 安装与入门 检查 Docker 和存储驱动状态。

参考资料