启动分区已满 100%。无法删除旧软件包以腾出空间

启动分区已满 100%。无法删除旧软件包以腾出空间

我在启动分区的可用空间方面遇到了问题,并按照其他几个问题中的说明进行了操作,但仍然没有得到好的结果。当我尝试删除旧软件包和内容时,我总是遇到同样的错误。如果有人能帮助我,请查看我发布的输出:

ornendil@Galla:~$ ls /boot
abi-4.4.0-51-通用 config-4.4.0-66-通用 memtest86+.elf vmlinuz-4.4.0-57-通用
abi-4.4.0-53-通用配置-4.4.0-70-通用memtest86 +_multiboot.bin vmlinuz-4.4.0-57-通用.efi.signed
abi-4.4.0-57-通用 efi System.map-4.4.0-51-通用 vmlinuz-4.4.0-59-通用
abi-4.4.0-59-通用 grub System.map-4.4.0-53-通用 vmlinuz-4.4.0-59-通用.efi.signed
abi-4.4.0-63-通用 initrd.img-4.4.0-51-通用 System.map-4.4.0-57-通用 vmlinuz-4.4.0-63-通用
abi-4.4.0-64-通用 initrd.img-4.4.0-53-通用 System.map-4.4.0-59-通用 vmlinuz-4.4.0-63-通用.efi.signed
abi-4.4.0-66-通用 initrd.img-4.4.0-57-通用 System.map-4.4.0-63-通用 vmlinuz-4.4.0-64-通用
abi-4.4.0-70-通用 initrd.img-4.4.0-59-通用 System.map-4.4.0-64-通用 vmlinuz-4.4.0-64-通用.efi.signed
config-4.4.0-51-通用 initrd.img-4.4.0-63-通用 System.map-4.4.0-66-通用 vmlinuz-4.4.0-66-通用
config-4.4.0-53-通用 initrd.img-4.4.0-64-通用 System.map-4.4.0-70-通用 vmlinuz-4.4.0-66-通用.efi.signed
config-4.4.0-57-通用 initrd.img-4.4.0-66-通用 vmlinuz-4.4.0-51-通用 vmlinuz-4.4.0-70-通用
config-4.4.0-59-通用 initrd.img-4.4.0-70-通用 vmlinuz-4.4.0-51-通用.efi.signed vmlinuz-4.4.0-70-通用.efi.signed
config-4.4.0-63-通用丢失+找到 vmlinuz-4.4.0-53-通用
config-4.4.0-64-通用 memtest86+.bin vmlinuz-4.4.0-53-通用.efi.signed
ornendil@Galla:~$ dpkg -l | grep linux-image
rc linux-image-4.4.0-21-generic 4.4.0-21.37 amd64 适用于 64 位 x86 SMP 上的 4.4.0 版 Linux 内核映像
rc linux-image-4.4.0-28-generic 4.4.0-28.47 amd64 适用于 64 位 x86 SMP 上的 4.4.0 版 Linux 内核映像
rc linux-image-4.4.0-31-generic 4.4.0-31.50 amd64 64 位 x86 SMP 上 4.4.0 版 Linux 内核映像
rc linux-image-4.4.0-36-generic 4.4.0-36.55 amd64 适用于 64 位 x86 SMP 上的 4.4.0 版 Linux 内核映像
rc linux-image-4.4.0-45-generic 4.4.0-45.66 amd64 适用于 64 位 x86 SMP 上的 4.4.0 版 Linux 内核映像
rc linux-image-4.4.0-47-generic 4.4.0-47.68 amd64 适用于 64 位 x86 SMP 上的 4.4.0 版 Linux 内核映像
ii linux-image-4.4.0-51-generic 4.4.0-51.72 amd64 64 位 x86 SMP 上 4.4.0 版 Linux 内核映像
ii linux-image-4.4.0-53-generic 4.4.0-53.74 amd64 64 位 x86 SMP 上的 4.4.0 版 Linux 内核映像
ii linux-image-4.4.0-57-generic 4.4.0-57.78 amd64 适用于 64 位 x86 SMP 上的 4.4.0 版 Linux 内核映像
ii linux-image-4.4.0-59-generic 4.4.0-59.80 amd64 64 位 x86 SMP 上 4.4.0 版 Linux 内核映像
ii linux-image-4.4.0-63-generic 4.4.0-63.84 amd64 64 位 x86 SMP 上的 4.4.0 版 Linux 内核映像
ii linux-image-4.4.0-64-generic 4.4.0-64.85 amd64 64 位 x86 SMP 上 4.4.0 版 Linux 内核映像
ii linux-image-4.4.0-66-generic 4.4.0-66.87 amd64 64 位 x86 SMP 上 4.4.0 版 Linux 内核映像
ii linux-image-4.4.0-70-generic 4.4.0-70.91 amd64 64 位 x86 SMP 上 4.4.0 版 Linux 内核映像
rc linux-image-extra-4.4.0-21-generic 4.4.0-21.37 amd64 适用于 64 位 x86 SMP 上的 4.4.0 版 Linux 内核额外模块
rc linux-image-extra-4.4.0-28-generic 4.4.0-28.47 amd64 适用于 64 位 x86 SMP 上的 4.4.0 版 Linux 内核额外模块
rc linux-image-extra-4.4.0-31-generic 4.4.0-31.50 amd64 64 位 x86 SMP 上的 4.4.0 版 Linux 内核额外模块
rc linux-image-extra-4.4.0-36-generic 4.4.0-36.55 amd64 适用于 64 位 x86 SMP 上的 4.4.0 版 Linux 内核额外模块
rc linux-image-extra-4.4.0-47-generic 4.4.0-47.68 amd64 适用于 64 位 x86 SMP 上的 4.4.0 版 Linux 内核额外模块
ii linux-image-extra-4.4.0-51-generic 4.4.0-51.72 amd64 64 位 x86 SMP 上的 4.4.0 版 Linux 内核额外模块
ii linux-image-extra-4.4.0-53-generic 4.4.0-53.74 amd64 64 位 x86 SMP 上的 4.4.0 版 Linux 内核额外模块
ii linux-image-extra-4.4.0-57-generic 4.4.0-57.78 amd64 64 位 x86 SMP 上的 4.4.0 版 Linux 内核额外模块
ii linux-image-extra-4.4.0-59-generic 4.4.0-59.80 amd64 64 位 x86 SMP 上的 4.4.0 版 Linux 内核额外模块
ii linux-image-extra-4.4.0-63-generic 4.4.0-63.84 amd64 64 位 x86 SMP 上的 4.4.0 版 Linux 内核额外模块
ii linux-image-extra-4.4.0-64-generic 4.4.0-64.85 amd64 适用于 64 位 x86 SMP 上的 4.4.0 版 Linux 内核额外模块
ii linux-image-extra-4.4.0-66-generic 4.4.0-66.87 amd64 64 位 x86 SMP 上的 4.4.0 版 Linux 内核额外模块
iF linux-image-extra-4.4.0-70-generic 4.4.0-70.91 amd64 适用于 64 位 x86 SMP 上的 4.4.0 版 Linux 内核额外模块
rH linux-image-extra-4.4.0-72-generic 4.4.0-72.93 amd64 64 位 x86 SMP 上的 4.4.0 版 Linux 内核额外模块
pH linux-image-extra-4.4.0-75-generic 4.4.0-75.96 amd64 适用于 64 位 x86 SMP 上的 4.4.0 版 Linux 内核额外模块
pU linux-image-extra-4.4.0-77-generic 4.4.0-77.98 amd64 适用于 64 位 x86 SMP 上的 4.4.0 版 Linux 内核额外模块
pU linux-image-generic 4.4.0.77.83 amd64 通用 Linux 内核映像

