Existe uma maneira de instalar o GRUB em sdb em uma instalação do USB no RHEL 6?

1

Estou fazendo uma instalação do RHEL 6 usando uma unidade USB. Funciona muito bem, mas toda vez que eu quero usar o computador, eu tenho que ter o USB inserido. Na instalação, o USB é sda e o disco rígido de destino é sdb. O GRUB é instalado no USB todas as vezes (sda). Então, existe uma maneira de fazer uma instalação do RHEL onde ele instala o GRUB para o sdb (o destino onde o RHEL está sendo instalado)? Eu acho que o RHEL o instala em sda por padrão todas as vezes.

Obrigado pela ajuda!

    
por jonesy19 14.05.2018 / 04:19

1 resposta

1

A menos que dito de outra forma, o GRUB assume que o primeiro disco detectado pelo instalador também será o primeiro disco detectado pelo firmware do sistema. Em instalações de CD ou de rede, essa heurística geralmente funciona (a menos que você tenha vários controladores de armazenamento).

Mas quando a mídia de instalação é USB, o instalador do RHEL 6 a detecta primeiro antes de qualquer outro dispositivo de armazenamento. Se você está configurando uma instalação kickstart, você pode definitivamente dizer para escrever o bootloader em /dev/sdb . Isso é feito usando a opção --driveorder da palavra-chave bootloader : se você está inicializando o instalador a partir do USB, você deve especificar o disco no qual o SO será instalado como o primeiro disco na ordem do disco, ou seja

bootloader --location=mbr --driveorder=sdb,sda <...>

A lógica pode parecer um pouco estranha aqui. É porque a opção está realmente tentando identificar qual disco o BIOS do sistema verá como o "primeiro disco" ao inicializar o sistema instalado, já que a maneira padrão do BIOS de selecionar o disco para inicializar é colocá-lo como primeiro disco na ordem vista pelo BIOS. Mas a opção --driveorder deve usar os nomes dos dispositivos Linux como eles existem no momento da instalação ... o que não será necessariamente o mesmo de quando o sistema instalado está rodando.

Essencialmente, devemos dizer ao instalador "uma vez que o sistema esteja instalado e inicializando por conta própria, o que é agora /dev/sdb será o primeiro disco".

Isso será suficiente para instalar o bootloader com sucesso no disco rígido de destino. Mas também deixará o sistema instalado com um arquivo /boot/grub/device.map que indica que o primeiro disco será /dev/sdb ... o que provavelmente não será mais verdadeiro depois que o sistema inicializar com a unidade USB desconectada. Isso vai te morder se / quando você precisar atualizar o pacote GRUB, fazendo com que o bootloader falhe após uma atualização.

No entanto, a solução é simples: se você está construindo uma instalação do Kickstart para USB, basta configurar um comando pós-instalação para excluir o arquivo /boot/grub/device.map após a conclusão da instalação. Pode ser tão simples como:

%post
rm /boot/grub/device.map

%end

Se /boot/grub/device.map não existir, o comando grub-install irá recriá-lo automaticamente se / quando for executado na próxima vez ... e, então, será muito mais provável que ele faça a escolha correta. Se quiser ter absoluta certeza, você pode verificar a situação após a conclusão da instalação e a reinicialização do sistema, além de gravar um arquivo /boot/grub/device.map preciso manualmente.

    
por 14.05.2018 / 07:53