我刚刚从 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) 和当前正在运行的内核。