사용하지 않는 다른 커널을 모두 자동으로 제거하려면 어떻게 해야 합니까?
그래서 이것이 내 상황입니다.
- 다양한 버전의 Ubuntu/CentOS 사용
- 자동 업데이트가 켜져 있습니다. -> Linux는 많은 새로운 커널 버전을 다운로드합니다.
- 이제 현재 사용 중인 버전을 제외한 다른 모든 커널 버전을 제거하고 싶습니다.
암호:
#find out current kernel version:
uname -r
#check which versions are downloaded to computer
dpkg --get-selections | grep linux-image
#delete desired kernel
sudo apt-get purge [KERNEL]
#autoremove
sudo apt-get autoremove
Linux에는 쉽게 15개가 넘는 코어가 있으며, 저는 50개가 넘는 Linux를 살펴보아야 했습니다.
답변1
Ubuntu에서는 purge-old-kernels
이전 커널 제거를 사용하여 설치할 수 있습니다.
우분투 16.04의 경우
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F430BBA5
sudo add-apt-repository ppa:byobu/ppa
sudo apt-get update
sudo apt-get install byobu
다음을 추가하지 않고도 설치할 수 있습니다 ppa
.sudo apt-get install byobu
16.04보다 낮은 Ubuntu 버전의 경우
sudo add-apt-repository ppa:bikeshed/ppa
sudo apt-get update
sudo apt-get install bikeshed
최신 2개의 코어를 유지하려면 다음 명령을 실행하십시오.
sudo purge-old-kernels
n
예약할 코어 수를 지정할 수 있습니다 .
sudo purge-old-kernels --keep n
n=1
:
sudo purge-old-kernels --keep 1
centOS에 패키지를 설치합니다 yum-utils
.
yum install yum-utils
최신 n
커널을 유지하려면 다음을 실행하세요.
package-cleanup --oldkernels --count=n
n=1
:
package-cleanup --oldkernels --count=1
답변2
Centos 8 이상의 경우 다음 명령을 사용할 수 있습니다.
dnf remove --oldinstallonly
그러면 이전 버전의 커널이 모두 제거됩니다. 갖고 싶을때 사용하세요최신만설치된 커널의 배포 버전입니다.
내 원래 대답은 다음과 같습니다.https://unix.stackexchange.com/a/628434/145515
답변3
이 명령은 모든 주요 버전 4 커널 이미지와 헤더를 제거하지만 실행 중인 커널 이미지와 헤더는 제거하지 않습니다.
apt purge $(dpkg-query -W -f='${binary:Package}\n' 'linux-image-4*' 'linux-headers-4*' | grep -v $(uname -r))
답변4
다음 명령을 시도해 볼 수 있습니다. apt-get purge를 실행하기 전에 grep의 출력에 현재 커널 버전이 포함되어 있지 않은지 다시 확인하십시오.
dpkg --list | grep linux-image | awk '{print $2}' | grep -v linux-image-`uname -r` | xargs apt-get purge