Ubuntu에서 특정 리눅스 커널 버전을 삭제하는 방법을 소개합니다.
커널을 최신 버전으로 업데이트했는데, 내 컴퓨터의 하드웨어와 호환 문제가 있거나 다른 이유로 부팅이 안될 때가 있습니다. 또는 부팅은 잘 되는데 화면이 버벅이거나 해상도가 이상할 때가 있습니다. 이럴 때, 최신 버전의 커널을 삭제하고 싶을 수가 있습니다.
uname -r
명령어로 현재 동작 중인 커널 버전을 확인할 수 있습니다. 잘 동작하는 커널 버전이라면 이 커널을 지우시면 안되겠죠?
$ uname -r
5.11.0-46-generic
아래 명령어로 내 PC에 설치된 모든 커널 버전을 확인할 수 있습니다. 저는 linux-image-5.13.0-27-generic
버전을 삭제해야 합니다.
$ dpkg --list | grep linux-image
rc linux-image-5.11.0-36-generic 5.11.0-36.40~20.04.1 amd64 Signed kernel image generic
rc linux-image-5.11.0-37-generic 5.11.0-37.41~20.04.2 amd64 Signed kernel image generic
rc linux-image-5.11.0-38-generic 5.11.0-38.42~20.04.1 amd64 Signed kernel image generic
rc linux-image-5.11.0-40-generic 5.11.0-40.44~20.04.2 amd64 Signed kernel image generic
rc linux-image-5.11.0-43-generic 5.11.0-43.47~20.04.2 amd64 Signed kernel image generic
rc linux-image-5.11.0-44-generic 5.11.0-44.48~20.04.2 amd64 Signed kernel image generic
ii linux-image-5.11.0-46-generic 5.11.0-46.51~20.04.1 amd64 Signed kernel image generic
rc linux-image-5.13.0-27-generic 5.13.0-27.29~20.04.1 amd64 Signed kernel image generic
삭제해야 할 커널 버전을 알았다면, 아래 명령어로 삭제할 수 있습니다. 터미널에 sudo apt-get purge [kernel version]
을 입력하시면 됩니다.
$ sudo apt-get purge linux-image-unsigned-5.13.0-27-generic
Reading package lists... Done
Building dependency tree
Reading state information... Done
....
삭제가 완료되었다면, 아래 명령어로 커널이 정말 삭제되었는지 다시 확인해볼 수 있습니다.
$ dpkg --list | grep linux-image
rc linux-image-5.11.0-36-generic 5.11.0-36.40~20.04.1 amd64 Signed kernel image generic
rc linux-image-5.11.0-37-generic 5.11.0-37.41~20.04.2 amd64 Signed kernel image generic
rc linux-image-5.11.0-38-generic 5.11.0-38.42~20.04.1 amd64 Signed kernel image generic
rc linux-image-5.11.0-40-generic 5.11.0-40.44~20.04.2 amd64 Signed kernel image generic
rc linux-image-5.11.0-43-generic 5.11.0-43.47~20.04.2 amd64 Signed kernel image generic
rc linux-image-5.11.0-44-generic 5.11.0-44.48~20.04.2 amd64 Signed kernel image generic
ii linux-image-5.11.0-46-generic 5.11.0-46.51~20.04.1 amd64 Signed kernel image generic
rc linux-image-5.13.0-27-generic 5.13.0-27.29~20.04.1 amd64 Signed kernel image generic
커널이 삭제되었으니, 부팅 화면에 보이는 커널 리스트도 업데이트해줘야 합니다.
sudo update-grub
을 입력하시면 grub 화면에 보이는 리스트를 업데이트합니다. 명령어 수행 중 출력되는 로그에 삭제한 커널 버전이 없으면 됩니다.
$ sudo update-grub
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.11.0-46-generic
Found initrd image: /boot/initrd.img-5.11.0-46-generic
Found linux image: /boot/vmlinuz-5.8.0-50-generic
Found initrd image: /boot/initrd.img-5.8.0-50-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 10 on /dev/sdb1
done