ornendil@Galla:~$ sudo apt-get purge linux-image-4.4.0-28-generic
正在读取软件包列表...完成
构建依赖关系树       
正在读取状态信息...完成
您可能需要运行“apt-get -f install”来纠正这些问题:
以下软件包具有未满足的依赖关系:
 linux-image-extra-4.4.0-77-generic:依赖:linux-image-4.4.0-77-generic 但是它将不会被安装
 linux-image-generic:依赖:linux-image-4.4.0-77-generic 但是它将不会被安装
 linux-signed-image-4.4.0-77-generic:依赖:linux-image-4.4.0-77-generic(= 4.4.0-77.98)但是它将不会被安装
E:未满足依赖关系。尝试不使用任何软件包的“apt-get -f install”(或指定解决方案)。

我尝试删除的每个包都会发生这种情况。我在 4.4.0.70 上

ornendil@Galla:~$ uname -r
4.4.0-70-通用

按照要求:

ornendil@Galla:~$ sudo apt install -f
[sudo] ornendil 的密码:
正在读取软件包列表...完成
构建依赖关系树       
正在读取状态信息...完成
纠正依赖关系...完成
以下软件包已自动安装并且不再需要:
  linux-headers-4.4.0-75 linux-headers-4.4.0-75-通用 linux-image-4.4.0-75-通用 linux-image-extra-4.4.0-75-通用
