Ubuntu清理舊內核版本的步驟與注意事項
確認當前正在使用的內核版本
運行以下命令,獲取系統當前加載的內核版本(此版本絕對不能刪除):
uname -r
示例輸出:5.15.0-78-generic
查看已安裝的所有內核包
使用以下命令列出系統中已安裝的內核相關包(包括鏡像、頭文件、模塊):
dpkg --list | grep -E 'linux-image|linux-headers|linux-modules' | awk '{print $2}'
輸出示例:
linux-image-5.15.0-78-generic
linux-image-5.15.0-76-generic
linux-headers-5.15.0-78-generic
linux-headers-5.15.0-76-generic
Ubuntu的apt工具提供了自動識別并刪除未使用舊內核的功能,無需手動指定版本:
sudo apt update && sudo apt autoremove --purge
該命令會自動保留最新的1-2個內核(系統默認策略),刪除其余舊內核及關聯的配置文件、依賴包。
若需手動選擇刪除的舊內核,可按以下步驟操作:
<版本號>為要刪除的內核版本(如5.15.0-76-generic),注意要連帶刪除對應的頭文件和模塊:sudo apt purge linux-image-<版本號>-generic linux-headers-<版本號>* linux-modules-<版本號>*
示例(刪除5.15.0-76-generic內核):sudo apt purge linux-image-5.15.0-76-generic linux-headers-5.15.0-76* linux-modules-5.15.0-76*
kernel_clean.sh),內容如下:#!/bin/bash
current_kernel=$(uname -r)
sudo apt purge $(dpkg --list | grep -E 'linux-image|linux-headers|linux-modules' | awk '{print $2}' | grep -v "$current_kernel" | grep -v "linux-image-generic" | grep -v "linux-headers-generic")
sudo apt autoremove --purge -y
賦予執行權限并運行:chmod +x kernel_clean.sh
sudo ./kernel_clean.sh
Ubuntu提供了purge-old-kernels腳本,可快速保留指定數量的舊內核(默認保留2個),刪除其余:
sudo apt install byobu # 安裝byobu工具(包含purge-old-kernels腳本)
sudo purge-old-kernels --keep 2 # 保留2個舊內核,可根據需求調整數字
更新GRUB引導配置
刪除舊內核后,需更新GRUB以確保系統能正常引導至保留的內核:
sudo update-grub
清理殘留配置文件
若存在孤立的配置文件(如已刪除內核的配置殘留),可使用以下命令徹底清理:
sudo dpkg --purge $(dpkg -l | awk '/^rc/ {print $2}')
驗證清理結果
dpkg --list | grep -E 'linux-image|linux-headers'
/boot分區空間(確認空間是否釋放):df -h /boot
/boot分區空間不足(使用率超過90%),需先清理舊內核才能正常更新系統。