为什么我的启动分区已满?

为什么我的启动分区已满?

当我跑步时apt-get dist-upgrade,我得到

update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools (0.142) ...
update-initramfs: Generating /boot/initrd.img-6.0.0-6-amd64
zstd: error 25 : Write error : No space left on device (cannot write compressed block) 
E: mkinitramfs failure zstd -q -9 -T0 25
update-initramfs: failed for /boot/initrd.img-6.0.0-6-amd64 with 1.
dpkg: error processing package initramfs-tools (--configure):
 installed initramfs-tools package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
 initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

那个说生成失败的文件在这里,/boot/initrd.img-6.0.0-6-amd64你可以看到它有70M。

$ exa -l /boot/initrd.img-6.0.0-6-amd64
.rw-r--r-- 73M root 22 Dec 10:51 /boot/initrd.img-6.0.0-6-amd64

它说无法生成该文件,但该文件就在那里。此外,如果我跳到启动,我可以看到仍然有 69 MB 的空间,

# dd if=/dev/zero of=zero bs=1MB
dd: error writing 'zero': No space left on device
70+0 records in
69+0 records out
69255168 bytes (69 MB, 66 MiB) copied, 0.0888701 s, 779 MB/s

为什么我收到磁盘上没有空间的错误,并且/boot/initrd.img-6.0.0-6-amd64在以下情况下无法生成:

  • 在那
  • 磁盘上剩余 69 MB。

我可以用这个重现这个错误

update-initramfs -u -k 6.0.0-6-amd64

这实际上是在幕后调用它来生成错误,

mkinitramfs -o /boot/initrd.img-6.0.0-6-amd64.new 6.0.0-6-amd64

答案1

.rw-r--r-- 73M 根 12 月 22 日 10:51 /boot/initrd.img-6.0.0-6-amd64

[...]

它说无法生成该文件,但该文件就在那里。此外,如果我跳到启动,我可以看到仍然有 69 MB 的空间,这实际上是在幕后调用它来生成错误,

mkinitramfs -o /boot/initrd.img-6.0.0-6-amd64.new 6.0.0-6-amd64

mkinitramfs.new尝试使用不存在的扩展名写入临时文件。如果它需要 73MB,而您只有 69MB,那么失败是有道理的。

答案2

我不确定这里发生了什么,但我删除了启动中带有该版本号的所有内容

rm /boot/*6.0.0-6*

然后我 reran dist-upgrade,它只为我运行的内核生成 initramfs 6.0.0-4,

update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools (0.142) ...
update-initramfs: Generating /boot/initrd.img-6.0.0-4-amd64
mkinitramfs -o /boot/initrd.img-6.0.0-4-amd64.new 6.0.0-4-amd64

有趣的是,使用dpkg -l我可以看到,即使我使用 rm 删除了6.0.0-6系统中的所有内容想法该软件包linux-image-6.0.0-6-amd64已成功安装:该软件包必须安装内核并视为成功,无论 initramfs 生成是否有效。

我所做的是运行

sudo apt-get --reinstall install linux-image-6.0.0-6-amd64

再一次尝试整个事情,它成功了..

相关内容