GRUB - Configuração para dois HD
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 14 de Março de 2003
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).
- 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
- 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. - 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==