A inicialização do UEFI falha ao clonar a imagem para a nova máquina

4

Eu tenho dez máquinas idênticas e quero implantar a mesma imagem do Ubuntu 12.04 em todas elas. Fiz uma instalação completa em uma das máquinas e copiei o disco usando dd . O problema é que, se eu usar dd para gravar essa imagem no disco de outra máquina, ela não será mais inicializada. Ou seja, a máquina informa "nenhum dispositivo inicializável encontrado" em todas as máquinas, exceto aquela em que criei a iamge.

Eu suspeito que isso pode ser devido a algo específico do dispositivo ou da máquina sobre a configuração da inicialização do UEFI, mas não posso dizer com certeza. Eu não faço nada fora do comum até onde eu sei.

Por que vale a pena, executar o Boot-Repair em um dos clones corrige o problema e permite que o inicialização da máquina, mas eu prefiro não ter que executá-lo manualmente em cada nova máquina que eu quero clonar a imagem. Além disso, isso parece vincular a unidade a essa máquina, portanto, a inserção de uma unidade "fixa" em uma máquina diferente da que o Boot-Repair executou gerará novamente a mensagem "nenhum dispositivo inicializável encontrado".

É claro que deve ser possível construir uma imagem de tal forma que as entradas de inicialização do UEFI funcionem em qualquer máquina, pois é isso que a imagem de instalação do Ubuntu faz, mas não tenho idéia de como ela alcança isso?

Se for de alguma ajuda, aqui é o arquivo de informações de inicialização gerado pelo Boot-Repair quando ele consertou o disco em um nova máquina.

    
por Jon Gjengset 21.11.2013 / 18:07

2 respostas

7

Sob o EFI, os carregadores de boot são armazenados como arquivos na partição do sistema EFI (ESP). Normalmente, esses arquivos têm nomes exclusivos do SO, como EFI/ubuntu/grubx64.efi para o Ubuntu. Por esse motivo, carregadores de boot devem ser registrados na NVRAM do firmware. O instalador do Ubuntu faz isso quando o sistema operacional é instalado, mas quando você move o disco para outro computador, sua NVRAM não foi modificada, então o computador não inicializa. O uso do Boot Repair instalará uma nova cópia do GRUB e registrará o firmware, corrigindo o problema. Meu palpite é que o gerenciador de inicialização do seu próprio firmware faz uma varredura e registra o gerenciador de inicialização também, mas pode ser que algo esteja acontecendo.

Uma solução possível para esse problema é copiar o GRUB de EFI/ubuntu/grubx64.efi para EFI/BOOT/bootx64.efi . O último é um nome de retorno - o computador é inicializado a partir desse nome, caso não encontre nenhum gerenciador de inicialização registrado. A mídia removível também usa esse mesmo nome de arquivo, pois obviamente, um disco de instalação do sistema operacional não pode ser pré-registrado a menos que use algum nome comum acordado. É possível que o Ubuntu e / ou o Boot Repair tenham copiado o GRUB para esse nome, também, que seu firmware não o detectou inicialmente por algum motivo, e que usar o gerenciador de inicialização do firmware fez com que ele percebesse a presença desse arquivo, explicando você usou essa ferramenta. Na verdade, isso parece mais provável do que seu firmware ser verificado para o nome do arquivo de carregador de inicialização padrão do Ubuntu.

    
por Rod Smith 21.11.2013 / 23:37
4

Curiosamente, o problema se resolveu quando abri o gerenciador de inicialização UEFI (F2 durante a inicialização) e redefinir para os padrões de fábrica.

Meu palpite é que eu tive em algum momento habilitado "Quick boot" ou algum tal recurso que desativava a busca de partições de boot UEFI "não registradas". A execução de grub-update (que invoca efibootmgr ) essencialmente registra o GRUB com o gerenciador de inicialização UEFI para que não precise procurá-lo, mas como esse comando ainda não foi executado nas máquinas clonadas, efibootmgr não tem foi executado e, portanto, a instalação do GRUB não estará na lista do gerenciador de inicialização.

    
por Jon Gjengset 21.11.2013 / 18:50