使用“sudo apt autoremove”来删除它们。
将会安装以下附加软件包:
  linux-image-4.4.0-72-通用 linux-image-4.4.0-75-通用 linux-image-4.4.0-77-通用
建议的软件包:
  fdutils linux-doc-4.4.0 | linux-source-4.4.0 linux-tools
将会安装以下新软件包:
  linux-image-4.4.0-72-通用 linux-image-4.4.0-75-通用 linux-image-4.4.0-77-通用
升级了 0 个,新安装了 3 个,删除了 0 个,并且未升级 107 个。
9 未完全安装或删除。
需要获取 0 B/137 MB 的档案。
此操作后,将使用200 MB的额外磁盘空间。
您想继续吗?[Y/n] Y
(正在读取数据库...当前安装了 640358 个文件和目录。)
准备解压 .../linux-image-4.4.0-77-generic_4.4.0-77.98_amd64.deb ...
检查 /etc/kernel/preinst.d/
运行部分:执行 /etc/kernel/preinst.d/intel-microcode 4.4.0-77-generic /boot/vmlinuz-4.4.0-77-generic
完毕。
正在解压 linux-image-4.4.0-77-generic (4.4.0-77.98) ...
dpkg: 处理档案 /var/cache/apt/archives/linux-image-4.4.0-77-generic_4.4.0-77.98_amd64.deb (--unpack) 时出错:
 无法将 './boot/vmlinuz-4.4.0-77-generic' 提取的数据复制到 '/boot/vmlinuz-4.4.0-77-generic.dpkg-new': 写入失败(设备上没有剩余空间)
没有写入 apport 报告,因为错误消息表明磁盘已满错误
                                                                              dpkg-deb:错误:子进程 paste 被信号终止(管道断裂)
检查 /etc/kernel/postrm.d 。
运行部分:执行 /etc/kernel/postrm.d/initramfs-tools 4.4.0-77-generic /boot/vmlinuz-4.4.0-77-generic
运行部分:执行 /etc/kernel/postrm.d/zz-update-grub 4.4.0-77-generic /boot/vmlinuz-4.4.0-77-generic
准备解压 .../linux-image-4.4.0-72-generic_4.4.0-72.93_amd64.deb ...
检查 /etc/kernel/preinst.d/
运行部分:执行 /etc/kernel/preinst.d/intel-microcode 4.4.0-72-generic /boot/vmlinuz-4.4.0-72-generic
完毕。
正在解压 linux-image-4.4.0-72-generic (4.4.0-72.93) ...
dpkg: 处理档案 /var/cache/apt/archives/linux-image-4.4.0-72-generic_4.4.0-72.93_amd64.deb (--unpack) 时出错:
 无法将 './boot/vmlinuz-4.4.0-72-generic' 提取的数据复制到 '/boot/vmlinuz-4.4.0-72-generic.dpkg-new': 写入失败(设备上没有剩余空间)
没有写入 apport 报告,因为错误消息表明磁盘已满错误
                                                                              dpkg-deb:错误:子进程 paste 被信号终止(管道断裂)
