Qual é a maneira mais segura de limpar / iniciar a partição?

247

Eu tenho 200 MB atribuídos para a partição /boot . Sempre que tento atualizar o kernel, recebo uma mensagem de erro dizendo basicamente que /boot está cheio.

O que posso fazer para limpar o /boot e remover / fazer o backup dos kernels mais antigos?

    
por koba101 14.09.2013 / 21:41

7 respostas

297

Método da linha de comando:

Primeiro, verifique sua versão do kernel, assim você não irá apagar a imagem do kernel em uso, rodando:

uname -r

Agora, execute este comando para uma lista de kernels instalados:

dpkg --list 'linux-image*' | grep ^ii

e apague os kernels que você não quer / precisa mais executando isto:

sudo apt-get remove linux-image-VERSION

Substitua VERSION pela versão do kernel que você deseja remover.

Quando você terminar de remover os kernels mais antigos, você pode executar isso para remover os pacotes que você não precisará mais:

sudo apt-get autoremove

E, finalmente, você pode executar isso para atualizar a lista do kernel do grub:

sudo update-grub
    
por PeppeDAlterio 14.09.2013 / 22:34
242

NOTA: isso é somente se você não puder usar o apt para limpar devido a um 100% cheio / boot

Se o apt-get não estiver funcionando porque seu / boot está em 100%, você precisará limpar / inicializar primeiro. Isso provavelmente pegou uma atualização do kernel em uma instalação parcial, o que significa que o apt praticamente congelou completamente e continuará dizendo para você executar o apt-get -f install , mesmo que esse comando continue falhando.

Obtenha a lista de imagens do kernel e determine o que você pode fazer sem. Este comando mostrará os kernels instalados, exceto o atualmente executando um sudo dpkg --list 'linux-image*'|awk '{ if (=="ii") print }'|grep -v 'uname -r' . Observe as duas versões mais recentes na lista. Você não precisa se preocupar com a execução, pois não está listado aqui. Você pode verificar isso com uname -r .

Crie um comando para excluir todos os arquivos em / boot para os kernels que não são importantes para você usando a expansão de chaves para mantê-lo sadio. Lembre-se de excluir as imagens atuais e as duas mais novas do kernel. Exemplo: sudo rm -rf /boot/*-3.2.0-{23,45,49,51,52,53,54,55}-* . Você também pode usar um intervalo com a sintaxe {80..84}.

sudo apt-get -f install para limpar o que está tornando o apt grumpy em uma instalação parcial.

Se você encontrar um erro que inclua uma linha como "Erro interno: não foi possível encontrar a imagem (/boot/vmlinuz-3.2.0-56-generic)", execute o comando sudo apt-get purge linux-image-3.2.0-56-generic (com a versão apropriada ).

Finalmente, sudo apt-get autoremove limpar os antigos pacotes de imagem do kernel que foram órfãos pela inicialização manual limpa.

Sugestão, execute sudo apt-get update e sudo apt-get upgrade para cuidar de quaisquer atualizações que possam ter sido feitas enquanto você espera a partição completa / boot.

Suggestion2, Analise link e considere configurar Unattended-Upgrade :: Remove-Unused-Dependencies como true em / etc / apt / apt.conf.d / 50iniciado-upgrades. Isso será o equivalente a executar o autoremove após cada atualização de segurança para garantir que você limpa os kernels não usados, mas também removerá outras coisas que considera não serem usadas para salvar você deste problema no futuro.

    
por flickerfly 07.03.2014 / 17:54
41

Há documentação sobre isso no link

Em resumo: use

sudo apt-get autoremove --purge
# and/or:
sudo purge-old-kernels

A ferramenta purge-old-kernels pode ser instalada via sudo apt install byobu . Aqui está a descrição da sua página de manual:

  

Este programa removerá pacotes antigos de kernel e cabeçalho do   sistema, liberando espaço em disco. Nunca removerá o atualmente   executando o kernel. Por padrão, ele manterá pelo menos os últimos 2 kernels,   mas o usuário pode substituir esse valor usando o parâmetro --keep .

Se você quiser uma solução de copiar e colar, o ReSearchIT Eng sugeriu o seguinte:

sudo apt install -y byobu
sudo purge-old-kernels -y --keep 1
sudo apt-get -y autoremove --purge
    
por peq 09.08.2016 / 11:12
6

Descobri que é muito mais fácil abandonar a pequena partição e mover /boot para a raiz. Isso também evita problemas de falta de espaço no futuro.

Primeiro, mova seus dados da partição de inicialização para a raiz (execute como sudo -s ):

cp -a /boot /boot2
umount /boot
rmdir /boot
mv /boot2 /boot

Remova (ou comente) a entrada /boot em /etc/fstab :

vim /etc/fstab

Atualize o grub e verifique se tudo está correto:

update-grub

apt agora deve poder atualizar sem problemas.

Isso deixa uma partição não utilizada de 200MB (que você pode usar para outra coisa se achar que vale a pena).

    
por laktak 14.04.2017 / 09:43
1

Removendo Kernels antigos (para liberar espaço em / boot) veja: link

sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print }' | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')")

Em seguida, execute

sudo apt-get update
    
por Amos Folarin 14.08.2017 / 16:09
1

sudo apt-get autoremove

Isso remove todos os últimos 2 kernels. Testado no Ubuntu 16.04 LTS quando /boot estava com 100% de capacidade e apt-get upgrade falhou na última atualização do kernel. O autoremove do kernel é iterativo, então se você tiver vários kernels, eles serão removidos um de cada vez. Então seja paciente.

    
por DeepSpace101 03.10.2017 / 18:39
0

Por que fazer isso manualmente quando você pode fazer isso com uma ferramenta? Você sabe que vai precisar dele novamente em 30 segundos, pois leva 30 segundos para que ele faça uma nova atualização kernal nos dias de hoje = P

Eu recomendo usar essa ferramenta, bootnukem

git clone https://github.com/erichs/bootnukem.git
cd bootnukem
sudo ./install.sh

Então

sudo bootnukem --dry-run

Remover --dry-run assim que confirmar que parece seguro

    
por Jonathan 04.05.2017 / 19:28