Segue a dica do Sr.
Wander Barbato, publicado no site do
Dicas-L.
Tenho um computador com dual boot há algum tempo (Ubuntu + Windows), porém faz uns 2 anos que não uso mais o Windows nele. No entanto, outro dia formatei (sem querer) a partição do Windows e, como estava precisando de um espaço para meu /home, resolvi montá-lo nesta "nova" partição :-)
Até aí tudo bem. Coloquei outro HD no micro e resolvi instalar o Windows, pois periodicamente preciso instalar e homologar alguns softwares "for Windows" que usamos na nossa instituição.
Como era de se esperar eu perdi meu Grub. Usei um Live CD do Ubuntu, conferi o arquivo de configuração do Grub e restaurei o mesmo (vide o artigo Como reinstalar ou restaurar o GRUB.
O problema é que o meu Ubuntu estava instalado no HD mestre (/dev/sda)
; já o Windows eu instalei no HD escravo (/dev/sdb)
. Descobri que o Windows só funciona se estiver instalado no primeiro HD (que maravilha, hein...).
Foi aí que descobri a opção map do Grub. No Grub, o primeiro HD é identificado por hd0, o segundo é identificado por hd1 e assim por diante. Na configuração do ponto de partida para o Windows (que está em hd1), eu acrescentei a linha de comando:
map (hd1) (hd0)
Dessa forma, quando é invocado o boot através do Windows, este comando mapeia hd1
em hd0
, enganando o Windows.
Veja como ficou o meu arquivo de configuração do Grub (/boot/grub/menu.lst
):
default 0
timeout 10
password --md5 senha_cifrada
# Boot pelo Linux
title Ubuntu 8.04
root (hd0,2)
kernel /boot/vmlinuz-2.6.24-24-generic root=/dev/sda3 ro quiet splash locale=pt_PT
initrd /boot/initrd.img-2.6.24-24-generic
quiet
# Boot pelo Windows
title Windows XP
rootnoverify (hd1,0)
map (hd1) (hd0)
makeactive
chainloader +1