내 부팅 파티션이 가득 찬 이유는 무엇입니까?

내 부팅 파티션이 가득 찬 이유는 무엇입니까?

내가 달릴 때 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-amd6470M인 것을 볼 수 있습니다.

$ 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-upgrade6.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

모든 것을 다시 시도해 보았더니 효과가 있었습니다..

관련 정보