É bom ter várias versões do kernel Linux?

É bom ter várias versões do kernel Linux?

Certa vez, eu estava instalando alguns patches de kernel e algo deu errado em um servidor ativo onde tínhamos centenas de clientes. Apenas um kernel estava lá no sistema. Então, o servidor ficou inativo por algum tempo e, usando um live CD, colocamos o sistema em funcionamento e fizemos outros trabalhos de reparo.

Agora minha pergunta: é uma boa ideia ter 2 versões do kernel, para que se o kernel estiver corrompido possamos sempre reiniciar com outro kernel disponível? Por favor, me avise.

Além disso, é possível ter 2 versões do mesmo kernel? Para que eu possa escolher outro kernel quando houver corrupção do kernel?

Edited:
My Server Details:
2.6.32-431.el6.x86_64
CentOS release 6.5 (Final)

Como posso ter a mesma cópia deste kernel, para que quando meu kernel for corrompido, eu possa iniciar o kernel de backup?

Responder1

Tanto a distribuição baseada em RedHat quanto em Debian mantêm várias versões do Kernel quando você instala uma nova usando yumou apt-getpor padrão. Isso é considerado uma boa prática e é feito exatamente para o caso que você descreve: se algo der errado com o kernel mais recente você pode sempre reiniciar e no GRUB optar por inicializar usando um dos kernels anteriores.

Nas distribuições RedHat você controla o número de kernels para manter /etc/yum.confa installonly_limitconfiguração. Na minha nova instalação do CentOS 7, o padrão é 5.

Além disso, se no RedHat você estiver instalando um novo kernel a partir do pacote RPM, você deve usar rpm -ivh, não rpm -Uvh: o primeiro manterá o kernel antigo no lugar enquanto o último o substituirá.

O Debian mantém kernels antigos, mas não os remove automaticamente. Se você precisar liberar sua partição de boot você terá que remover os kernels antigos manualmente (lembre-se de deixar pelo menos um dos kernels anteriores). Para listar todos os pacotes de instalação e cabeçalhos do kernel, use dpkg -l | egrep "linux-(im|he)".

Respondendo sua pergunta --Além disso, é possível ter uma versão 2 do mesmo kernel?-- Sim, é possível. Não posso verificar isso no CentOS 6.5 agora, mas no CentOS 7 consegui produzir o resultado desejado apenas duplicando os arquivos de /bootdiretório relacionados ao kernel e reconstruindo o menu grub:

cd /boot

# Duplicate kernel files; 
# "3.10.0-123.el7" is a substring in the name of the current kernel
ls -1 | grep "3.10.0-123.el7" | { while read i; \
    do cp $i $(echo $i | sed 's/el7/el7.backup/'); done; }

# Backup the grub configuration, just in case
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.backup

# Rebuild grub configuration
grub2-mkconfig -o /boot/grub2/grub.cfg

# At this point you can reboot and see that a new kernel is available 
# for you to choose in GRUB menu

Responder2

Sim, é possível e diria até aconselhável. Você só precisa configurar o processo de inicialização para oferecer a alternativa. Normalmente isso é feito na configuração do carregador de boot - normalmente você pode simplesmente duplicar a entrada que está lá e alterar o nome do arquivo da imagem do kernel e o rótulo da entrada do menu de inicialização.

Em um servidor de produção isso geralmente não é um problema, mas sempre que você atualiza o kernel é uma boa ideia ter um backup presente. Algumas distribuições Linux oferecem reversão (geralmente apoiada por recursos de snapshot do sistema de arquivos) em atualizações de pacotes para tornar o processo o mais simples possível, mas mesmo nesses casos eu tenderia a manter um backup pronto.

Quanto a ter várias cópias do mesmo kernel - até isso faria sentido, mas como @goldilocks aponta no comentário abaixo, se o seu kernel for corrompido você deve pensar em substituir o hardware. Por outro lado, colocar a duplicata em um HDD físico diferente pode evitar alguns problemas. Mas tenha em mente que o arquivo de imagem do kernel é apenassempreusado durante a inicialização.

informação relacionada