磁盘空间不足时 initramfs 出现问题

磁盘空间不足时 initramfs 出现问题

我刚刚从 10.10 升级到 11.04。在升级过程中,系统提示设置 initramfs-tools 时出现问题,我需要执行 sudo dpkg --configure -a

所以当我第一次启动 11.04 时,我这样做了。这是输出。

Setting up initramfs-tools (0.98.8ubuntu3) ...
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-2.6.38-8-generic

gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-2.6.38-8-generic
dpkg: error processing initramfs-tools (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 initramfs-tools

经过一番搜索,我发现这似乎是我的 /boot 分区空间不足的问题。它只有 100 MB,以前从来没有出现过这个问题,但尽管删除了所有内核,只留下最新的内核,我仍然收到相同的消息。

答案1

100MB 足以容纳 2 个内核和一个 init ramdisk。您可以通过执行以下命令查看当前安装的内核:

dpkg -l 'linux-image-*' | grep '^ii'

示例输出:

ii  linux-image-2.6.35-28-generic        2.6.35-28.50                               Linux kernel image for version 2.6.35 on x86/x86_64
ii  linux-image-2.6.38-8-generic         2.6.38-8.42                                Linux kernel image for version 2.6.38 on x86/x86_64
ii  linux-image-generic                  2.6.38.8.22                                Generic Linux kernel image

确认最新内核能用后,就可以把之前的内核删除了,此时就只有一个冗余内核了:

sudo apt-get purge linux-image-2.6.35-28-generic

如果该过程由于之前的安装触发器而未完成,请尝试在 之前添加-f( --fix-broken) purge

答案2

我建议你看看占用了什么空间/boot/

find /boot/ -type f | xargs du | sort -n

然后,如果您发现大量占用空间的资源,您可以查看它们来自哪个包:

dpkg -S /boot/some-large-file

如果不再需要该软件包,您可以将其删除。但是,请务必小心,不要删除您需要的内容 - 尤其是引导加载程序 (grub) 和当前正在运行的内核。

相关内容