
CentOS、Rocky Linux 舊 kernel 核心怎麼管理與清理?
系統更新時會安裝新的 kernel 核心,舊的 kernel 會留在主機上,以便新 kernel 有問題時可以退回。累積太多會佔滿 /boot 的空間,導致之後的更新失敗。管理方式是設定「最多保留幾個 kernel」,並清掉已經用不到的舊版本。
要先說明:CentOS Linux 已經停止支援,CentOS 8 在 2021 年底、CentOS 7 在 2024 年 6 月 30 日結束,不會再有安全性更新。目前常見的後繼系統是 Rocky Linux 與 AlmaLinux,下面分別說明。
一、先確認目前的 kernel
rpm -q kernel
uname -r
rpm -q kernel 列出已安裝的所有 kernel,uname -r 顯示目前正在使用的版本。清理時一定要保留正在使用的版本,以及至少一個備用版本。
二、Rocky Linux、AlmaLinux(dnf)
設定保留數量
編輯 /etc/dnf/dnf.conf,修改 installonly_limit,預設是 3:
installonly_limit=3
這個設定在下次安裝新 kernel 時才會生效,超過數量的最舊版本會被自動移除;改完設定或重開機,都不會立刻刪掉已經安裝的 kernel。
清掉已經安裝的舊 kernel
sudo dnf remove --oldinstallonly kernel
執行後 dnf 會列出要移除的套件,先確認清單裡沒有正在使用的版本,再按 y 確認。這個指令在不同 dnf 版本的行為略有差異,有些版本會移除最新版以外的所有舊 kernel,不會參考保留數量的設定。
三、CentOS 7(yum)
設定保留數量
編輯 /etc/yum.conf,修改 installonly_limit,CentOS 7 預設是 5。同樣要等下次安裝新 kernel 時才會生效。
清掉已經安裝的舊 kernel
先安裝 yum-utils,再用 package-cleanup 清理,--count 是要保留的數量:
sudo yum install -y yum-utils
sudo package-cleanup --oldkernels --count=2
四、注意事項
- 至少保留兩個:只留一個 kernel,新版開不了機時就沒有可以退回的版本
- 不要手動刪 /boot 裡的檔案:一定要用套件管理工具移除,否則開機選單與套件紀錄會不一致
- 還在用 CentOS 7 的主機:已經沒有安全性更新,建議規劃移轉到 Rocky Linux、AlmaLinux 等仍有支援的系統,見主機搬遷的完整流程