내가 달릴 때 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
파일을 생성할 수 없다고 하는데 파일이 존재합니다. 그리고 점프해서 부팅해보면 아직 69MB의 공간이 남아있는 것을 볼 수 있는데,
# 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
다음과 같은 경우 디스크에 공간 없음 오류가 발생하고 빌드할 수 없는 이유는 무엇입니까 ?
- 저기
- 디스크에 69MB가 남아 있습니다.
이것을 사용하여 오류를 재현할 수 있습니다.
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
[...]
파일을 생성할 수 없다고 하는데 파일이 존재합니다. 또한 부팅으로 이동하면 여전히 69MB의 공간이 있음을 알 수 있습니다. 이는 실제로 오류를 생성하기 위해 뒤에서 호출하는 것입니다.
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*
그런 다음 다시 실행하여 dist-upgrade
6.0.0-4를 실행 중인 커널에 대한 initramfs만 생성했습니다.
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
흥미롭게도 rm을 사용하면 rm을 사용하여 시스템의 모든 항목을 dpkg -l
삭제했음에도 불구하고 이를 알 수 있습니다.6.0.0-6
아이디어패키지가 linux-image-6.0.0-6-amd64
성공적으로 설치되었습니다. 패키지는 initramfs 빌드가 유효한지 여부에 관계없이 커널을 설치하고 성공한 것으로 간주되어야 합니다.
내가 한 일은 실행이었다.
sudo apt-get --reinstall install linux-image-6.0.0-6-amd64
모든 것을 다시 시도해 보았더니 효과가 있었습니다..