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).

  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==

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Rubens Queiroz de Almeida