Ubuntu 内核更新与固定版本:先保留回退,再考虑 hold

在 Ubuntu 22.04 LTS 上应对内核与驱动不兼容:选择旧内核启动、查看元包、谨慎暂停自动更新。

安全提示:内核更新也包含安全修复。除非某个已确认的驱动 / 硬件回归正在影响使用,不建议长期冻结内核;应记录原因与恢复日期。

Ubuntu 通常会保留一个或多个旧内核,这正是遇到新内核与 NVIDIA、VirtualBox 等 DKMS 模块不兼容时最好的回退手段。第一选择应是从 GRUB 的“Advanced options for Ubuntu”启动上一个可用内核,而不是马上阻止所有升级。

先确认当前状态

1
2
3
uname -r
dpkg -l 'linux-image*' | grep '^ii'
apt-cache policy linux-generic linux-image-generic linux-headers-generic

记录可正常使用的内核版本、显卡驱动版本和故障表现。待问题解决并在新内核上验证后,再清理旧内核;不要删除当前正在运行的版本。

需要短期暂停更新时

Ubuntu 的内核通常由元包推进。下面只是在问题排查期间暂停元包更新;包名需以本机 apt-cache policy 输出为准:

1
2
sudo apt-mark hold linux-generic linux-image-generic linux-headers-generic
apt-mark showhold

恢复更新:

1
2
3
sudo apt-mark unhold linux-generic linux-image-generic linux-headers-generic
sudo apt update
sudo apt upgrade

固定单个、已安装的版本包,往往不能阻止元包引入新版本;反过来,冻结元包又会连带停止内核安全更新。因此应该把 hold 当作短期隔离措施,而不是永久配置。

出处

本文合并两篇原始资料,并补充了 Ubuntu 22.04 的内核元包和安全更新风险。