/boot 已满 100%,apt-get purge linux-image-xxxx-generic 不起作用

/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).

有人有主意吗?

答案1

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

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

从 GRUB 菜单中选择它(Shift如果 GRUB 根本没有显示,请在启动时按住或反复按)。

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

易于方式

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

  • 运行sudo apt autoclean && sudo apt autoremoveapt 应该可以正确管理删除所有旧内核和相关软件包如果你没有把它弄得太乱

使用清除旧内核屏风包裹

如果合适的方式不起作用或者没有删除足够的空间:

  • 安装屏风跑步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 -f install
  • 跑步sudo apt update && sudo apt full-upgrade
  • 重新启动使用最新内核
  • 清理旧内核,通过合适的方法和/或 _purge_old_kernels_。

软件包方式

作为最后的手段,你可以尝试道路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
  • 重启如果需要的话(新内核?)并去合适的方式sudo apt autoclean && sudo apt autoremove
  • 如果仍然保留任何旧内核版本sudo purge_old_kernelsbyoby除了当前版本和以前的版本外,出于安全预防措施,我们始终保留这些版本)。

答案2

如果/boot太满,则apt remove无法工作(No space left on device),只需删除rm一些属于您想要删除的内核的文件(vmlinuz或),即可释放足够的空间,以便您可以正确安装软件包。当然,像往常一样,以 root 身份运行时,要格外小心拼写错误等,但即使您不小心删除了您不想删除的内核文件,一个简单的方法就可以解决它。initrd.imgapt removermrmapt install --reinstall

与普遍的误解相反,这样做绝对没有问题,因为任何人都可以亲身尝试,而不是仅仅重复他们听到的东西。(特别是,我经常读到这样做会导致“包装破损”。不,包装破损不是这个意思。)

相关内容