Solução para Kernel panic em Dual-boot com Grub2 para Mandriva-Mageia

Publicado por Leandro Nkz em 17/09/2011

[ Hits: 8.374 ]

Blog: http://brweatherproject.blogspot.com/

 


Solução para Kernel panic em Dual-boot com Grub2 para Mandriva-Mageia



Olá a todos do VOL!

Geralmente, quando temos uma distro que utiliza Grub2, como o Ubuntu ou Debian, e por algum motivo queremos instalar o Mandriva também, este último sempre dá "Kernel panic" ao iniciar.

Esta dica destina-se a mostrar uma possível solução para isso.

Este problema trata-se de um bug já documentado aqui: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/779213

Nota: A solução apresentada aqui resolveu em 100% o problema que ocorreu comigo. Mas não há garantias de que vá funcionar em outras instalações.

Isto começou comigo em um Ubuntu 10.10 com Mandriva 2010. Agora se repetiu com Mandriva 2011 e Debian 6.

Instalei o Mandriva normalmente, mantendo o Grub 2 do Debian como gerenciador de boot padrão. Mas na hora de "bootar" o Mandriva dava "Kernel panic".

Obs.: Não há como gerenciar o boot de ambos os sistemas utilizando o Grub do Mandriva, pois ele não reconhece o Grub 2 utilizado por Debian/Ubuntu. Portanto, a melhor e única opção seria manter o Grub 2 do Debian como padrão.

Para manter o Grub do Debian/Ubuntu como padrão, basta selecionar a opção durante a instalação do Mandriva:
Linux: Solução para Kernel panic em Dual-boot com Grub2/Mandriva-Mageia
Em "Dispositivo de boot" selecione a partição onde está instalado o Mandriva (dev/sda5 no meu caso).

Nota: Se for ao contrário, instalar o Ubuntu com o Mandriva já instalado, não há necessidade de modificar a instalação. Instale o Ubuntu normalmente.

Depois de instalado todo o sistema. Reinicie o computador.

Vai aparecer a tela normal do Grub 2, sem as entradas do Mandriva. Inicie o Debian ou Ubuntu, e rode no terminal:

# sudo update-grub

Com este comando será adicionada/atualizada as entradas do Grub.

Agora, mesmo com este comando, ao iniciar o Mandriva irá ocorrer o "Kernel Panic".

Para solucionar o problema, reinicie novamente o computador, selecione a entrada do Mandriva e aperte "e" ao invés de enter. Abrirá uma página contendo a descrição da entrada do Mandriva, mais ou menos assim:

        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos5)'
        search --no-floppy --fs-uuid --set 1792a52b-b419-4a0f-acd0-f18194747dc7
        linux /vmlinuz BOOT_IMAGE=linux root=UUID=7dde89cb-75ec-4be2-9928-2f37e14c6769 resume=UUID=c0555465-1a71-439d-a748-e22cfade80e5 vga=791
        initrd (hd0,4)/initrd.img

Note que há uma diferença, a localização do initrd está em uma partição diferente do Kernel principal (root):

...
"set root='(hd0,msdos5)'"
" initrd (hd0,4)/initrd.img"
..

Este initrd é carregado após o Kernel durante a inicialização do sistema. Por isso que o sistema começa a carregar, mas para no momento que tenta iniciar (e não consegue) o initrd.

Para corrigir isso, edite a entrada (use as setas do teclado) colocando a mesma localização/partição do Kernel. Ficaria mais ou menos assim:

        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos5)'
        search --no-floppy --fs-uuid --set 1792a52b-b419-4a0f-acd0-f18194747dc7
        linux /vmlinuz BOOT_IMAGE=linux root=UUID=7dde89cb-75ec-4be2-9928-2f37e14c6769 resume=UUID=c0555465-1a71-439d-a748-e22cfade80e5 vga=791
        initrd (hd0,5)/initrd.img

Note que foi apenas editado os números referentes à partição.

