我在启动分区的可用空间方面遇到了问题,并按照其他几个问题中的说明进行了操作,但仍然没有得到好的结果。当我尝试删除旧软件包和内容时,我总是遇到同样的错误。如果有人能帮助我,请查看我发布的输出:
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”。无论如何,为什么要有这么多内核,请只保留一些里程碑和最新的内核。