Trocando kernel remotamente no Debian

Publicado por Daniel Roque em 13/09/2013

[ Hits: 3.718 ]

 


Trocando kernel remotamente no Debian



Dica rápida para os colegas que sofrem para solucionar problemas complexos remotamente.

Recentemente, tive que trocar remotamente o kernel de um servidor GNU/Linux, só que todos que já trocaram alguma vez o kernel, sabem que nem sempre as coisas ocorrem como previsto, pode ocorrer um kernel panic ou coisas do tipo.

Vamos à estratégia para contornar a situação. Supomos então:
  • Que você saiba instalar o kernel;
  • Possua acesso via SSH ao servidor e você saiba como acessar;
  • Bootloader: LILO;
  • Kernel atual: 2.6.XX;
  • Kernel novo: 2.6.ZZ;
  • Boot padrão: 2.6.XX;
  • Queremos trocar do kernel 2.6.XX para o kernel 2.6.ZZ.

Passos a seguir:

1. Instalaremos o kernel 2.6.ZZ e configuraremos o LILO para ter a opção do kernel 2.6.ZZ.

Quando eu digitar lilo, deve aparecer algo parecido com as 2 linhas abaixo com o "*" (asterisco)) no 2.6.XX, que já é a opção de boot atual, ou seja, somente adicionamos a opção 2.6.ZZ:

# lilo

2.6.XX + *
2.6.ZZ +

2. Vamos configurar agora, para o nosso próximo boot e somente o próximo boot ocorrer pelo kernel 2.6.ZZ:

# lilo -R 2.6.ZZ

3. Legal, e se a máquina travar? Bom, para isso vamos configurar para o servidor rebootar caso ocorra kernel panic.

Edite o arquivo "/etc/sysctl.conf":

# mcedit /etc/sysctl.conf

E adicione ao final, a opção:

kernel.panic=5

O que faz com que a máquina reinicie 5 segundos após um kernel panic.

4. Legal, se acontecer um kernel panic, tudo bem. Mas, e se a placa de rede não subir?

Para contornar, faremos o seguinte:

Vamos criar um arquivo vazio chamado "/rebootnow":

# touch /rebootnow

Agora, dentro do "/etc/rc.local", vamos adicionar uma verificação que vai ocorrer 5 minutos após o servidor ter reiniciado e, caso este arquivo exista, o servidor vai rebootar.

Dentro de "/etc/rc.local", adicione:

(sleep 300; [ -e /rebootnow ] && reboot ) &

Troque os 300, se achar que 5 minutos é muito ou pouco. Em geral, eu utilizo mesmo é 3 minutos, no caso 180.

5. Legal, precavido de quase tudo. Agora digite reboot e fique pingando o servidor para ver se ele volta.

Assim que voltar, se conseguir pegá-lo com o novo kernel, remova o arquivo "/rebootnow" para evitar que ele reboote, caso ocorra kernel panic ou não consiga pegá-lo novamente.

Na pior das hipóteses, em 7 minutos ele deve voltar do mesmo jeito que estava antes.

* Importante: caso consiga pegá-lo, altere o LILO para ele bootar pelo novo kernel 2.6.ZZ.


Boa sorte!

Outras dicas deste autor

Criando um repositório rápido de contole de versão com o Mercurial

Steam no Debian Sid

O que é um pacote Debian (.deb)

Colocar um descanso de tela como plano de fundo da área de trabalho (XFCE)

Placa wireless USB Multilaser Atheros Communications, Inc. AR9271 802.11n no Linux

Leitura recomendada

Acelerando o reboot em sistemas Debian-like

Nova versão de driver da nVidia: perfeita para o kernel 2.6! :)

Atualizando o kernel no Ubuntu para o 2.6.30

Removendo kernels antigos do Ubuntu

Atualizar para kernel mais recente no Debian

  

Comentários
[1] Comentário enviado por removido em 13/09/2013 - 01:04h

Que pinguim mais ousado!

Rapaz, parabéns!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts