우분투 서버에 새 커널을 설치할 수 없습니다. 디스크 공간이 충분한 경우에도 "gzip: stdout: 장치에 남은 공간이 없습니다" 오류

우분투 서버에 새 커널을 설치할 수 없습니다. 디스크 공간이 충분한 경우에도 "gzip: stdout: 장치에 남은 공간이 없습니다" 오류

Ubuntu Server에 새 커널을 설치하려고 하는데 "gzip: stdout: no space left on device" 오류로 인해 완료할 수 없습니다. 다음을 실행한 후 전체 오류가 생성됩니다 sudo make modules_install install.

  INSTALL /lib/firmware/cpia2/stv0672_vp4.bin
  INSTALL /lib/firmware/yam/1200.bin
  INSTALL /lib/firmware/yam/9600.bin
  DEPMOD  3.16.0
sh ./arch/x86/boot/install.sh 3.16.0 arch/x86/boot/bzImage \
    System.map "/boot"
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.16.0 /boot/vmlinuz-3.16.0
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.16.0 /boot/vmlinuz-3.16.0
update-initramfs: Generating /boot/initrd.img-3.16.0

gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-3.16.0 with 1.
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
make[1]: *** [install] Error 1
make: *** [install] Error 2

df -h를 사용하여 디스크 공간을 확인했는데 결과는 다음과 같습니다.

Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/server--vg-root  103G   33G   66G  34% /
none                         4.0K     0  4.0K   0% /sys/fs/cgroup
udev                          63G  4.0K   63G   1% /dev
tmpfs                         13G  1.8M   13G   1% /run
none                         5.0M     0  5.0M   0% /run/lock
none                          63G  148K   63G   1% /run/shm
none                         100M   24K  100M   1% /run/user
/dev/sda1                    236M   62M  162M  28% /boot
/home/stan/.Private          103G   33G   66G  34% /home/stan

공간이 너무 많아서 왜 이런 오류가 발생하는지 이해할 수 없습니다. 나는 Debian과 OpenSUSE에서 똑같은 프로세스를 성공적으로 사용했습니다.

답변1

"make module_install install"은 162MB의 여유 공간이 있는 /boot 파티션에 initrd 이미지를 빌드하려고 시도하는데 이는 충분하지 않습니다.

Ubuntu에서 직접 커널을 컴파일하려면 /boot 파티션에 최소 1GB의 여유 공간을 준비해야 합니다.

답변2

/boot이는 파티션에 남은 공간이 많지 않을 때 발생합니다. 해결책은 이전 커널을 제거하고 공간을 확보하는 것입니다.

현재 설치된 커널 목록을 얻을 수 있습니다

