通过以下方式删除内核时,我得到了以下输出dpkg --purge
:
正在删除 linux-headers-3.13.0-112-generic (3.13.0-112.159) ... 正在删除 linux-image-extra-3.13.0-112-generic (3.13.0-112.159) ... 运行部分:执行 /etc/kernel/postinst.d/apt-auto-removal 3.13.0-112-generic /boot/vmlinuz-3.13.0-112-generic 运行部分:执行 /etc/kernel/postinst.d/initramfs-tools 3.13.0-112-generic /boot/vmlinuz-3.13.0-112-generic update-initramfs:生成 /boot/initrd.img-3.13.0-112-generic W:TMPDIR 以 noexec 方式挂载,不会缓存运行脚本。 gzip:stdout:设备上没有剩余空间 E:mkinitramfs 失败 cpio 141 gzip 1 update-initramfs: /boot/initrd.img-3.13.0-112-generic 1 失败。 运行部分:/etc/kernel/postinst.d/initramfs-tools 退出,返回代码 1 dpkg: 处理软件包 linux-image-extra-3.13.0-112-generic (--purge) 时出错: 子进程安装后删除脚本返回错误退出状态 1 正在删除 linux-image-3.13.0-112-generic (3.13.0-112.159) ... 检查 /etc/kernel/postrm.d 。 运行部分:执行 /etc/kernel/postrm.d/initramfs-tools 3.13.0-112-generic /boot/vmlinuz-3.13.0-112-generic update-initramfs:删除 /boot/initrd.img-3.13.0-112-generic 运行部分:执行 /etc/kernel/postrm.d/zz-update-grub 3.13.0-112-generic /boot/vmlinuz-3.13.0-112-generic 正在生成 grub 配置文件... 警告:当设置了 GRUB_HIDDEN_TIMEOUT 时,不再支持将 GRUB_TIMEOUT 设置为非零值。 找到 Linux 映像:/boot/vmlinuz-4.4.0-71-generic 找到 initrd 映像:/boot/initrd.img-4.4.0-71-generic 找到 Linux 映像:/boot/vmlinuz-4.4.0-67-generic 找到 initrd 映像:/boot/initrd.img-4.4.0-67-generic 找到 Linux 映像:/boot/vmlinuz-4.4.0-66-generic 找到 initrd 映像:/boot/initrd.img-4.4.0-66-generic 找到 Linux 映像:/boot/vmlinuz-4.4.0-64-generic 找到 initrd 映像:/boot/initrd.img-4.4.0-64-generic 找到 Linux 映像:/boot/vmlinuz-3.13.0-115-generic 找到 initrd 映像:/boot/initrd.img-3.13.0-115-generic 找到 Linux 映像:/boot/vmlinuz-3.13.0-113-generic 找到 initrd 映像:/boot/initrd.img-3.13.0-113-generic 找到 memtest86+ 映像:/memtest86+.elf 找到 memtest86+ 映像:/memtest86+.bin 未找到卷组 完毕 清除 linux-image-3.13.0-112-generic (3.13.0-112.159) 的配置文件... 检查 /etc/kernel/postrm.d 。 运行部分:执行 /etc/kernel/postrm.d/initramfs-tools 3.13.0-112-generic /boot/vmlinuz-3.13.0-112-generic 运行部分:执行 /etc/kernel/postrm.d/zz-update-grub 3.13.0-112-generic /boot/vmlinuz-3.13.0-112-generic 处理时遇到错误: Linux-image-extra-3.13.0-112-通用
为什么即使清除了也会用尽空间?在这种情况下,这不是 inode 问题。
注意:在安装内核期间或安装内核时,还会出现其他错误dpkg --configure
。系统磁盘空间不足是可以理解的,但在这种情况下,我正在清除内核 - 具体来说是一个 linux-image-extra 包dpkg
。在这种情况下没有依赖性问题。例如在这个一种解决方案可能是直接通过 清除内核包dpkg
,但是这个问题在这样做时会产生错误。
答案1
清除 linux-image-extra 软件包时,会运行安装后脚本,因为该内核版本的主 linux-image 软件包可能仍留在系统中:相应的 initrd.img 将被修改为不包含 extra 的内容;此过程会使其大小减小。但是,在此过程中,旧的 initrd.img 文件不会从“/boot”中删除,而会在“/boot”旁边创建新文件,因此存在空间不足的风险。
修复方法是在不同的分区中创建新的 initrg.img 文件,然后用它替换旧文件update-initramfs
。所以update-initramfs
脚本应该被修复了。
一种解决方法是在运行dpkg --purge
linux-image-extra 包之前删除相应版本的 /boot/initrd.img 文件。在这种情况下也可以这样做sudo update-initramfs -d -k 3.13.0-112-generic
,因为我要删除的内核是“3.13.0-112-generic”。