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.721 ]

 


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

Como criar um atalho para a função xkill no Ubuntu

Evitando vírus nos compartilhamentos do Samba

Configurando o layout do teclado rapidamente

Aumentando partições no GNU/Linux

Configurando Teclado ABNT2 no Slackware 13.37 - Xfce

  

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