检查 /etc/kernel/postrm.d 。
运行部分:执行 /etc/kernel/postrm.d/initramfs-tools 4.4.0-72-generic /boot/vmlinuz-4.4.0-72-generic
运行部分:执行 /etc/kernel/postrm.d/zz-update-grub 4.4.0-72-generic /boot/vmlinuz-4.4.0-72-generic
准备解压 .../linux-image-4.4.0-75-generic_4.4.0-75.96_amd64.deb ...
检查 /etc/kernel/preinst.d/
运行部分:执行 /etc/kernel/preinst.d/intel-microcode 4.4.0-75-generic /boot/vmlinuz-4.4.0-75-generic
完毕。
正在解压 linux-image-4.4.0-75-generic (4.4.0-75.96) ...
dpkg: 处理档案 /var/cache/apt/archives/linux-image-4.4.0-75-generic_4.4.0-75.96_amd64.deb (--unpack) 时出错:
 无法将 './boot/vmlinuz-4.4.0-75-generic' 提取的数据复制到 '/boot/vmlinuz-4.4.0-75-generic.dpkg-new': 写入失败(设备上没有剩余空间)
没有写入 apport 报告,因为错误消息表明磁盘已满错误
                                                                              dpkg-deb:错误:子进程 paste 被信号终止(管道断裂)
检查 /etc/kernel/postrm.d 。
运行部分:执行 /etc/kernel/postrm.d/initramfs-tools 4.4.0-75-generic /boot/vmlinuz-4.4.0-75-generic
运行部分:执行 /etc/kernel/postrm.d/zz-update-grub 4.4.0-75-generic /boot/vmlinuz-4.4.0-75-generic
处理时遇到错误:
 /var/cache/apt/archives/linux-image-4.4.0-77-generic_4.4.0-77.98_amd64.deb
 /var/cache/apt/archives/linux-image-4.4.0-72-generic_4.4.0-72.93_amd64.deb
 /var/cache/apt/archives/linux-image-4.4.0-75-generic_4.4.0-75.96_amd64.deb
E: 子进程 /usr/bin/dpkg 返回错误代码 (1)
ornendil@Galla:~$ sudo apt autoremove
[sudo] ornendil 的密码:
正在读取软件包列表...完成
构建依赖关系树       
正在读取状态信息...完成
您可能需要运行“apt-get -f install”来纠正这些问题。
以下软件包具有未满足的依赖关系:
 linux-image-extra-4.4.0-72-generic:依赖:linux-image-4.4.0-72-generic 但尚未安装
 linux-image-extra-4.4.0-75-generic:依赖:linux-image-4.4.0-75-generic 但尚未安装
 linux-image-extra-4.4.0-77-generic:依赖:linux-image-4.4.0-77-generic 但尚未安装
 linux-image-generic:依赖:linux-image-4.4.0-77-generic 但尚未安装
 linux-signed-image-4.4.0-77-generic:依赖:linux-image-4.4.0-77-generic(= 4.4.0-77.98)但尚未安装
