Raramente, mas pode acontecer que a partição /boot fique cheia em máquinas Linux. Nesse caso, é recomendável remover os kernels antigos, mas isso nem sempre é simples.

Você pode verificar a utilização do disco com o seguinte comando:

df -h

Na imagem já é visível o estado após a limpeza, assim a partição /boot está com apenas 39% de ocupação

Nesse caso, o apt-get upgrade é interrompido durante a atualização do kernel, pois não há mais espaço na partição. Isso gera erros continuamente, e há situações (como no meu caso) em que por causa disso as atualizações não são mais executadas, já que as anteriores terminaram com erro.

Nesse momento alguém diria que basta fazer purge dos kernels antigos não utilizados, mas isso resulta em que o comando apt-get purge 4.4.0-1xx-generic também falha, pois o gerenciador de pacotes apt primeiro quer corrigir os kernels parcialmente instalados.

A solução para isso é excluir manualmente os arquivos de kernel não utilizados (é muito importante proceder com cuidado e não excluir o kernel atual e o mais recente), e então remover os kernels antigos um a um com o gerenciador de pacotes dpkg.

Vamos verificar qual kernel o sistema está usando atualmente e anotar isso:

uname -a

Atualmente o servidor está usando o kernel linux 4.4.0-140-generic.

Vamos entrar na pasta /boot e listar os arquivos:

cd /boot
ls -l

Como se pode ver, cada versão de kernel possui 6 arquivos diferentes.

PROCEDA COM CUIDADO, VERIFIQUE VÁRIAS VEZES SE NÃO ESTAMOS APAGANDO NADA ERRADO!!!

Como se pode ver, para cada kernel a extensão de todos os arquivos é a mesma, assim pode ser simplificado, mas somente com cuidado! De forma alguma não exclua o kernel atualmente em uso e os mais recentes!

sudo rm -rf *4.4.0-134-generic *4.4.0-139-generic

Com isso excluímos os arquivos dos kernels 134 e 139, liberando algum espaço (geralmente há muitos mais kernels antigos), e podemos continuar.

Vamos listar os kernels antigos:

sudo dpkg --list 'linux-image*'|awk '{ if ($1=="ii") print $2}'|grep -v `uname -r`

Como se pode ver, o sistema ainda considera que os kernels antigos estão instalados, mesmo que os arquivos já não estejam em seus lugares.

Se você executasse um apt-get purge de ’linuxkernel’ agora, o sistema primeiro tentaria corrigir os erros, baixando e tentando instalar novamente, e a partição encheria imediatamente.

Use o gerenciador de pacotes DPKG e remova manualmente os pacotes de kernel um por um:

sudo dpkg --remove linux-image-4.4.0-134-generic

Após remover os pacotes de todos os kernels desnecessários, execute o seguinte para corrigir as instalações incompletas anteriores:

sudo apt-get install -f

Deixe que as instalações/atualizações sejam concluídas, e então remova os pacotes que não são mais necessários:

sudo apt-get autoremove

Em seguida, verifique a ocupação da partição /boot:

df -h

Se tudo correu bem, não há mais nada a fazer.