![为什么我的启动分区已满?](https://linux22.com/image/214842/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%E5%90%AF%E5%8A%A8%E5%88%86%E5%8C%BA%E5%B7%B2%E6%BB%A1%EF%BC%9F.png)
当我跑步时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
再一次尝试整个事情,它成功了..