E:未满足依赖关系。请尝试使用 -f。
ornendil@Galla:~$ sudo apt update
点击数:1 http://cr.archive.ubuntu.com/ubuntu xenial InRelease
获取:2 http://cr.archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB]                              
获取:3 http://cr.archive.ubuntu.com/ubuntu xenial-backports InRelease [102 kB]                                                                 
获取:4 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]                                                         
点击数:5 http://archive.ubuntu.com/ubuntu xenial InRelease                           
获取:6 http://cr.archive.ubuntu.com/ubuntu xenial-updates/main amd64 DEP-11 元数据 [288 kB]
获取:7 http://cr.archive.ubuntu.com/ubuntu xenial-updates/main DEP-11 64x64 Icons [192 kB]           
获取:8 http://cr.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 DEP-11 元数据 [160 kB]
获取:9 http://security.ubuntu.com/ubuntu xenial-security/main amd64 DEP-11 元数据 [54,6 kB]
获取:10 http://cr.archive.ubuntu.com/ubuntu xenial-updates/universe DEP-11 64x64 图标 [188 kB]              
获取:11 http://cr.archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 DEP-11 元数据 [2 516 B]         
获取:12 http://cr.archive.ubuntu.com/ubuntu xenial-backports/main amd64 DEP-11 元数据 [3 324 B]
获取:13 http://security.ubuntu.com/ubuntu xenial-security/main DEP-11 64x64 Icons [50,7 kB]                      
获取:14 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 DEP-11 元数据 [32,2 kB]
获取:15 http://security.ubuntu.com/ubuntu xenial-security/universe DEP-11 64x64 图标 [36,9 kB]
4 秒内获取 1 315 kB(279 kB/s)                                  
正在读取软件包列表...完成
构建依赖关系树       
正在读取状态信息...完成
有 107 个软件包可以升级。运行“apt list --upgradable”即可查看。
ornendil@Galla:~$ sudo apt autoremove
正在读取软件包列表...完成
构建依赖关系树       
正在读取状态信息...完成
您可能需要运行“apt-get -f install”来纠正这些问题。
以下软件包具有未满足的依赖关系:
 linux-image-extra-4.4.0-72-generic:依赖:linux-image-4.4.0-72-generic 但尚未安装
 linux-image-extra-4.4.0-75-generic:依赖:linux-image-4.4.0-75-generic 但尚未安装
 linux-image-extra-4.4.0-77-generic:依赖:linux-image-4.4.0-77-generic 但尚未安装
 linux-image-generic:依赖:linux-image-4.4.0-77-generic 但尚未安装
 linux-signed-image-4.4.0-77-generic:依赖:linux-image-4.4.0-77-generic(= 4.4.0-77.98)但尚未安装
E:未满足依赖关系。请尝试使用 -f。

然后做了:

ornendil@Galla:~$ sudo dpkg --remove linux-image-4.4.0-21-generic
dpkg:警告:忽略删除 linux-image-4.4.0-21-generic 的请求,仅删除配置
 系统中的文件;使用 --purge 也可以删除它们
ornendil@Galla:~$ sudo dpkg --remove --purge linux-image-4.4.0-51-generic
dpkg:错误:操作 -P(--purge)和 -r(--remove)相冲突

输入 dpkg --help 获取有关安装和卸载软件包的帮助 [*];
使用‘apt’或‘aptitude’进行用户友好的包管理;
输入 dpkg -Dhelp 获取 dpkg 调试标志值的列表;
输入 dpkg --force-help 获取强制选项列表;
输入 dpkg-deb --help 获取有关操作 *.deb 文件的帮助;

标有 [*] 的选项会产生大量输出 - 通过“less”或“more”进行管道传输!
ornendil@Galla:~$ sudo dpkg --remove --force-remove-reinstreq linux-image-4.4.0-51-generic
dpkg: 依赖性问题阻止删除 linux-image-4.4.0-51-generic:
 linux-image-extra-4.4.0-51-generic 依赖于 linux-image-4.4.0-51-generic。
 linux-signed-image-4.4.0-51-generic 依赖于 linux-image-4.4.0-51-generic (= 4.4.0-51.72)。

dpkg: 处理软件包 linux-image-4.4.0-51-generic (--remove) 时出错:
 依赖问题 - 不删除
处理时遇到错误:
 Linux-映像-4.4.0-51-通用
ornendil@Galla:~$ sudo dpkg --configure -a
设置 linux-image-extra-4.4.0-70-generic (4.4.0-70.91) ...
运行部分:执行 /etc/kernel/postinst.d/apt-auto-removal 4.4.0-70-generic /boot/vmlinuz-4.4.0-70-generic
运行部分:执行 /etc/kernel/postinst.d/initramfs-tools 4.4.0-70-generic /boot/vmlinuz-4.4.0-70-generic
update-initramfs:生成 /boot/initrd.img-4.4.0-70-generic

gzip:stdout:设备上没有剩余空间
E: mkinitramfs 失败 find 141 cpio 141 gzip 1
update-initramfs: /boot/initrd.img-4.4.0-70-generic 1 失败。
运行部分:/etc/kernel/postinst.d/initramfs-tools 退出,返回代码 1
dpkg: 处理软件包 linux-image-extra-4.4.0-70-generic (--configure) 时出错:
 子进程安装后安装脚本返回错误退出状态 1
