De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
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==