 S
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