Como liberar espaço na partição / boot no Ubuntu, Debian ou Linux Mint

3 de junho de 2019

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.

Solução 1: Libere espaço na partição/boot quando o apt está funcionando

Se o apt estiver funcionando, você geralmente pode remover kernels antigos e não utilizados executando:

Comandos para usar no terminal

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:

Comandos para usar no terminal

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)

Solução 2: Libere espaço em/boot quando a partição estiver cheia e o apt estiver quebrado.

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:

Comandos para usar no terminal

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:

Comandos para usar no terminal

uname -r

Exemplo com saída:

Comandos para usar no terminal

$ 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:

Comandos para usar no terminal

sudo rm /boot/*-4.18.0-{15,17}-*

Corrija atualizações quebradas ou parciais para fazer o apt funcionar novamente:

Comandos para usar no terminal

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:

Comandos para usar no terminal

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):

Comandos para usar no terminal

sudo apt autoremove

sudo apt upgrade

Esse post foi traduzido do site LinuxUprising.com pela rtland.team.

Linux Uprising Blog

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
Propaganda
Propaganda