Trocando kernel remotamente no Debian

Publicado por Daniel Roque em 13/09/2013

[ Hits: 2.851 ]

 


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

Emuladores de videogame no Linux

OpenOffice / LibreOffice / BrOffice Base e JDBC Oracle Database 10g Express Edition

Thunderbird - Erro: Data errada de recebimento de e-mail [Resolvido]

e4rat - Acelerando o Boot em Partições EXT4

Samsung R480 - controle da luz de fundo

Leitura recomendada

pf-Kernel 3.17 - Acelere o Linux Mint, Ubuntu e Debian

Blog linuxkenrelstuff . blogspot . com

Too much work for irq17

Kernel patch de Con Kolivas (otimização para desktops)

Compilando corretamente o kernel 2.4.x no Slackware

  

Comentários
[1] Comentário enviado por izaias 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
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts