"linux-image-...그러나 설치되지 않음"/"쓸 수 없음(장치에 남은 공간 없음)" 문제를 해결하기 위해 디스크 공간을 확보하기 위해 이전 커널 이미지를 제거할 수 없습니다.

"linux-image-...그러나 설치되지 않음"/"쓸 수 없음(장치에 남은 공간 없음)" 문제를 해결하기 위해 디스크 공간을 확보하기 위해 이전 커널 이미지를 제거할 수 없습니다.

내가 실행하거나 sudo apt-get upgrade반환 sudo apt-get autoremove하면 :

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 linux-image-amd64 : Depends: linux-image-5.10.0-16-amd64 (= 5.10.127-2) but it is not installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

그런 다음 실행하면 sudo apt --fix-broken install다음이 반환됩니다.

[...]
Preparing to unpack .../linux-image-5.10.0-16-amd64_5.10.127-2_amd64.deb ...
Unpacking linux-image-5.10.0-16-amd64 (5.10.127-2) ...
dpkg: error processing archive /var/cache/apt/archives/linux-image-5.10.0-16-amd64_5.10.127-2_amd64.deb (--unpack):
 cannot copy extracted data for './boot/vmlinuz-5.10.0-16-amd64' to '/boot/vmlinuz-5.10.0-16-amd64.dpkg-new': failed to write (No space left on device)
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/linux-image-5.10.0-16-amd64_5.10.127-2_amd64.deb

두 번째 Debian11/KDE 컴퓨터에서도 같은 오류 메시지와 함께 거의 같은 오류가 발생했습니다.

거기에서 나는 그것을 사용하여 해결할 수 있습니다이 두 명령은 여기에서 나옵니다.부팅 파티션의 디스크 공간을 확보합니다. 그러나 원치 않는 커널 이미지를 제거하는 명령은 이 컴퓨터에서 작동하지 않습니다.

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e '[0-9]'

많은 커널 이미지 파일 이름이 표시되지만 전체 명령을 실행하면

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e '[0-9]' | xargs sudo apt -y purge

삭제되지는 않습니다. 이전 명령을 실행해도 동일한 파일 이름이 계속 표시되고 디스크 공간이 확보되지 않으므로 문제가 여전히 존재합니다. 위의 출력은 다음과 같습니다.

The following packages have unmet dependencies:
linux-headers-amd64 : Depends: linux-headers-5.10.0-14-amd64 (= 5.10.113-1) but it is not going to be installed
linux-image-amd64 : Depends: linux-image-5.10.0-16-amd64 (= 5.10.127-2) but it is not going to be installed E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

  • 우선, 업그레이드가 원활하게 실행되고 쉬워야 하기 때문에 이 중 어느 것도 필요하지 않습니다. 기본적으로 대부분의 할머니는 이를 수행할 수 있습니다. 사용 가능한 디스크 공간에 문제가 있는 경우사용자에게 메시지를 표시해야 합니다.(업그레이드하는 경우 콘솔과 앱과 같은 GUI에서) 필요한 디스크 공간과 위치에 따라 이전 커널 이미지를 지우거나(위 명령을 사용할 수도 있음) 실행하거나 sudo rm -rf /var/cache/apt/archives/*지우 /tmp거나 실행하는 등의 작업을 수행합니다. sudo apt-get autoremove/autoclean필요한 디스크 공간을 계산하고 여유 공간이 충분한지 확인해야 합니다. 또는 여유 공간이 부족한 경우 한 번에 하나의 업그레이드를 실행하고 각 업그레이드 후에 정리하거나 사용자에게 알리고 디스크 공간이 충분할 때까지 업그레이드를 중단하여 문제를 방지할 수 있습니다. 이는 별도의 문제/문제일 수 있습니다. 매우 불편하고, 구식이며, 안전하지 않고, 사용자 친화적이지 않습니다.
  • 오래된 커널 이미지를 제거하는 방법필요한 디스크 공간을 확보하시겠습니까? 이것이 이 문제를 해결하는 데 권장되는 방법이 아닌 경우(역시 다른 컴퓨터에서는 작동했지만 이 문제가 발생했습니다) 해결 방법을 추가해 주십시오.

답변1

첫 번째 요점에 대해서는 도움을 드릴 수 없습니다. 두 번째 문제를 해결하려면 임시로 linux-headers-amd64및 다음을 제거해야 합니다 linux-image-amd64.

sudo apt remove linux-{headers,image}-amd64

그런 다음 실행 중인 커널에 해당하는 패키지를 제외하고 설치된 모든 커널 패키지를 명시적으로 제거합니다.

dpkg -l linux-{image,headers}-"[0-9]*" | awk "NR>5 && \!/^un/ && \!/$(uname -r | cut -d- -f-2)/ { print \$2 }" | xargs sudo apt -y purge

마지막으로 최신 커널을 설치합니다.

sudo apt install linux-{headers,image}-amd64

이를 설치하면 unattended-upgrades더 이상 필요하지 않을 때 자동으로 설치된 커널이 제거됩니다.

관련 정보