오래된 커널 이미지를 제거하는 방법

오래된 커널 이미지를 제거하는 방법

현재 POP_OS 20.04(LTS)를 실행 중입니다. 터미널을 열고 명령을 실행하면,

dpkg --list | grep linux-image

현재(6.0.12)와 최신(5.17.5) 모두 설치된 것으로 보이는 이미지 목록, 버전 세트 5.0의 약 9개 이미지와 버전 세트 5.3의 6개 이미지, 그리고 4.18의 이미지 1개와 1개의 이미지를 반환합니다. 5.4부터. 콘솔에 오래된 이미지가 표시됨

이전에는 시냅틱을 사용하여 시스템에서 이전 커널을 제거했지만 어떤 이유로 linux-image를 검색하면(그리고 설치된 이미지를 맨 위로 정렬) 현재 및 최신 커널만 Installed로 표시됩니다. ~ 상자는 다음과 같습니다. 녹색. 이러한 이전 5.0/5.3 이미지는 검색 결과에 표시되지 않습니다. 오래된 이미지는 시냅스에 나타나지 않습니다

Stacer 제거 프로그램도 이를 찾을 수 없습니다. 스테이서가 오래된 이미지를 찾을 수 없습니다

왜 이러한 이미지가 콘솔에는 표시되지만 시냅스에는 표시되지 않는지 말해 줄 수 있는 사람이 있나요? 그들은 시스템에서 무엇을 하고 있나요? 정말 시스템에 있나요? 내 집 파티션의 공간을 차지하는 경우안전하게 삭제하려면 어떻게 해야 하나요??

염두에 두어야 할 고려 사항 중 하나는 시스템이 POP_OS 버전 18.10으로 시작되었으며 각 버전이 20.04(LTS)로 업그레이드되었다는 것입니다.이것이 그것과 관련이 있는지는 확실하지 않지만. 또 다른 생각은 이것이 복구 파티션과 관련이 있을 수 있다는 것입니다. 그러나 그렇게 많은 버전의 커널이 어떻게, 왜 필요한지, 왜 그렇게 어수선한 방식으로 축적되는지 모르겠습니다.

답변1

소개하다:

당신과 데비안 및 그 파생 제품의 다른 모든 사용자와 마찬가지로 나도 이전 커널을 정리할 방법이 필요했습니다. 그런데 제가 인터넷에서 찾은 내용은거의 완벽하다-현재 코어를 제외한 모든 코어를 제거했습니다.- 하지만 불행하게도 그들은 또한 삭제합니다최신업그레이드하고 싶은 버전입니다.

해결책:

다음 텍스트 줄——좀 더 우아한 글쓰기 방법이 있을 수 있어요- 이 두 개를 제외한 모든 코어를 제거합니다.현재의그리고최신핵심. 나는 내 개밥을 먹으며 테스트를 거쳐 내 Ubuntu 22.04 호스트에서 작동하는 것으로 알려져 있다고 말할 수 있습니다.

시험(변경 사항은 적용되지 않습니다):

dpkg --list | grep -v $(uname -r) | grep -E 'linux-image-[0-9]|linux-headers-[0-9]' | awk '{print $2" "$3}' | sort -k2,2 | head -n -2 | awk '{print $1}' | xargs sudo apt-get purge

변경 승인( 위 명령 -y의 경우 ):apt-get purge

dpkg --list | grep -v $(uname -r) | grep -E 'linux-image-[0-9]|linux-headers-[0-9]' | awk '{print $2" "$3}' | sort -k2,2 | head -n -2 | awk '{print $1}' | xargs sudo apt-get -y purge

작동 방식:

1 부: 모든 코어와 헤더를 나열합니다.들어오지 못하게 하다( grep -V) 현재 항목:

dpkg --list | grep -v $(uname -r) | grep -E 'linux-image-[0-9]|linux-headers-[0-9]'

2 부dpkg --list: 출력에서 ​​커널과 헤더가 포함된 열만 인쇄합니다.

dpkg --list | grep -v $(uname -r) | grep -E 'linux-image-[0-9]|linux-headers-[0-9]' | awk '{print $2" "$3}'

세 번째 부분: 다음으로 두 번째 열을 기준으로 오름차순으로 목록을 정렬합니다.

dpkg --list | grep -v $(uname -r) | grep -E 'linux-image-[0-9]|linux-headers-[0-9]' | awk '{print $2" "$3}' | sort -k2,2

4부:목록 인쇄들어오지 못하게 하다마지막 (2) 줄은 커널과 헤더입니다최신커널 버전:

dpkg --list | grep -v $(uname -r) | grep -E 'linux-image-[0-9]|linux-headers-[0-9]' | awk '{print $2" "$3}' | sort -k2,2 | head -n -2

다섯 번째 부분: 두 번째 열을 정렬한 후 커널 및 헤더 패키지 이름만 인쇄합니다.

dpkg --list | grep -v $(uname -r) | grep -E 'linux-image-[0-9]|linux-headers-[0-9]' | awk '{print $2" "$3}' | sort -k2,2 | head -n -2 | awk '{print $1}'

6부: 마지막으로 두 가지를 모두 제외하고 목록을 구성한 후현재의그리고최신xargs커널 버전에서는 모든 라인을 씹어먹기 위해 피드를 제공합니다.apt-get -y purge

dpkg --list | grep -v $(uname -r) | grep -E 'linux-image-[0-9]|linux-headers-[0-9]' | awk '{print $2" "$3}' | sort -k2,2 | head -n -2 | awk '{print $1}' | xargs sudo apt-get -y purge

결론적으로:

위의 내용을 작성하는 더 우아하고 간결한 방법이 있을 수 있지만 이 방법이 제 역할을 합니다. 어쨌든, 이것이 당신을 구해주기를 바랍니다 -다른 사람- 좀 있다가-

답변2

rc각 줄 시작 부분의 태그는 패키지가 제거되었지만 구성되었음을 나타냅니다.구성 파일을 제외한 모든 내용이 삭제되었습니다. 기본적으로 이 상태의 패키지는 Synaptic에 표시되지 않습니다.

제거하려는 패키지를 나열하여 사용 sudo dpkg --purge하거나 제거 할 수 있습니다 .sudo apt purgesudo apt autoremove --purge ~해야 한다나열하지 않고 자동으로 지웁니다.

관련 정보