/ boot是100%已满,apt-get purge linux-image-xxxx-generic将无效

我有一个/boot重载。 试图跟随/ dev / sda1 / boot已满 ,但卡住了。

历史:

 df Filesystem 1K-blocks Used Available Use% Mounted on udev 485360 0 485360 0% /dev tmpfs 100744 10824 89920 11% /run /dev/mapper/vg00-lv01 49011528 7513836 39300100 17% / tmpfs 503716 0 503716 0% /dev/shm tmpfs 5120 0 5120 0% /run/lock tmpfs 503716 0 503716 0% /sys/fs/cgroup /dev/sda1 474730 466955 0 100% /boot dpkg --list | grep linux-image ii linux-image-4.4.0-21-generic 4.4.0-21.37 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP ii linux-image-4.4.0-59-generic 4.4.0-59.80 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP ii linux-image-4.4.0-62-generic 4.4.0-62.83 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP ii linux-image-4.4.0-63-generic 4.4.0-63.84 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP ii linux-image-4.4.0-64-generic 4.4.0-64.85 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP ii linux-image-4.4.0-66-generic 4.4.0-66.87 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP ii linux-image-4.4.0-67-generic 4.4.0-67.88 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP ii linux-image-4.4.0-70-generic 4.4.0-70.91 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP ii linux-image-4.4.0-71-generic 4.4.0-71.92 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP ii linux-image-4.4.0-72-generic 4.4.0-72.93 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP ii linux-image-extra-4.4.0-21-generic 4.4.0-21.37 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP ii linux-image-extra-4.4.0-59-generic 4.4.0-59.80 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP ii linux-image-extra-4.4.0-62-generic 4.4.0-62.83 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP ii linux-image-extra-4.4.0-63-generic 4.4.0-63.84 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP ii linux-image-extra-4.4.0-64-generic 4.4.0-64.85 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP ii linux-image-extra-4.4.0-66-generic 4.4.0-66.87 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP ii linux-image-extra-4.4.0-67-generic 4.4.0-67.88 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP ii linux-image-extra-4.4.0-70-generic 4.4.0-70.91 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP ii linux-image-extra-4.4.0-71-generic 4.4.0-71.92 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP iF linux-image-extra-4.4.0-72-generic 4.4.0-72.93 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP iU linux-image-extra-4.4.0-75-generic 4.4.0-75.96 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP iU linux-image-generic 4.4.0.75.81 amd64 Generic Linux kernel image 

! 哇,这么多,怎么会发生这种情况?

然后:

 uname -r 4.4.0-21-generic 

试用清除未使用的图像:

 apt-get purge linux-image-4.4.0-59-generic Reading package lists... Done Building dependency tree Reading state information... Done You might want to run 'apt-get -f install' to correct these: The following packages have unmet dependencies: linux-image-extra-4.4.0-59-generic : Depends: linux-image-4.4.0-59-generic but it is not going to be installed linux-image-extra-4.4.0-75-generic : Depends: linux-image-4.4.0-75-generic but it is not going to be installed linux-image-generic : Depends: linux-image-4.4.0-75-generic but it is not going to be installed Recommends: thermald but it is not going to be installed E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution). 

有人有个主意吗?

删除旧内核以释放/boot分区中的空间

如果您的系统使用旧内核运行(通常默认情况下通常是最新的内核),您应该从安装的最新内核启动,在您的情况下,这似乎是linux-image-4.4.0-72-generic

从GRUB菜单中选择它(如果GRUB完全没有显示,则在启动期间按住或反复按Shift键 )。

当您从最新的内核启动时,首先运行sudo apt-get -f install ,尝试修复未满足的依赖项问题,如果它继续使用下面的前两个方法中的任何一个; 如果失败跳转到手动包清除

适当的方式

尝试使用apt正确管理空间问题:

  • 运行sudo apt autoclean && sudo apt autoremove ,apt应该正确管理删除所有旧内核和相关软件包, 如果你没有太多搞乱它

使用byobu包中的purge_old_kernels

如果apt方法不起作用或者没有删除足够的空间:

  • 安装byobu运行sudo apt install byobu
  • 然后运行sudo purge-old-kernels ,它应该以比直接清除包更干净的方式删除旧内核。

手动包清除

如果有以上工作哦:

  • 使用sudo apt-get purge linux-image-4.4.0-21-generic && sudo update-grub清除最旧的( 未运行的 )内核sudo apt-get purge linux-image-4.4.0-21-generic && sudo update-grub
  • 重新启动并从可用的最新内核启动。
  • 运行sudo apt-get -f install
  • 运行sudo apt update && sudo apt full-upgrade
  • 使用最新的内核重新启动。
  • 通过apt方式和/或_purge_old_kernels_清理旧内核。

dpkg的方式

作为最后的手段,您可以尝试使用不是最安全dpkg方式

  • 从终端运行(从最新安装的内核运行)

     echo $(dpkg --list | grep linux-image | awk '{ print $2 }' | sort -V | sed -n '/'`uname -r`'/q;p') $(dpkg --list | grep linux-headers | awk '{ print $2 }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"'/q;p') | xargs sudo apt-get -y purge 

    借鉴了这一回应 。

  • 重新启动系统并运行sudo apt-get -f install

  • 使用sudo apt update && sudo apt full-upgrade
  • 如果需要重新启动(新内核?)并采用apt方式sudo apt autoclean && sudo apt autoremove
  • 运行sudo purge_old_kernels ,来自byoby包的命令,如果仍然是任何旧的内核版本( 除了当前和以前的版本,它们始终作为安全预防措施保留 )。

如果/boot太满,以至于apt remove不起作用( No space left on device ),只需要删除属于要删除的内核的某些文件( vmlinuzinitrd.img )以释放足够的空间,这样就可以正常apt remove包。 当然,像往常一样以root身份运行rm时,要特别小心打字错误等等,但即使你不小心从你不想删除的内核发送文件,一个简单的apt install --reinstall也会修复它。

与一个常见的误解相反,这样做完全没有问题,因为任何人都可以看到他们是否真的尝试过而不是仅仅重复他们所听过的事情。 (特别是,我经常读到这样做会导致“破坏包裹”。不,这不是破坏包裹的意思。)