Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux 禁止內核自動升級:yum 配置排除與命令行參數兩大方案

編輯:關於 Linux

內核升級可能導致第三方驅動(NVIDIA、VirtualBox、DKMS 模組)、內核模組失效,甚至引發啟動失敗。生產環境常需鎖定內核版本。本文提供持久配置與臨時命令兩種方案,並說明依賴關係風險。

內核升級風險示意圖

方案一:持久配置 /etc/yum.conf(推薦)

vim /etc/yum.conf
# 在 [main] 區塊添加或修改
exclude=kernel* kernel-devel* kernel-headers* kernel-tools* kernel-firmware*

驗證生效

yum update | grep -i kernel
# 應無 kernel 相關包出現在更新列表

方案二:命令行臨時排除

# 單次更新排除內核
yum -x 'kernel*' update

# 多模式排除
yum --exclude='kernel*' --exclude='kernel-devel*' update

方案三:版本鎖定(精準控制)

# 安裝版本鎖定插件
yum install yum-plugin-versionlock -y

# 鎖定當前內核版本
yum versionlock kernel-$(uname -r)

# 查看鎖定列表
yum versionlock list

# 解鎖
yum versionlock delete kernel-$(uname -r)

方案對比與選型建議

方案持久性精準度適用場景
exclude=kernel*永久模糊(所有 kernel* 包)通用生產環境、防誤升級
yum -x單次模糊臨時更新其他包、測試
versionlock永久精準(具體版本號)需鎖定特定版本、配合 DKMS

風險與對策

1. 依賴衝突導致其他包無法更新

# 現象:更新 glibc 要求新內核
# 解決:臨時允許內核更新
yum update --disableexcludes=main glibc
# 或暫時註釋 exclude 行

2. 安全補丁缺失

  • 定期手動評估內核 CVE(yum updateinfo list cve kernel)
  • 維護窗口期手動升級內核並驗證驅動兼容性
  • 使用內核熱補丁(Kpatch、Kgraft、Canonical Livepatch)

3. 內核包仍佔用 /boot 空間

# 清理舊內核(保留當前 + 1 個備用)
package-cleanup --oldkernels --count=2

進階:APT 系統

# Debian/Ubuntu 禁止內核升級
apt-mark hold linux-image-$(uname -r) linux-headers-$(uname -r)

# 解鎖
apt-mark unhold linux-image-$(uname -r) linux-headers-$(uname -r)

# 查看鎖定
apt-mark showhold

總結

**生產環境首選 /etc/yum.conf 添加 exclude=kernel***,配合 versionlock 精準鎖定。建立「內核升級 → 驅動編譯驗證 → 分批灰度 → 全量推送」變更流程,而非單純禁止升級。**安全補丁與業務穩定性的平衡,靠流程而非單一參數**。

Copyright © Windows教程網 All Rights Reserved