나는 Meltdown 패치를 출시한 이후 Ubuntu 서버의 커널을 업그레이드해 왔습니다. 나는 거의 모든 서버에서 apt autoremove
시스템에 아직 존재하는 오래된 커널을 정리하기 위해 재부팅 후 이 프로그램을 두 번 실행해야 한다는 것을 알았습니다 .
처음으로 실행하면 먼저 두 가지 이전 버전의 커널이 제거됩니다.
% sudo apt autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
linux-headers-4.4.0-103 linux-headers-4.4.0-103-generic linux-headers-4.4.0-104 linux-headers-4.4.0-104-generic linux-image-4.4.0-103-generic linux-image-4.4.0-104-generic
linux-image-extra-4.4.0-103-generic linux-image-extra-4.4.0-104-generic
0 upgraded, 0 newly installed, 8 to remove and 2 not upgraded.
After this operation, 596 MB disk space will be freed.
그러나 작업이 완료된 후 apt autoremove
다시 실행하면 이전 버전이 제거됩니다.
% sudo apt autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
linux-headers-4.4.0-96 linux-headers-4.4.0-96-generic linux-image-4.4.0-96-generic linux-image-extra-4.4.0-96-generic
0 upgraded, 0 newly installed, 4 to remove and 2 not upgraded.
After this operation, 298 MB disk space will be freed.
왜 한 번에 할 수 없는지 궁금합니다.
답변1
특히, 커널의 유지 관리자 스크립트는 /etc/kernel/postinst.d/apt-auto-removal
커널 목록을 작성하여 이를 APT 구성으로 유지하고 저장합니다 /etc/apt/apt.conf.d/01autoremove-kernels
. 이 프로세스는 현재 실행 중인 커널, 구성 중인 커널 및 가장 최근에 설치된 두 개의 커널을 유지합니다.
아마도 첫 번째 정리 전에 스크립트가 마지막으로 실행되었을 때 -96
이러한 범주 중 하나에 속했기 때문에 결국 보호되었습니다. 첫 번째 정리 후에는 더 이상 작동하지 않으며 삭제 후보가 됩니다. 당신이 그것을 알아내고 싶다면왜, 이 01autoremove-kernels
파일에는 디버깅 정보가 포함되어 있습니다. 첫 번째 정리 전후에 다시 살펴보면 다른 커널 버전이 보호되는 이유를 알 수 있습니다.
커널 자동 제거는 의도적으로 보수적이고 지나치게 조심스럽습니다. ;를 사용하면 자동으로 (결국) 이를 처리할 수 있습니다 unattended-upgrades
. 바라보다우분투 위키더 알아보기.