Grub com 3 sistemas operacionais e 2 HDs diferentes

Publicado por Glauber GF em 12/02/2009

[ Hits: 21.988 ]

Blog: http://www.vivaolinux.com.br/~mcnd2

 


Grub com 3 sistemas operacionais e 2 HDs diferentes



Baseado em fato real.

Configuração do Grub para dar boot em 3 sistemas e dois HDs diferentes (SATA1 [Debian Etch 4.0 r3 e Windows XP Professional] e IDE [Windows 7 Ultimate (BETA)]).

Dois HDs: SATA1 e IDE.

O hd SATA1 de 300Gb (sda) está particionado em 4 partições: (sda1) 1Gb Swap, (sda2) 50Gb ext3 (Debian Etch 4.0 r3), (sda3) 50Gb ntfs (Windows XP Professional), (sda4) 200Gb ext3 (backup).

O hd IDE de 40Gb (hda) está instalado em (hda2) ntfs (Windows 7 Ultimate (BETA)).

Como tenho tudo sobre controle no meu hd SATA1 (sda) onde está meu sistema principal, o Debian Etch 4.0 r3, e o mais valioso, a partição de "BACKUP", resolvi testar o sistema "BETA" da Microsoft o Windows 7 Ultimate (BETA) no IDE (hda). Desconectei o hd SATA1 (sda) e conectei o IDE (hda) para executar a instalação do BETA da Microsoft no IDE (hda), por precaução de não fazer nenhuma M... rsrsrs... no SATA1 (sda).

Depois da instalação do Windows 7 com sucesso no IDE (hda), desliguei o PC e reconectei o SATA1 (sda) junto com o IDE (hda) é claro! De início foi tudo como manda o figurino, liguei o PC e veio a tela do grub, então iniciei o Debian (sda2). Na configuração do grub em "/boot/grub/menu.lst, incluí o Windows 7, mas de início já estava conformado do boot do Windows 7 que não iria para frente, pois tinha instalado o sistema em um único hd conectado e depois reconectei o outro hd que esta com o grub "gerenciador de boot" instalado. Como o Windows só consegue dar boot quando em "primário", o gerenciador de boot gravado na mbr do hd IDE (hda) não iria subir pois com o SATA1 (sda) ligado, o IDE (hda) fica como secundário.

Então a configuração do grub ficou desta forma.

Exemplo de um Sistema Debian Etch 4.0 r3:

splashimage=(hd0,1)/boot/grub/caveira.xpm.gz
default        0
timeout        12

## ## End Default Options ##

title        Debian GNU/Linux, kernel 2.6.18-6-486
root        (hd0,1)-----(sda2)
kernel        /boot/vmlinuz-2.6.18-6-486 root=/dev/sda2 ro
initrd        /boot/initrd.img-2.6.18-6-486
savedefault

title        Debian GNU/Linux, kernel 2.6.18-6-486 (single-user mode)

root        (hd0,1)-----(sda2)

kernel        /boot/vmlinuz-2.6.18-6-486 root=/dev/sda2 ro single

initrd        /boot/initrd.img-2.6.18-6-486

savedefault

### END DEBIAN AUTOMAGIC KERNELS LIST

# This is a divider, added to separate the menu items below from the Debian
# ones.

title        Other operating systems:
root

# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sda3

title        Microsoft Windows XP Professional
rootnoverify    (hd0,2)-----(sda3)
savedefault
makeactive
chainloader    +1

# on /dev/hda2
title        Microsoft Windows 7 BETA
rootnoverify    (hd1,0)-----(hda2)
makeactive
map (hd1,0) (hd0,1)
chainloader    +1

O grande segredo foi adicionar na configuração a opção "map (hd1,0) (hd0,1)" que o grub engana o bootloader do Windows dizendo que o hd IDE (hda) seja primário.

Resumo dos parâmetros

O "rootnoverify" ao invés de root na segunda linha, pois a montagem de partição não se aplica ao Windows. O rootnoverify é usado porque esse parâmetro não tenta fazer nenhuma montagem.

O "makeactive" tem a função de definir a partição em questão como ativa.

O "map" que permite o carregamento do Windows quando este não está instalado no primeiro HD (regra obrigatória no Windows 9x, por exemplo). Sua utilização é feita da seguinte forma (supondo que o Windows esteja no segundo disco):

map (hd0) (hd1)
map (hd1) (hd0)

O "chainloader +1", "chama" o carregador de boot do Windows, deixando a esse a tarefa de iniciar o sistema.

Então é isso, só quem mexe aprende, hehehe...
Linux: Grub com 3 SO's e 2 HD's diferentes.
Agradecimento a minha esposa Daniela que tem muita paciência comigo rsrsrs...