dpkg:依赖性问题阻止了 linux-signed-image-generic 的配置:
 linux-signed-image-generic 依赖于 linux-signed-image-4.4.0-77-generic;然而:
  软件包 linux-signed-image-4.4.0-77-generic 尚未配置。
 linux-signed-image-generic 依赖于 linux-image-extra-4.4.0-77-generic;然而:
  软件包 linux-image-extra-4.4.0-77-generic 尚未配置。

dpkg: 处理软件包 linux-signed-image-generic 时出错(--configure):
 依赖问题 - 未配置
dpkg:依赖性问题阻碍了 linux-generic 的配置:
 linux-generic 依赖于 linux-image-generic (= 4.4.0.77.83);然而:
  软件包 linux-image-generic 尚未配置。

dpkg: 处理软件包 linux-generic 时出错(--configure):
 依赖问题 - 未配置
dpkg:依赖性问题阻止了 linux-signed-generic 的配置:
 linux-signed-generic 依赖于 linux-signed-image-generic (= 4.4.0.77.83);然而:
  软件包 linux-signed-image-generic 尚未配置。

dpkg: 处理软件包 linux-signed-generic 时出错(--configure):
 依赖问题 - 未配置
处理时遇到错误:
 Linux-image-extra-4.4.0-70-通用
 Linux 签名映像通用
 linux 通用
 Linux 签名的通用
ornendil@Galla:~$ sudo dpkg-reconfigure -a
未知选项:a
用法:dpkg-reconfigure [选项] 包
  -u, --unseen-only 仅显示尚未看到的问题。
       --default-priority 使用默认优先级而不是低优先级。
       --force 强制重新配置损坏的软件包。
       --no-reload 不重新加载模板。(谨慎使用。)
  -f, --frontend 指定要使用的 debconf 前端。
  -p, --priority 指定要显示的最低优先级问题。
       --terse 启用简洁模式。

答案1

将一些旧的 initrd...、vmlinuz... 和 System.map... 文件清零,为包管理器提供一些工作空间。假设您正在运行 vmlinuz-4.4.0-70,请保留所有 ...70 文件和以前的内核,即 ...66 文件。如果 ...70 不是您正在运行的内核,则保留您正在运行的内核。现在您可以使用 echo 命令将您不想要的文件清零,例如:

sudo echo >/boot/initrd.img-4.4.0-51-generic
sudo echo >/boot/vmlinuz-4.4.0-51-generic
sudo echo >/boot/vmlinuz-4.4.0-51-generic.efi.signed  
sudo echo >/boot/System.map-4.4.0-51-generic
sudo echo >/boot/abi-4.4.0-51-generic

等等。
当您有空间时,请尝试之前建议的清除/删除命令。

简单地删除文件会导致包管理器崩溃,并拒绝执行任何操作,但零长度文件是可以接受的,因此它应该可以完成。看起来您已经堆积了一整套要安装的东西,它们可能会重新填满 /boot。如果发生这种情况,请准备好进行更多清零。


如果您意外删除了想要的文件,该软件包应该仍然存在,并且可以通过另一次安装或重新配置来恢复。


下载的软件包被放在目录 /var/cache/apt/archives 中,因此如果你丢失的文件有其软件包,请尝试

 sudo dpkg-reconfigure thepackage

上面还有各种其他清理建议,但最坏的情况是,您可能必须创建所需的空文件,清除包,然后再次安装它。

答案2

启动分区里全是旧的 Linux 版本。大约一个月前,我遇到了同样的问题,因为我懒得使用自动删除功能。

sudo apt-get autoremove

会清理所有不再需要的东西,包括那些。只有清理出一些空间后,apt 才会修复或安装其他东西。

运行上述命令后,我就可以执行以下操作:

sudo apt-get install -f

最后更新并升级

sudo apt-get update
sudo apt-get upgrade

答案3

我会尝试使用 aptitude 或 dpkg(清除?)进行相同的彻底卸载,但为什么不直接删除文件,然后删除 /lib/modules 中的相应模块。也许您需要将一些大文件暂时移动到另一个存储中,以腾出空间来执行“apt-get -f install”。无论如何,为什么要有这么多内核,请只保留一些里程碑和最新的内核。

相关内容