[I] ~ ❯❯❯ dpkg -l | grep linux-image
rc  linux-image-4.19.0-6-amd64                       4.19.67-2+deb10u1                             amd64        Linux 4.19 for 64-bit PCs (signed)
rc  linux-image-5.10.0-2-amd64                       5.10.9-1                                      amd64        Linux 5.10 for 64-bit PCs (signed)
rc  linux-image-5.10.0-5-amd64                       5.10.24-1                                     amd64        Linux 5.10 for 64-bit PCs (signed)
rc  linux-image-5.10.0-6-amd64                       5.10.28-1                                     amd64        Linux 5.10 for 64-bit PCs (signed)
rc  linux-image-5.14.0-1-amd64                       5.14.6-3                                      amd64        Linux 5.14 for 64-bit PCs (signed)
rc  linux-image-5.14.0-2-amd64                       5.14.9-2                                      amd64        Linux 5.14 for 64-bit PCs (signed)
rc  linux-image-5.14.0-3-amd64                       5.14.12-1                                     amd64        Linux 5.14 for 64-bit PCs (signed)
rc  linux-image-5.14.0-4-amd64                       5.14.16-1                                     amd64        Linux 5.14 for 64-bit PCs (signed)
ic  linux-image-5.15.0-2-amd64                       5.15.5-2                                      amd64        Linux 5.15 for 64-bit PCs (signed)
rc  linux-image-5.15.0-3-amd64                       5.15.15-2                                     amd64        Linux 5.15 for 64-bit PCs (signed)
rc  linux-image-5.16.0-3-amd64                       5.16.11-1                                     amd64        Linux 5.16 for 64-bit PCs (signed)
rc  linux-image-5.17.0-1-amd64                       5.17.3-1                                      amd64        Linux 5.17 for 64-bit PCs (signed)
ii  linux-image-5.18.0-4-amd64                       5.18.16-1                                     amd64        Linux 5.18 for 64-bit PCs (signed)
ii  linux-image-5.19.0-2-amd64                       5.19.11-1                                     amd64        Linux 5.19 for 64-bit PCs (signed)
rc  linux-image-5.2.0-3-amd64                        5.2.17-1                                      amd64        Linux 5.2 for 64-bit PCs (signed)
rc  linux-image-5.3.0-2-amd64                        5.3.9-3                                       amd64        Linux 5.3 for 64-bit PCs (signed)
rc  linux-image-5.3.0-3-amd64                        5.3.15-1                                      amd64        Linux 5.3 for 64-bit PCs (signed)
rc  linux-image-5.4.0-1-amd64                        5.4.6-1                                       amd64        Linux 5.4 for 64-bit PCs (signed)
rc  linux-image-5.4.0-2-amd64                        5.4.8-1                                       amd64        Linux 5.4 for 64-bit PCs (signed)
rc  linux-image-5.4.0-3-amd64                        5.4.13-1                                      amd64        Linux 5.4 for 64-bit PCs (signed)
rc  linux-image-5.4.0-4-amd64                        5.4.19-1                                      amd64        Linux 5.4 for 64-bit PCs (signed)
rc  linux-image-5.5.0-2-amd64                        5.5.17-1                                      amd64        Linux 5.5 for 64-bit PCs (signed)
rc  linux-image-5.6.0-1-amd64                        5.6.7-1                                       amd64        Linux 5.6 for 64-bit PCs (signed)
rc  linux-image-5.6.0-2-amd64                        5.6.14-2                                      amd64        Linux 5.6 for 64-bit PCs (signed)
rc  linux-image-5.8.0-1-amd64                        5.8.7-1                                       amd64        Linux 5.8 for 64-bit PCs (signed)
rc  linux-image-5.8.0-2-amd64                        5.8.10-1                                      amd64        Linux 5.8 for 64-bit PCs (signed)
rc  linux-image-5.8.0-3-amd64                        5.8.14-1                                      amd64        Linux 5.8 for 64-bit PCs (signed)
rc  linux-image-5.9.0-1-amd64                        5.9.1-1                                       amd64        Linux 5.9 for 64-bit PCs (signed)
rc  linux-image-5.9.0-2-amd64                        5.9.6-1                                       amd64        Linux 5.9 for 64-bit PCs (signed)
rc  linux-image-5.9.0-4-amd64                        5.9.11-1                                      amd64        Linux 5.9 for 64-bit PCs (signed)
ii  linux-image-amd64                                5.19.11-1                                     amd64        Linux for 64-bit PCs (meta-package)

그런 다음 현재 커널 버전의 버전을 가져옵니다.

[I] ~ ❯❯❯ uname -r
5.19.0-2-amd64 

이제 명확한 패키지 이름을 사용하여 이전 커널을 설치해야 합니다 sudo apt purge <package-name>. 제거해야 할 패키지가 많으면 bash 매직을 사용할 수 있습니다.

sudo apt purge linux-image-5.{2,3,4,5,6,8,9,18}*

이 패턴은 실행 중인 현재 커널 버전과 일치하면 안 됩니다.

이전 커널을 제거한 후에는 많은 공간을 확보할 수 있습니다 /boot.

충분한 공간을 사용할 수 있게 되면 이제 업데이트된 커널 설치를 진행할 수 있습니다.

관련 정보