Ubuntu 系統更新頻繁,/boot 分區若獨立且較小(預設常為 256MB~512MB),極易因累積舊核心導致空間耗盡,進而阻擋套件更新。本文示範安全移除舊核心的標準流程。
df -h /boot
# Filesystem Size Used Avail Use% Mounted on
# /dev/sda1 236M 220M 16M 94% /boot
dpkg --list 'linux-image*'
# ii linux-image-3.2.0-31-generic-pae 3.2.0-31.50 ...
# ii linux-image-3.2.0-32-generic-pae 3.2.0-32.51 ...
# ii linux-image-3.2.0-33-generic-pae 3.2.0-33.52 ...
# ii linux-image-3.2.0-34-generic-pae 3.2.0-34.53 ...
# ii linux-image-3.2.0-35-generic-pae 3.2.0-35.54 ...
ii 表示已安裝,rc 表示已移除但留有配置檔。
uname -r
# 3.2.0-35-generic-pae
方法一:apt 移除單一核心(推薦新手)
sudo apt-get remove linux-image-3.2.0-31-generic-pae
sudo apt-get remove linux-image-3.2.0-32-generic-pae
# 保留目前核心與前一版本共 2 個
方法二:一鍵清理所有非當前核心(進階)
dpkg -l 'linux-image-*' | awk '/^ii/{print $2}' | grep -v $(uname -r | sed 's/-generic.*//') | xargs sudo apt-get -y purge
方法三:使用 autoremove 自動清理
sudo apt-get autoremove --purge
# Ubuntu 16.04+ 會自動保留當前與前一版核心
# 清理 apt 快取
sudo apt-get clean
# 檢查 /boot 剩餘空間
df -h /boot
ls -lh /boot/
/boot 設為 1GB+ 或併入根分區apt-get autoremoveAPT::NeverAutoRemove 保護關鍵套件unattended-upgrades 自動化更新與清理# 手動刪除 /boot 下舊核心檔案 (謹慎操作)
cd /boot
ls -t vmlinuz-* | tail -n +3 | xargs rm -f
ls -t initrd.img-* | tail -n +3 | xargs rm -f
ls -t System.map-* | tail -n +3 | xargs rm -f
# 修復套件資料庫
sudo apt-get -f install
sudo dpkg --configure -a
妥善管理 /boot 空間是 Ubuntu 系統維運基本功,建議納入定期巡檢腳本自動化監控。