Este artigo explica como liberar espaço na partição/boot no Ubuntu, Debian, Linux Mint, Pop!_OS, elementary OS e outras distribuições Linux baseadas em Debian ou Ubuntu.
Se o apt estiver funcionando, você geralmente pode remover kernels antigos e não utilizados executando:
sudo apt autoremove
Exemplo:
$ sudo apt autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
linux-headers-4.18.0-15 linux-headers-4.18.0-15-generic
linux-image-5.0.0-11-generic linux-modules-4.18.0-15-generic
linux-modules-extra-4.18.0-15-generic
0 upgraded, 0 newly installed, 5 to remove and 0 not upgraded.
After this operation, 334 MB disk space will be freed.
Do you want to continue? [Y/n]
Você encontrará vários comandos complicados online para remover kernels antigos, mas não recomendo usá-los, pois eles podem remover algumas coisas indesejadas (veja o comentário de Andreas Jansson sobre esta resposta por exemplo). Supostamente, apt autoremove
funciona corretamente há algum tempo, e até mesmo o utilitário purge-old-kernels agora recomenda o uso de apt autoremove
.
Se você quiser usar o antigo utilitário purge-old-kernels
que foi fornecido com o Byobu há algum tempo (nas versões mais recentes, ele aponta apenas para apt autoremove
), você pode encontrá-lo aqui.
Uma maneira alternativa e fácil de usar de remover kernels antigos e não usados é usar o Synaptic Package Manager para pesquisar "linux-image
" e "linux-headers
" e remover todos, exceto a versão que você está usando no momento. Ou, para ser mais precário, você pode deixar a versão em execução e a anterior instalada e remover apenas os kernels mais antigos. Você pode ver o kernel que está em uso executando:
uname -r
Outro problema comum do Debian/Ubuntu/Linux Mint (e solução) em que você pode estar interessado: Como corrigir 'Could not get lock /var/lib/dpkg/lock - open (11 Resource temporarily unavailable)
Em algumas situações, você pode notar que sua partição/boot ficou cheia no meio de uma atualização do sistema, obtendo um erro ao tentar usar o apt que diz No space left on device
. Quando isso acontece, você não pode remover kernels antigos e não usados usando o apt. Como forma de corrigir isso, você pode remover manualmente as imagens do kernel de/boot. Este guia contém um exemplo que você terá que adaptar para sua versão atual do kernel em execução e versões antigas e não utilizadas do kernel.
Caso você não consiga mais inicializar o Ubuntu porque o disco está cheio, siga os procedimentos abaixo no modo de recuperação (reinicie o computador, segure a tecla Shift (com BIOS) ou Esc (com UEFI) para obter ao menu grub, selecione o modo de recuperação e, finalmente, escolha a opção "Sair para prompt do shell de root").
Comece listando todos os kernels disponíveis em/boot:
ls -l /boot
Saída de amostra:
$ ls -l /boot
total 242072
-rw-r--r-- 1 root root 217065 Feb 7 11:10 config-4.18.0-15-generic
-rw-r--r-- 1 root root 218068 Mar 14 16:01 config-4.18.0-17-generic
-rw-r--r-- 1 root root 218350 May 8 09:14 config-4.18.0-20-generic
drwxr-xr-x 5 root root 4096 Jun 3 13:07 grub
-rw-r--r-- 1 root root 59618395 May 17 13:25 initrd.img-4.18.0-15-generic
-rw-r--r-- 1 root root 39897502 Jun 3 13:05 initrd.img-4.18.0-17-generic
-rw-r--r-- 1 root root 39897454 Jun 3 13:05 initrd.img-4.18.0-20-generic
-rw-r--r-- 1 root root 182704 Jan 28 2016 memtest86+.bin
-rw-r--r-- 1 root root 184380 Jan 28 2016 memtest86+.elf
-rw-r--r-- 1 root root 184840 Jan 28 2016 memtest86+_multiboot.bin
-rw------- 1 root root 4268435 Feb 7 11:10 System.map-4.18.0-15-generic
-rw------- 1 root root 4268612 Mar 14 16:01 System.map-4.18.0-17-generic
-rw------- 1 root root 4270411 May 8 09:14 System.map-4.18.0-20-generic
-rw------- 1 root root 8543992 Feb 7 13:27 vmlinuz-4.18.0-15-generic
-rw------- 1 root root 8548088 Mar 14 14:39 vmlinuz-4.18.0-17-generic
-rw------- 1 root root 8556280 May 8 09:16 vmlinuz-4.18.0-20-generic
Você também precisará saber a versão do kernel que está usando atualmente, para não excluí-lo. Este comando deve listar sua versão do kernel em execução:
uname -r
Exemplo com saída:
$ uname -r
4.18.0-20-generic
Nesse caso, o computador está executando o Linux versão 4.18.0-20, portanto, podemos remover as versões anteriores 4.18.0-15 e 4.18.0-17 (essas versões podem ser vistas na saída do comando ls -l /boot
). Você pode remover cada arquivo de /boot contendo uma versão mais antiga do que o kernel em execução (anterior a 4.18.0-20 no meu exemplo) manualmente ou pode executar um comando para remover todos os arquivos de versões de kernel mais antigas.
Antes de usar este comando, certifique-se de não incluir seu kernel atual na lista de arquivos a serem excluídos! Se você deletar os arquivos errados seu computador não inicializará !! Para remover todos os arquivos das versões do kernel 4.18.0-15 e 4.18.0-17 de uma vez (adapte o comando para qualquer kernel que você estiver usando e qual versões mais antigas que você deseja remover), use:
sudo rm /boot/*-4.18.0-{15,17}-*
Corrija atualizações quebradas ou parciais para fazer o apt funcionar novamente:
sudo dpkg --configure -a
sudo apt install -f
Em seguida, atualize o Grub2, para que os kernels antigos não sejam mais exibidos no menu de inicialização do Grub:
sudo update-grub
Agora você pode remover automaticamente os pacotes não usados para limpar quaisquer kernels que possam ser removidos e continuar com a atualização (se você estava tentando atualizar anteriormente, mas falhou por não haver espaço em disco disponível/apt estar quebrado):
sudo apt autoremove
sudo apt upgrade
Esse post foi traduzido do site LinuxUprising.com pela rtland.team.
Confira a versão original desse post em inglês:
How To Free Up Space In The /boot Partition On Ubuntu, Debian, Or Linux Mint