如何禁止linux内核自动更新
如何禁止linux内核自动更新详细介绍
在 Linux 系统中禁止内核自动更新的方法因发行版(如 Debian/Ubuntu、RedHat/CentOS、Arch 等)的包管理系统不同而有所差异。以下是常见发行版的操作步骤及注意事项:
一、Debian/Ubuntu 系列(apt 包管理)
方法 1:锁定内核包(推荐)
- 查看当前内核包名称
bashdpkg linux-imagedpkg linux-headers
- 锁定内核包(禁止升级)
bashapt-mark hold linux-image-版本号 linux-headers-版本号apt-mark hold linux-image-6.2.0-34-generic linux-headers-6.2.0-34-generic
- 解除锁定(如需恢复更新)
bashapt-mark unhold linux-image-版本号 linux-headers-版本号
方法 2:禁用自动更新服务
- 停止并禁用自动更新服务
bashsystemctl stop unattended-upgrades.servicesystemctl disable unattended-upgrades.service
- 修改 apt 配置(阻止内核升级)
在/etc/apt/apt.conf.d/20auto-upgrades中添加(或修改)以下内容,禁止升级内核相关包:
confAPT::AutoUpdate::Exclude "linux-image*;linux-headers*;linux-modules*";
二、RedHat/CentOS/Fedora 系列(yum/dnf 包管理)
方法 1:锁定内核包(推荐,需
yum-plugin-versionlock 插件)
- 安装版本锁定插件(CentOS 7 及以下用 yum,8+ 用 dnf)
bashdnf yum-plugin-versionlockyum yum-plugin-versionlock
- 查看内核包名称
bashdnf list installed kernel - 锁定内核包
bashdnf versionlock kernel - 解除锁定
bashdnf versionlock delete kernel
方法 2:修改配置文件(阻止内核升级)
在 /etc/yum.conf 或 /etc/dnf/dnf.conf 中添加:
conf
exclude=kernel kernel-devel kernel-headers kernel-modules
三、Arch Linux(pacman 包管理)
方法:编辑 pacman 配置阻止内核升级
- 打开 pacman 配置文件
bash/etc/pacman.conf - 在文件末尾添加
confIgnorePkg = linux linux-headers - 保存并退出,生效无需重启
四、通用方法:禁用系统自动更新服务
- 关闭自动更新定时器(适用于 systemd 系统)
bashsystemctl stop apt-daily.timersystemctl disable apt-daily.timer
systemctl stop dnf-automatic.timer
systemctl disable dnf-automatic.timer
- 检查并删除 cron 自动更新任务
bash
五、注意事项
- 安全风险:禁止内核更新可能导致系统暴露于已知漏洞,建议至少定期手动安装安全补丁(仅升级内核安全更新,非功能更新)。
- 手动更新控制:如需升级内核,需先解除锁定,更新后重新锁定。
- 内核包名称:不同发行版内核包命名规则不同(如 Ubuntu 的
linux-image、CentOS 的kernel),锁定时需准确匹配。 - 图形界面系统:若使用 GNOME/KDE 等桌面环境,还需在 “软件更新” 设置中关闭 “自动更新” 选项。
总结
- Debian/Ubuntu:用
apt-mark hold锁定内核包,或修改unattended-upgrades配置。 - RedHat/CentOS:用
yum/dnf versionlock或exclude配置锁定kernel包。 - Arch:在
pacman.conf中添加IgnorePkg。 - 通用:关闭自动更新服务,避免系统自动触发升级。
根据自身发行版选择对应方法,操作前建议备份重要数据,并谨慎评估禁用内核更新的风险。