Por que não é seguro excluir kernels antigos?

36

Eu fiquei sem espaço na minha unidade de inicialização, então decidi remover os kernels antigos. Eu encontrei esta página que descreve exatamente o que devo fazer: Documentação do Lubuntu: Remover Kernels antigos .

Eu deletei o kernel mais antigo manualmente e agora está tudo bem, mas eu não entendo nada: no final do artigo há algum código que pode deletar todas as versões antigas do kernel, mas está marcado como para o avançado somente usuários.

Eu realmente não entendo qual é o perigo aqui. Parece bobo, mas eles parecem dizer que pode haver mais de um kernel usado por uma máquina específica ao mesmo tempo.

É possível que aplicativos diferentes na minha máquina Ubuntu possam usar kernels diferentes simultaneamente? Por que excluir todos os kernels antigos é automaticamente considerado perigoso?

    
por Sergei 10.04.2015 / 13:52

4 respostas

51

Remover os kernels antigos não é inerentemente inseguro, mas se você remover todos os seus kernels e reinicializar, você será deixado em uma tela irritada do Grub. Correção que requer know-how significativo (assim, mas com um apt-get install linux-generic no final).

A primeira vez que você faz isso é emocionante, mas as pessoas que querem limpar o menu do Grub ou recuperar algum espaço em disco não estão em busca de emoções.

O perigo vem de usuários copiando e colando um bloco de código que - sem o conhecimento deles e sem reconhecer os riscos - não se aplica. Existem muitos exemplos de detecção de kernels antigos e poucos são perfeitos. Mesmo meu mais recente esforço ainda tem suas armadilhas. E estamos falando de um problema que pode ser corrigido; muitas postagens no Ask Ubuntu podem levar à perda permanente de dados se usadas incorretamente.

Tentamos proteger contra danos ao sinalizar o risco de conscientizar os usuários sobre possíveis problemas . Nos melhores cenários, o usuário estará preparado e equipado para lidar com um problema e, na pior das hipóteses, pelo menos eles não podem reclamar que não foram avisados.

    
por Oli 10.04.2015 / 14:09
4

Os kernels antigos fazem parte dos pacotes. Se você acabou de remover /boot/vmlinuz-3.13.0-44-generic , você deixará as migalhas de pacote por toda parte.

Primeiro, descubra qual kernel você está executando. NÃO apague nada com este valor é o seu nome:

$ uname -r  
3.13.0-49-generic  

YMMV. Em seguida, pergunte a dpkg o que ele sabe:

$ dpkg -l linux-*

Alguns desses pacotes podem ser removidos, mas o que mais existe? Usando uma linha extraída (no sistema MY) da saída do dpkg -l linux-* :

 ii  linux-image-3.13.0-44-generic       3.13.0-44.73           amd64                  Linux kernel image for version 3.13.0 on 64 bit x86 SMP

Agora veremos quais outros pacotes têm -3.13.0-44 em seus nomes:

$ dpkg -l *-3.13.0-44*

Depois de fazer uma verificação final para garantir que o kernel atual ( uname -r ) NÃO esteja na lista de pacotes, você pode começar a removê-los através do sistema de gerenciamento de pacotes de sua escolha.

    
por waltinator 10.04.2015 / 19:04
0

A última vez que removi meus kernels antigos, peguei emprestado um trecho de código antigo. Bem, esse trecho de código me obrigou a reiniciar depois de instalar o novo kernel, então fiquei sem um kernel. Felizmente, eu tinha pego isso antes de reiniciar, mas, como outros disseram, eu posso ter ficado com a "tela irritada do grub".

Para encurtar a história, é simplesmente algo que pode ser facilmente confundido, resultando em um sistema em blocos que pode ser difícil de recuperar.

    
por alfonsojon 10.04.2015 / 17:42
0

Não é inseguro. Usando o Linux, você pode fazer exatamente o que quiser se souber os comandos certos.

No diretório /boot , você pode fazer um simples ls -la para ter uma lista longa, bem como para encontrar qualquer arquivo ou diretório oculto (que não deveria estar lá se houver algum !!). / p>

Com essas informações, você pode avaliar as datas e os arquivos das versões antigas. Não remova todos eles, mas os arquivos mais antigos que correspondem à mesma versão.

Em algum momento, eu estava pensando que seria possível que, se você tivesse compilado seu kernel a partir do código fonte, então você precisaria ajustar um novo. O arquivo .config , que eu acho que não é o caso conforme sua explicação, vai ficar lá.

Então, se acontecer que depois de deletar os arquivos antigos correspondentes a uma única versão e depois de reinicializar sua máquina, é possível que você encontre um kernel panic.

A solução simples é inicializar a máquina com um live USB ou CD / DVD Linux. chroot , e reconstrua o kernel com ferramentas como dracut .

    
por Nitin J Mutkawoa 10.04.2015 / 17:18

Tags