Hoje me deparei com um problema de falta de espaço na partição /boot do Ubuntu ao tentar fazer algumas atualizações.
Tentei vários comandos de limpeza de pacote, como por exemplo, sudo apt-get autoremove
e sudo apt-get clean
, na tentativa de liberar espaço no /boot mas sem sucesso.
O problema é que eu tinha várias versões antigas do kernel instaladas que poderiam ser removidas. Vejam:
$ ls -l /boot/
total 184820
-rw-r--r-- 1 root root 1270654 Ago 12 2015 abi-3.19.0-26-generic
-rw-r--r-- 1 root root 1271100 Set 1 2015 abi-3.19.0-28-generic
-rw-r--r-- 1 root root 1271518 Out 2 2015 abi-3.19.0-30-generic
-rw-r--r-- 1 root root 1271689 Out 8 2015 abi-3.19.0-31-generic
-rw-r--r-- 1 root root 1271689 Out 22 2015 abi-3.19.0-32-generic
-rw-r--r-- 1 root root 1271689 Nov 6 18:39 abi-3.19.0-33-generic
-rw-r--r-- 1 root root 177632 Ago 12 2015 config-3.19.0-26-generic
-rw-r--r-- 1 root root 177651 Set 1 2015 config-3.19.0-28-generic
-rw-r--r-- 1 root root 177730 Out 2 2015 config-3.19.0-30-generic
-rw-r--r-- 1 root root 177790 Out 8 2015 config-3.19.0-31-generic
-rw-r--r-- 1 root root 177790 Out 22 2015 config-3.19.0-32-generic
-rw-r--r-- 1 root root 177790 Nov 6 18:39 config-3.19.0-33-generic
drwxr-xr-x 5 root root 4096 Fev 21 09:41 grub
-rw-r--r-- 1 root root 19785857 Ago 24 2015 initrd.img-3.19.0-26-generic
-rw-r--r-- 1 root root 19792337 Set 24 2015 initrd.img-3.19.0-28-generic
-rw-r--r-- 1 root root 19796539 Out 18 2015 initrd.img-3.19.0-30-generic
-rw-r--r-- 1 root root 19795835 Out 27 20:27 initrd.img-3.19.0-31-generic
-rw-r--r-- 1 root root 19794422 Nov 7 08:17 initrd.img-3.19.0-32-generic
-rw-r--r-- 1 root root 19795583 Abr 10 21:46 initrd.img-3.19.0-33-generic
-rw-r--r-- 1 root root 176500 Mar 12 2014 memtest86+.bin
-rw-r--r-- 1 root root 178176 Mar 12 2014 memtest86+.elf
-rw-r--r-- 1 root root 178680 Mar 12 2014 memtest86+_multiboot.bin
-rw------- 1 root root 3626965 Ago 12 2015 System.map-3.19.0-26-generic
-rw------- 1 root root 3626779 Set 1 2015 System.map-3.19.0-28-generic
-rw------- 1 root root 3627906 Out 2 2015 System.map-3.19.0-30-generic
-rw------- 1 root root 3628177 Out 8 2015 System.map-3.19.0-31-generic
-rw------- 1 root root 3628149 Out 22 2015 System.map-3.19.0-32-generic
-rw------- 1 root root 3628149 Nov 6 18:39 System.map-3.19.0-33-generic
-rw------- 1 root root 6570192 Ago 12 2015 vmlinuz-3.19.0-26-generic
-rw------- 1 root root 6568848 Set 1 2015 vmlinuz-3.19.0-28-generic
-rw------- 1 root root 6572496 Out 2 2015 vmlinuz-3.19.0-30-generic
-rw------- 1 root root 6572336 Out 8 2015 vmlinuz-3.19.0-31-generic
-rw------- 1 root root 6572944 Out 22 2015 vmlinuz-3.19.0-32-generic
-rw------- 1 root root 6572432 Nov 6 18:39 vmlinuz-3.19.0-33-generic
A solução é remover os pacotes de kernel mais antigos que não estão em uso, deixando apenas o kernel mais atual.
Para listar todos os kernels instalados, execute:
dpkg -l linux-image-\* | grep ^ii
Para mostrar a versão atual do kernel, execute:
uname -r
Um comando para mostrar todos os kernels e cabeçalhos que podem ser removidos, excluindo o kernel atual:
kernelver=$(uname -r | sed -r 's/-[a-z]+//')
dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve $kernelver
O comando a seguir, seleciona todos os pacotes com o nome começando com linux-headers-<algum número>
ou linux-image-<algum número>
, imprime os nomes dos pacotes instalados e, em seguida, exclui todos menos o kernel mais recente.
sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')")
Obs: Removendo o pacote linux-image-x.x.x-x também irá remover linux-image-x.x.x x-genérico.
Fonte: http://askubuntu.com/questions/89710/how-do-i-free-up-more-space-in-boot