Corrigindo instalação de 3 sistemas em mais de um HD (erro: 2 - 15 - 22)

Publicado por Ronaldo Santos Rocha em 26/05/2009

[ Hits: 7.723 ]

 


Corrigindo instalação de 3 sistemas em mais de um HD (erro: 2 - 15 - 22)



Caros amigos, aqui vai uma demonstração prática de como eu corrigi os erros do GRUB na instalação de um terceiro sistema em um computador com 2 HDs. Agradeço ao amigo SelvaKing pela orientação.

Vamos aos fatos: computador com 2 HDs (sda e sdb), sendo que no sda tenho instalado o Windows XP e o Ubuntu 9.04 e em sdb o Big Linux 4.2.

Primeiramente XP e Ubuntu rodando perfeitamente (Grub do Ubuntu gerenciando o boot - até então dual boot - e ambos instalados no sda). Ocorreu que na instalação do terceiro sistema (Big Linux), por razão de espaço, a instalação foi no sdb e ao iniciar o computador apareciam os 3 sistemas no Grub gerenciado pelo Big Linux, sendo que Big e XP rodavam normalmente, mas quando optava pelo Ubuntu começavam os erros (2, 15 e 22) e eu editando fstab, menu.lst e nada, só mudava o número do erro.

Porque o Windows (estando no mesmo HD do Ubuntu) rodava sem problemas? Sistemas operacionais só "bootam" se estiverem em uma partição primária e se estiverem em partições lógicas, precisam colocar o seu código de boot numa partição primária ou no MBR (era o caso do Ubuntu funcionando normalmente com o XP, pois na instalação o Ubuntu gravou no MBR). Importante: cada HD possui o seu espaço reservado para o MBR, ou seja, cada HD tem o seu próprio MBR.

Agora com a instalação do terceiro sistema no segundo HD (sdb) o que ocorreu? O Big Linux instalou normalmente, gravou o menu.lst dele no MBR deste HD e naturalmente iria "bootar" os sistemas das partições primárias e escritas neste MBR e o Ubuntu ficou fora por não estar em uma primária e sim em uma lógica e perdeu o seu GRUB neste novo MBR.

Agora consertando a instalação - Estando no terceiro sistema (Big Linux), quais seriam os passos a serem feitos? Primeiramente devemos recuperar o Grub do Ubuntu (que foi instalado primeiro e esta no mesmo HD do XP):

sudo grub

(vai aparecer o shell do Grub)

Grub> find /boot/grub/menu.lst
(hd0,5) (Aqui está instalado o Ubuntu = sdaX - No meu caso sda5)
(hd1,2) (Aqui está instalado o Big Linux = sdbX - No meu caso sdb3)

Ao usarmos como referência a partição com o Grub do Ubuntu, o arquivo /boot/grub/menu.lst dele será carregado no boot. Vai ficar como era antes de instalar o BIG. Depois acrescentaremos informações do BIG ao arquivo de configuração dele.

Então lá no SHELL usaremos o comando root que diz ao sistema para usar determinada partição como referência para os próximos comandos.

Grub> root (hd0,5)
Filesystem type is ext2fs, partition type 0x83

Agora vamos instalar o Grub no SETOR DE BOOT desta partição e depois no MBR.

Grub> setup (hd0,5)

Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (hd0,5)"... failed (this is not fatal) Running "embed /boot/grub/e2fs_stage1_5 (hd0,5)"... failed (this is not fatal) Running "install /boot/grub/stage1 (hd0,5) /boot/grub/stage2 p /boot/grub/menu.lst "... succeeded Done.

Agora no MBR:

Grub> setup (hd0)

Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 16 sectors are embedded. succeeded Running "install /boot/grub/stage1 (hd0) (hd0)1+16 p (hd0,5)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded Done.

Agora vamos instalar o GRUB do segundo HD na partição do BIG. Mudamos a referência do root.

Grub> root (hd1,2)

Filesystem type is ext2fs, partition type 0x83

Agora vamos instalar aquele GRUB no SETOR DE BOOT de sdb3.

Grub> setup (hd1,2)

Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (hd1,2)"... failed (this is not fatal) Running "embed /boot/grub/e2fs_stage1_5 (hd1,2)"... failed (this is not fatal) Running "install /boot/grub/stage1 (hd1,2) /boot/grub/stage2 p /boot/grub/menu.lst "... succeeded Done.

Colocar o GRUB no MBR deste HD.

Grub> setup (hd1)

Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (hd1)"... 18 sectors are embedded. succeeded Running "install /boot/grub/stage1 (hd1) (hd1)1+18 p (hd1,2)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded Done.

Agora sair do shell.

Grub> quit

Ao "rebootar" aparecerá o menu do GRUB que acompanha o Ubuntu. O que vamos fazer é acrescentar comandos para iniciar o BIG ao arquivo de configuração do Ubuntu.

O GRUB tem dois modos de inicializar um sistema operacional, diretamente e indiretamente. Diretamente ele usa dois e até 3 comandos, a saber: root, kernel e initrd. O initrd só se torna necessário se a distro o usa. E indiretamente ele não liga pra quem está instalado na partição, ele só carrega o código de boot encontrado no SETOR DE BOOT da partição, por isto que o Linux inicializa o Windows, mas pode também inicializar outro Linux em outro HD, os comandos usados para inicializar indiretamente são: root e chainloader.

Para iniciar diretamente teremos que copiar o código exato que está no arquivo /boot/grub/menu.lst do BIG e acrescentar ao menu.lst do Ubuntu. Indiretamente é só fazer root (hd1,2) e depois "chainloader +1".

Bem, vamos adiante, agora (já usando o Ubuntu) vamos editar o menu.lst do Grub do Ubuntu normalmente e acrescentar as linhas referentes ao Big Linux.

# gedit /boot/grub/menu.lst

title BigLinux, kernel 2.6.24-19-generic root (hd1,2)
kernel /boot/vmlinuz-2.6.24-19-generic root=/dev/sdb3 ro resume=/dev/sda7 quiet splash
initrd /boot/initrd.img-2.6.24-19-generic
Ficando desta maneira:

### END DEBIAN AUTOMAGIC KERNELS LIST

# This is a divider, added to separate the menu items below from the Debian
# ones.
title      Other operating systems:

title BigLinux, kernel 2.6.24-19-generic root (hd1,2)
kernel /boot/vmlinuz-2.6.24-19-generic root=/dev/sdb3 ro resume=/dev/sda7 quiet splash
initrd /boot/initrd.img-2.6.24-19-generic


# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sda1
title      Microsoft Windows XP Professional
root      (hd0,0)
savedefault
makeactive
chainloader   +1

Pronto, agora temos os 3 sistemas rodando sem nenhum problema. Devemos observar que esta situação aplica-se ao uso de mais de um HD. Portanto na instalação de mais de um sistema em um mesmo HD não haverá problemas (raros de ocorrer), o que vai acontecer normalmente é que o Grub inicial no boot será do último sistema instalado.

Outras dicas deste autor

aMule 2.2.4: novidades e vantagens de uso

Leitura recomendada

Invertendo os botões do touchpad no Slackware 14

Liberando NFS no firewall do Fedora

Compactar arquivos e pastas com senha usando o 7z

Instalando o MATE no Arch Linux

Atualizar de GRUB Legacy para GRUB2

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts