GRUB: Configuração para dois HD
  ===============================

Tenho 2 hds: 40G e 30G.
O hd de 40G é master e tem esta tabela de partições:

  /dev/hda1       WinFAT32
  /dev/hda2       Linux


Arquivo /etc/grub.conf:

  title Red Hat 2.4.18-3
          root (hd0,1)
          kernel /boot/vmlinuz-2.4.18-3 ro root=/dev/hda2
          initrd /boot/initrd-2.4.18-3.img
  
  title WinXP
          rootnoverify (hd0,0)
          chainloader +1

O hd de 30G é o slave e tem esta tabela de partições:

  /dev/hdb1       WinFAT32
  /dev/hdb3       Linux

Arquivo /etc/grub.conf:

  title Red Hat Linux (2.4.18-3)
          root (hd1,2)
          kernel /boot/vmlinuz-2.4.18-3 ro root=/dev/hdb3
          initrd /boot/initrd-2.4.18-3.img
  title WinXP
          rootnoverify (hd1,1)
          chainloader +1


Quero bootar em qualquer dos 4 SOs. Para isto, tenho que
alterar o boot loader Grub. Obs.: o grub usa uma notação
diferente do Linux para se referir a hds, por isto: hda ->
hd0 e hdb -> hd1. E a numeração das partições começa em 0,
por isto: hda1 -> (hd0,0) e hdb3 -> (hd1,2).

1. Altere o arquivo /etc/grub.conf do hd master (hda),
adicionando a entrada para bootar o GRUB do hd slave:

  title HDAdicional
          rootnoverify (hd1)
          chainloader +1
  

2. Altere o arquivo /etc/grub.conf do hd slave (hdb),
adicionando as duas linhas "map ..." na referência do
Windows:

  title WinXP
          rootnoverify (hd1,1)
          chainloader +1
          map (hd0) (hd1)
          map (hd1) (hd0)

Elas foram adicionadas em razão do SO Windows ser bootável
apenas do primeiro hd. Porém, como queremos bootar Windows
de outro hd que não o primeiro, mudaremos o número do hd
da BIOS para fazer o Windows "acreditar" que reside no
primeiro hd. Isto é obtido com o comando map no arquivo de
configuração do Grub, que usará uma técnica de "swapping"
de disco. Os comandos "map" executam uma troca virtual
entre o primeiro e o segundo hd.

3. Muitos SO não fornecem ao Grub a informação correta de
como mapear os drives BIOS em dispositivos OS. Por isto,
existe o arquivo /boot/grub/device.map. Verifique se no
arquivo /boot/grub/device.map existe a referência ao hd
slave (mapeamento de drive BIOS em dispositivo OS). Se não,
adicione a entrada. Abaixo, segue exemplo do arquivo com
as várias entradas possíveis, inclusive a do hd slave:

  (fd0)   /dev/fd0
  (hd0)   /dev/hda
  (hd1)   /dev/hdb  -> hd slave
  (hd2)   /dev/sda  -> se tivéssemos em nossa máquina um hd SCSI.


Importante: se editarmos manualmente este arquivo, devemos
executar o comando abaixo para reinstalar o Grub.

  grub --batch --device-map=/boot/grub/device.map </etc/grub.conf



O parâmetro --device-map especifica que o Grub interprete
o arquivo map existente. E tb os comandos do arquivo
/etc/grub.conf.

Rebootar a máquina e escolher a opção HDAdicional no
Grub. Aparecerá o Grub do hd slave, escolha o SO que deseja
"bootar" e pronto!! Bom trabalho!

==Referências==

4. http://sdb.suse.de/en/sdb/html/fhassel_grub_overview.html
5. http://www.gnu.org/manual/grub

---------------------------------------------------------------
As mensagens da lista Dicas-L são veiculadas diariamente
para 20864 assinantes.

       Todas as mensagens da Dicas-L ficam armazenadas em 
               http://www.Dicas-L.unicamp.br.
A redistribuição desta e outras mensagens da lista Dicas-L pode
ser feita livremente, deste que o conteúdo, inclusive esta nota,
não sejam modificados.
---------------------------------------------------------------