Até a próxima.

Outras dicas deste autor

Fazendo uma limpeza (faxina) no sistema Debian Linux

Atualizando o Java Runtime Enveronment (JRE) de um jeito bem fácil

Configurar Modem 3G Vivo Huewai e156 no Metamorphose Linux

Deixando a área de trabalho animada com slides

Instalar o compiz-fusion completo e sem conflito no Debian 5 Lenny

Leitura recomendada

Conectando com Claro 3G - modem Huawei 156B (Debian 5)

Monitorando a temperatura do HD com Gkrellm e Hddtemp no Fedora

Resolução do desktop em notebooks com tela de 12 polegadas ou menor

Migrando usuários entre servidores Linux

Instalando Gnome Shell no Linux Mint 18

  

Comentários
[1] Comentário enviado por colombo em 17/04/2009 - 23:47h

Olá.
Tche meu caso é um pouco diferente.

tenho um hd somente e tinha o xp na primeira partição e o ubuntu na sda6(swap) e sda7(/), resolvi tirar o xp e instalar o windows 7 ultimate na sda1.

Restaurei minha mbr com o bkp q eu tinha feito antes(dd if=..............................) e configurei o parametro do win7 assim:
title windows 7
rootnoverify (hd0,0)
savedefault
makeactive
chainloader +1

dai reiniciei a maquina e quando escolho a opção windows 7 fica aparecendo na tela a mensagem "Starting up . . ." e não inicializa.

Vc consegue me ajudar?
michael.colombo@gmail.com

Abraços

[2] Comentário enviado por mcnd2 em 19/04/2009 - 19:24h

Cara, pelo que entendi você ficou com 3 partições no hd certo? sda1 (windows 7), sda6 (swap) e sda7 ( o sistema raiz do ubuntu [/]).

Tente colocar a opção "map (hd1,0) (hd0,1)" na configuração do windows 7.
Pois como você fez a restauração de sua mbr ele não vai conseguir arrancar o bootloader do windows.

Até mais.



[3] Comentário enviado por removido em 10/10/2009 - 19:07h

Boa noite.

Eu acabei de instalar outro distrito Linux em meu HD (sda), eu possui o 7, Debian, Arch(agora).
Quando instalar o Arch ele pede para instalar o Grub, mais como já tenho ele detectou e falou para não instalar, mais um problema! ele não colocou a partição do Arch no Grub para pode iniciar.

Queria saber como irei colocar?

# fdisk -l

Disk /dev/sda: 250.0 GB, 250058268160 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0xe77ce77c

Dispositivo Boot Start End Blocks Id System
/dev/sda1 1 13 102400 7 HPFS ou NTFS
Partition 1 does not end on cylinder boundary.
/dev/sda2 13 10199 81817600 7 HPFS ou NTFS
/dev/sda3 10200 22894 101972587+ 5 Estendida
/dev/sda5 * 10200 16306 49054446 83 Linux
/dev/sda6 16307 16572 2136613+ 82 Linux swap / Solaris
*****/dev/sda7 16573 22894 50781433+ 83 Linux

Disk /dev/sdb: 1000.2 GB, 1000203804160 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0xe30d664e

Dispositivo Boot Start End Blocks Id System
/dev/sdb1 1 121601 976760001 42 SFS

obs.: ***** É a nova partição.

Obrigado.


[4] Comentário enviado por tobexy em 21/10/2009 - 20:02h

Cara um gigantesco abraço pra ti
tava com um problema filho da .... aqui
ate que vi vc comentar que o windows só inicia se for primario
e aquelas 2 linhas do MAP no caso de ele estar no secundario
\o/
sucesso, agora ele funciona
fiz parecido com vc
tenho um hd ide de 80 onde tem o ubuntu 9.04 e outro sata 500 que tem o XP
porem o IDE precisa ser o primeiro porem nao precisa ser master
(palhaçada da minha placa mãe pré historica)
instalava o XP no sata sem o IDE plugado, pq se tivesse plugado dava pau (ele queria instalar no IDE pq ta como primario)
ai instalava o Ubuntu no IDE sem o sata plugado (isso era de medo de perder os dados do D: do sata)
resultado, um grub sem o XP
ai fui la inseri ele certinho como (hd1,0)
mais quem disse, ficava numa tela " starting up " e nunca subia
ai inseri aquela parte que vc falo ali e corri pro abraço, dei um grito " AAAA FUNCIONOU "
nao sabe o tamanho da minha alegria
como vc mesmo disse: " Então é isso, só quem mexe aprende, hehehe... "
Muito Obrigado

[5] Comentário enviado por mcnd2 em 02/11/2009 - 11:54h

Vlw... tobexy.

Só quem mexe aprende, abraços...



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts