我超负荷了/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 autoremove
apt 应该可以正确管理删除所有旧内核和相关软件包如果你没有把它弄得太乱。
使用清除旧内核从屏风包裹
如果合适的方式不起作用或者没有删除足够的空间:
- 安装屏风跑步
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_kernels
(byoby
除了当前版本和以前的版本外,出于安全预防措施,我们始终保留这些版本)。
答案2
如果/boot
太满,则apt remove
无法工作(No space left on device
),只需删除rm
一些属于您想要删除的内核的文件(vmlinuz
或),即可释放足够的空间,以便您可以正确安装软件包。当然,像往常一样,以 root 身份运行时,要格外小心拼写错误等,但即使您不小心删除了您不想删除的内核文件,一个简单的方法就可以解决它。initrd.img
apt remove
rm
rm
apt install --reinstall
与普遍的误解相反,这样做绝对没有问题,因为任何人都可以亲身尝试,而不是仅仅重复他们听到的东西。(特别是,我经常读到这样做会导致“包装破损”。不,包装破损不是这个意思。)