Como eu poderia criar uma unidade de CD / USB inicializável que inicializa automaticamente um sistema a partir de um disco rígido específico e não padrão?

1

Contexto:

Eu tenho um sistema que sempre esquece a ordem de inicialização do disco rígido. Eu especifico na BIOS, e depois da próxima reinicialização, ele se foi. Minha unidade de inicialização principal está em um cartão de complemento (HBA SAS). O utilitário de configuração do BIOS da placa-mãe pega as unidades nessa placa bem. Mas, no entanto, eu os organizo na ordem de inicialização HD do BIOS é redefinido no próximo ciclo de energia. A unidade que realmente tem meu sistema operacional nunca está no topo, então o sistema nunca inicializa.

Uma coisa com a qual posso contar é que meu servidor amnésico sempre tentará inicializar a partir de mídia ótica e USB antes de tentar qualquer disco rígido. Além disso, a ordenação dos discos rígidos para os quais ela se reinicia é sempre a mesma (a menos que eu reorganize o cabeamento).

O que eu tentei:

Eu tentei atualizar / redefinir o BIOS para corrigir o problema da raiz, sem sucesso. Eu atualizei / reset / reconfigurou o firmware no meu HBA SAS. Eu tentei entrar em contato com o re aparente do fabricante da placa-mãe: o aparente bug, e me disseram que não há opções de suporte gratuitas disponíveis para mim. A linha de suporte do fabricante SAS HBA me disse para obter uma placa-mãe diferente. Eu tentei escrever um bootloader de carregamento de corrente para o início da unidade que está sempre no topo da lista, que quebrou minha configuração de RAID. Eu tentei ligar o SAS HBA em slots PCIe diferentes e mexer com a ordem de conexão das unidades nos links SATA da placa-mãe nativa e no próprio HBA. A menos que eu desconecte fisicamente todos os links SATA da placa-mãe, o problema persiste e preciso desses links conectados.

Pergunta:

Eu praticamente desisti de resolver a raiz do problema (a BIOS esquecendo a ordem de inicialização HD). Dado que eu posso contar com o sistema tentando inicializar a partir de mídia USB ou óptica primeiro, e que o disco rígido que eu quero inicializar está sempre no mesmo lugar na ordem do BIOS (e presumivelmente enumeração de dispositivo na maioria dos sistemas operacionais), < strong> há um CD de boot que eu possa configurar para fazer o sistema inicializar a partir de um disco rígido numerado arbitrariamente automaticamente?

Minha solução ideal seria algo assim:

  1. Eu faço o download de uma imagem de CD / USB de inicialização automática.
  2. eu configuro seus parâmetros (algo como "depois de 5 segundos timeout, autoboot do HDD 04 "). Isso deve ser capaz de selecionar um disco rígido que não seja a unidade de inicialização padrão do BIOS.
  3. eu coloco a imagem em mídia USB ou óptica e conecto-a ao sistema.
  4. A cada vez que reinicializo o sistema, o novo carregador é executar, e automaticamente diz ao sistema para inicializar a partir do correto dirigir.

Eu sou tecnicamente competente, mas não tenho experiência em configurar manualmente o GRUB ou similar. Onde devo começar?

    
por Zac B 20.02.2013 / 17:22

1 resposta

1

Você pode instalar o GRUB e usar o UUID como identificador para cada partição do disco rígido, para garantir que o PC iniciará sempre a partição correta, apesar dos HDDs estarem ativando sua ordem de inicialização no BIOS.

Primeiro de tudo, basta pegar um LiveCD (qualquer um deve fazer, eu costumo usar SystemRescueCd . Uma vez inicializado no modo de console (opção padrão) ), execute o seguinte comando para obter o UUID:

ls -l /dev/disk/by-uuid/

Isso vai lhe dar algo parecido com o seguinte:

localhost ~ # ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 Feb 22 09:25 0adb57d3-e475-4825-8ff9-32bd82fbd210 -> ../../sda3
lrwxrwxrwx 1 root root 10 Feb 22 09:25 9fb9d595-77b3-458a-b082-80a77d1d2b50 -> ../../sda1
lrwxrwxrwx 1 root root 10 Feb 22 09:25 d1a2c45f-b8dc-4312-a195-853e9364b398 -> ../../sda2

- > ../../sdaX é igual a / dev / sdaX. Desta forma, você pode obter todos os UUIDs da sua partição de HDDs. O exemplo acima são partições do Linux, as partições do Windows podem exibir um UUID diferente, mas elas são sempre exclusivas.

Agora você deve inserir o pendrive USB do qual deseja iniciar o sistema operacional e montá-lo: mount /dev/sdd1 /mnt/pendrive

Então você pode instalar o GRUB no seu pendrive com o seguinte comando:

grub-install --no-floppy --root-directory=/mnt/pendrive /dev/sdd1

Para obter o dispositivo, a chave USB está localizada em você pode executar fdisk -l .

Uma vez instalado, você deve editar o arquivo grub.conf e usar o UUID para selecionar a partição correta:

root (hd0,0)
kernel /<kernel_file> root=UUID=4a2464b4-c865-4681-b9d9-5d8aef1e2215 

Outro método mais fácil poderia ser usar o SuperGrubDisk e deixá-lo encontrar as partições de inicialização e permitir que você escolha qual delas iniciar.

    
por 22.02.2013 / 09:45