Após a correção, tecle "Ctrl + x" para iniciar esta entrada modificada. Se tudo correr bem, ela iniciará sem problemas.

Agora para corrigir isso de modo quase permanente para que você não precise ficar editando a entrada sempre que der boot no Mandriva, entre no Debian/Ubuntu e rode no terminal:

# nano /boot/grub/grub.cfg

Nota: Apenas troque o nano pelo seu editor de textos preferido.

Procure pela entrada do Mandriva, ela é semelhante a visualizada no Grub. Faça o mesmo procedimento, coloque o mesmo número da partição descrita na linha "set root=":

Antes:

menuentry "Mandriva" {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos5)'
        search --no-floppy --fs-uuid --set 1792a52b-b419-4a0f-acd0-f18194747dc7
        linux /vmlinuz BOOT_IMAGE=linux root=UUID=7dde89cb-75ec- 4be2-9928-2f37e14c6769 resume=UUID=c0555465-1a71-439d-a748-e22cfade80e5 vga=791
        initrd (hd0,4)/initrd.img
}

Depois:

menuentry "Mandriva" {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos5)'
        search --no-floppy --fs-uuid --set 1792a52b-b419-4a0f-acd0-f18194747dc7
        linux /vmlinuz BOOT_IMAGE=linux root=UUID=7dde89cb-75ec- 4be2-9928-2f37e14c6769 resume=UUID=c0555465-1a71-439d-a748-e22cfade80e5 vga=791
        initrd (hd0,5)/initrd.img
}

Note que as entradas do Mandriva são diferentes do Debian ou Ubuntu, pois adicionam a localização completa do initrd. Talvez venha daí o bug, mesmo outras distros que utilizam o Grub 1, como openSUSE e Fedora, se instalados com o Ubuntu, não há a descrição de qual partição se encontra o initrd.

Depois disso, salve o arquivo e reinicie o computador selecionando o Mandriva. Se tudo der certo, ele iniciará normalmente.

Obs.: Após as mudanças NÃO rode o "update-grub".

Sempre que você rodar o "update-grub" (ou algum programa o fizer como o Grub-customizer), edite manualmente a entrada do Mandriva para corrigir a entrada. Pois as mudanças serão desfeitas.

Espero que isso possa ajudar a outros que porventura estejam passando pelo mesmo problema.

Nota: esta solução também é possível para quem utiliza a distro Mageia, por esta ser derivada do Mandriva.

Abraços a todos!

Leandro.

Outras dicas deste autor

Como inserir o Tux/TuxDebian durante o boot do Debian

Habilitando sons do sistema no GNOME 2 do Debian 6

Habilitando busca incremental de comandos no terminal GNU/Linux

Como Adicionar a Search Engine do VOL na Search Bar do Firefox

Openbox encerrando ao executar programas GTK+ 3 [Resolvido]

Leitura recomendada

Dual boot Debian Squeeze + Windows XP

Colocando um site no ar sem o www

Modo Clássico no Ubuntu 11.10

Erro de Xlib ao conectar ao Xserver

Epson L355 no Ubuntu 16.04

  

Comentários
[1] Comentário enviado por clodoaldops em 24/11/2011 - 08:56h

Brigadão pela dica!
Eu havia desistido do dual-boot com mageia por isso.
Vou testar sua dica um dia desses e te falo o que deu!
Nota 10!

[2] Comentário enviado por leandro em 24/11/2011 - 15:22h

Opa! Obrigado!

Quando puder testar, posta aí o resultado...

Abração.

[3] Comentário enviado por clodoaldops em 30/05/2012 - 17:35h

Leandro, usei um modo mais facil: instalei o grub-legacy no Ubuntu e deu certo.
Vamos ver se após atualizar o kernel do Ubuntu o dual-boot continua funcionando!
TKS!

[4] Comentário enviado por leandro em 31/05/2012 - 15:10h

Legal Clodoaldo!

Quem sabe não vira uma dica, hein?

abraço.



Contribuir com comentário