释放 /boot 文件目录空间

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

软件方法

  1. 安装软件 byobu
    sudo apt install byobu -y
  2. 管理员权限运行即可
    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
  2. 删除自己不需要的即可
    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
  3. 清楚剩余杂项
    sudo apt-get autoremove
  4. 更新 grub
    sudo update-grub
  5. 如果你遇到错误如下:
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
  2. 删除其余内核(一定一定不要删除当前内核 ($uname -r))
    如果按照上述显示,可以删除内核的扩展命令如下
    sudo rm -rf /boot/*-3.19.0-{25,56,58,59,61,65}-*
  3. 整理安装
    sudo apt -f install
  4. 删除无用的内核映像包文件
    sudo apt autoremove
  5. 更新 grub
    sudo update-grub

    至此结束

标签: Linux, boot

添加新评论