释放 `/boot` 文件目录空间

2019-06-05T19:09:00

[TOC]

释放 /boot 文件目录空间

下列两个方法前提是 /boot 分区未 100% 占用,且 apt 可用

软件方法

  1. 安装软件 byobu
sudo apt install byobu -y
  1. 管理员权限运行即可
sudo purge-old-kernels

该软件默认保留至少两个内核,包括当前正在使用的内核,如果要重定义保存的内核数,必须重新定义,下例为更改为只保留当前内核

sudo purge-old-kernels -y --keep 1

清楚剩余杂项

sudo apt -y autoremove --purge

手动方法

  1. 找出旧的内核文件名
sudo dpkg --list 'linux-image*'|awk '{ if ($1=="ii") print $2}'|grep -v `uname -r`

会显示大概类似下方存在的旧内核文件

linux-image-3.19.0-25-generic
linux-image-3.19.0-56-generic
linux-image-3.19.0-58-generic
linux-image-3.19.0-59-generic
linux-image-3.19.0-61-generic
linux-image-3.19.0-65-generic
linux-image-extra-3.19.0-25-generic
linux-image-extra-3.19.0-56-generic
linux-image-extra-3.19.0-58-generic
linux-image-extra-3.19.0-59-generic
linux-image-extra-3.19.0-61-generic
  1. 删除自己不需要的即可
sudo apt-get purge linux-image-3.19.0-25-generic
sudo apt-get purge linux-image-3.19.0-56-generic
sudo apt-get purge linux-image-3.19.0-58-generic
sudo apt-get purge linux-image-3.19.0-59-generic
sudo apt-get purge linux-image-3.19.0-61-generic
sudo apt-get purge linux-image-3.19.0-65-generic
  1. 清楚剩余杂项
sudo apt-get autoremove
  1. 更新 grub
sudo update-grub
  1. 如果你遇到错误如下:
update-initramfs: Generating /boot/initrd.img-5.0.0-fancyking

gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-5.0.0-fancyking with 1.
dpkg: error processing package initramfs-tools (--remove):
 subprocess installed post-installation script returned error exit status 1
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for dbus (1.10.6-1ubuntu3.3) ...
Errors were encountered while processing:
 initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

请执行下述操作修复即可
5.1 重命名当前 info 文件

sudo mv /var/lib/dpkg/info /var/lib/dpkg/info.bak

5.2 新建一个 info 文件夹

sudo mkdir /var/lib/dpkg/info

5.3 更新

sudo apt update

5.4 安装缺失文件

apt -f install -y

5.5 新文件拷贝

sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info.bak

5.6 删除自己新建的 info

sudo rm -rf /var/lib/dpkg/info

5.7 更改备份文件名至正常文件名

sudo mv /var/lib/dpkg/info.bak /var/lib/dpkg/info

修复完毕

下列方法特地针对 apt 不可用或者 /boot 占用到 100%

  1. 查询除当前内核外其他的内核文件
sudo dpkg --list 'linux-image*'|awk '{ if ($1=="ii") print $2}'|grep -v `uname -r`

显示如下

linux-image-3.19.0-25-generic
linux-image-3.19.0-56-generic
linux-image-3.19.0-58-generic
linux-image-3.19.0-59-generic
linux-image-3.19.0-61-generic
linux-image-3.19.0-65-generic
linux-image-extra-3.19.0-25-generic
linux-image-extra-3.19.0-56-generic
linux-image-extra-3.19.0-58-generic
linux-image-extra-3.19.0-59-generic
linux-image-extra-3.19.0-61-generic
  1. 删除其余内核(一定一定不要删除当前内核 ($uname -r))
    如果按照上述显示,可以删除内核的扩展命令如下
sudo rm -rf /boot/*-3.19.0-{25,56,58,59,61,65}-*
  1. 整理安装
sudo apt -f install
  1. 删除无用的内核映像包文件
sudo apt autoremove
  1. 更新 grub
sudo update-grub

至此结束

当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »