Executa arquivos / scripts EFI de ISO [boot, virtual media]

2

A maioria dos fornecedores fornece recentemente atualizações de firmware de servidores apenas como um conjunto de arquivos EFI ( example ). Mas seus servidores internos (também como qualquer externo) IP-KVM podem conectar apenas ISO imagens como mídia virtual de inicialização. Com esse flash de firmware remoto de mídia virtual é impossível.

Os servidores são remotos a maior parte do tempo e ninguém pode acessá-lo fisicamente para inserir USB para atualizar atualizações de firmware. As atualizações de firmware devem ser remotas apenas para acelerar todo o processo. A questão é como posso lançar EFI arquivos como estes de ISO inicializável para flash atualizações de firmware?

Provavelmente, a solução pronta não existe. Então eu gostaria de construir sozinho. Mas eu não encontrei nada no google para começar. Precisa apontar para algum manual para iniciar ou algo parecido. Pode haver uma maneira de organizar em ISO esses arquivos de alguma forma para que o EFI shell possa acessá-lo e iniciá-lo?

Eu gostaria de Linux solution para build ISO .

    
por raven428 30.08.2018 / 08:31

4 respostas

3

A solução abaixo é implementada no Linux Mint 19 64 em Virtual Machine.

Ferramentas necessárias

GParted - Ferramenta GUI para gerenciar partições. Isso geralmente está disponível no Live Linux CD / DVD. Se você não tiver algum espaço livre no final do seu disco, você terá que redimensionar e criar uma pequena partição FAT. Se partições existentes estiverem em uso, você pode precisar invocar o GParted do Live Linux CD / DVD para que ele funcione em sua partição.

genisoimage - ferramenta de linha de comando para gerenciar ISOs. Se isso não estiver disponível, basta instalá-lo. Isso estava prontamente disponível no Linux Mint 19 64bit

sudo apt-get install genisoimage

Passo 1 - Usando o GParted (De preferência, inicialize com Live Linux CD / DVD, neste caso usei o Live Linux Mint 19 64bit) crie uma pequena partição formatada em FAT16 no final do seu disco. Para este caso em particular, apenas 100MB é mais que suficiente. Certifique-se de que, para um tamanho tão pequeno, o formato seja FAT16 em vez de FAT32

Passo2-DescompacteecopieosarquivosnecessáriosparaestapartiçãoformatadaemFAT.VocêpodesimplesmenteusaroexploradordearquivosGUIpadrãonoLinux.Nãoénecessárionenhumcomandogzipseparado

Etapa3-Crieumaimagemdestapartição.Ocomandoaquié

ddif=/dev/sda3of=/home/test/efi/fat.img

Noexemploacima,/dev/sda3éapartiçãoformatadaemFATquecontémosarquivose/home/test/efi/fat.imgéoarquivodeimagemgerado.

Passo4-AgoravamoscriarumISOinicializáveldaEFI.Osarquivosemsipodemnãosernecessariamenteinicializáveisaqui.

genisoimage-v-J-r-V"TEST" \
  -o /home/test/myiso.iso \
  -eltorito-alt-boot \
  -e fat.img \
  -no-emul-boot \
  /home/test/efi

Nocomandoacima,estamosomitindoocarregadordeinicializaçãodaBIOSeapenasaderindoaocarregadordeinicializaçãoEFI,ogerenciadoralternativo./home/test/myiso.isoéonovoarquivoISOqueestásendocriado,/home/test/efiéolocaldosarquivosdeorigem.Comotal,nãohánada,excetoaimagemdocarregadordeinicialização.

AgoraoISOécriadonoLinuxBox.MonteoISOcomoCDDriveeinicializeseusistemaUEFInoEFIShell.AgoraaseçãodebootloaderdevemapearparaumaunidadenoEFIShelleaimagemcontidanela,juntocomseuconteúdo,deveseracessívelatravésdoShellEFI.

    
por 11.09.2018 / 18:42
2

Com base no que entendo melhor sua pergunta, sugiro uma solução usando as seguintes ferramentas no sistema operacional Windows de 64 bits.

  1. imdisk_toolkit_64_bit Emulador de disco virtual. Download & instalar a partir de aqui
  2. Power ISO (a versão de teste deve fazer como o arquivo em questão é menor que 300MB)

Etapas

Faça o download e instale os softwares acima no seu sistema operacional Windows.

Primeiro, usando imdisk_toolkit, crie um disco virtual e monte-o em uma letra de unidade. Formate o disco no sistema de arquivos FAT. Um disco de cerca de 50 -60 MB é mais do que suficiente para as suas necessidades, pois o tamanho do arquivo é dificilmente < 40MB

Copieoconteúdodeseusarquivos,incluindoarquivosEFI,arquivosflashescripts,paraessaunidadevirtual.

Dentrodomesmoaplicativo,agoracrieesalveumarquivo.imgdaunidadevirtual.

Desmonteaunidadevirtual.Estapartedotrabalhoestáfeita.

AgoraabraoPowerISOecrieumnovocontêinerISOembranco.

VáparaAçãodomenu->Boot->Adicionarinformaçõesdeinicialização

eselecioneoarquivo.IMGquecriamosanteriormente.

Agora,seuarquivoISOépraticamenteinicializável(elecriaumcontêinerFATcomoarquivodeinicialização,embora,naverdade,elenãosejainicializadoporqueseusprópriosarquivosnãosãocarregadoresdeinicialização)

Salveoarquivocomo.ISOegrave-oemumCD/DVD.

EstecontêinerFATdebootloaderdeveestaracessívelnoEFIShelledevesemontarcomoumaunidadeacessívelnoShellEFI.

Eutesteiissoemumamáquinavirtual.Esperoqueissofuncionecomoesperadoemhardwarereal.

    
por 09.09.2018 / 19:32
0

Talvez você possa criar as atualizações de firmware como imagens de inicialização PXE (embora seja necessário tomar cuidado para não acabar em um loop de reflash). A maioria dos servidores com EFI também pode fazer fallback para a inicialização do BIOS PXE, se necessário.

Se o seu dispositivo IP-KVM permitir que você conecte discos USB, você poderá simplesmente inicializar sua "imagem" anexando-a.

Uma maneira melhor pode ser fazer o flash do servidor a partir de um SO totalmente inicializado (e alguns fabricantes fornecem utilitários específicos do SO para fazer isso).

Finalmente, alguns fornecedores de servidores cobrarão uma SUM de dinheiro extra para permitir que você atualize o BIOS do servidor pela rede (por exemplo, via IPMI) - talvez você esteja nesse cenário ...

    
por 09.09.2018 / 13:04
0

Existem outras soluções além do ISO inicializável, embora exijam algum trabalho para serem construídas. A solução a escolher depende muito da natureza dos computadores remotos quanto a fabricante e sistemas operacionais.

Para computadores que são todos do mesmo fabricante, a maioria dos grandes fabricantes fornece produtos destinados a gerir centros de dados, na sua maioria gratuitos. Se esse for o seu caso, aqui estão alguns links:

No Windows, pode-se usar o PowerShell para atualizar o BIOS. Os arquivos necessários devem primeiro ser enviados para o computador remoto. Exemplos de tais scripts são:

Cada solução requer estudo e teste, nenhum deles é fácil ou absolutamente garantido.

    
por 09.09.2018 / 17:01