Criando uma imagem PXE inicializável a partir de um atualizador de firmware do utilitário dos

3

Eu queria saber se era possível fazer uma imagem inicializável do PXE a partir de um firmware utilitário. Para alguns detalhes, o atualizador de firmware geralmente deve ser instalado em um USB stick . Eu tenho todos os arquivos simples. Eu deveria estar bem apenas despejando os arquivos simples no meu servidor tftpboot e, em seguida, apenas adicionando os bits adequados para o pxemenu ou o processo é um pouco mais envolvido?

Encontrei o FreeDOS, mas eles não fornecem uma imagem maior que 1.44MB, o que é um problema porque o firmware rom tem apenas 5MB de tamanho. Eu tentei criar uma imagem maior usando essas etapas , mas não obtive nenhum sucesso a cada vez Eu vou iniciar a imagem que não exibe o menu do FreeDOS usual (ele apenas imprime FreeDOS e não fornece prompt de comando).

EDIT: Consegui fazer a rom sair da imagem do FreeDOS de aqui mas é claro que ao rodar o rom ele diz que a rom está corrompida porque a ROM inteira não está lá e está parcialmente lá, devido a haver apenas 1.44MB de espaço na imagem. Para complicar ainda mais as coisas, o rom só será executado quando himem.exe e emm386.exe estiverem em execução (eles são iniciados selecionando a segunda opção no FreeDOS).

EDIT2: Eu finalmente consegui que o pendrive funcionasse depois de adicionar os arquivos simples ao pendrive e o COMMAND.COM de um pendrive personalizado que eu encontrei. Ainda assim, ao copiar os arquivos para uma imagem USB e tentar inicializar a partir do PXE, ele se recusa a inicializar.

    
por Wilshire 29.07.2011 / 16:39

2 respostas

5

Você pode ver um tutorial passo a passo aqui: link

Ou tente procurar "boot ISO via PXE", "boot do DOS via PXE", etc.

edição estendida

O seguinte é testado e funcionando.

Tudo o que você precisa é do Full FreeDOS ISO, um recente LiveCD do Linux, um Linux instalado e um Máquina Virtual .

Então é isso que eu fiz:

  1. Crie uma máquina virtual com um disco rígido de somente 20 MB, além de anexar o FreeDOS ISO completo como um CD-ROM.
  2. Inicialize a máquina virtual a partir do FreeDOS ISO e instale a versão mínima do FreeDOS no disco virtual.
  3. Certifique-se de particionar e formatar o disco rígido com as ferramentas FreeDOS fornecidas durante a instalação. O disco deve ser inicializável e formatado como FAT16.
  4. Ejete a imagem ISO e tente inicializar a partir do disco virtual. Repita as etapas até que ele seja inicializado com êxito no disco virtual. Para mim, só funciona com a terceira opção de boot do FreeDOS, mas você deve experimentar todas elas.
  5. Anexe o LiveCD do Linux à máquina virtual e inicialize o LiveCD. Em seguida, monte o disco virtual em algum lugar no sistema de arquivos.
  6. Transfira as ferramentas necessárias do DOS para o disco rígido montado. Seja via HTTP, SCP, FTP, SMB ou até mesmo através de um flash drive USB real. Não é necessário, mas recomenda-se criar um subpasta do disco virtual e colocar os arquivos nele. Você deve ter extraído os arquivos externamente ou dentro do sistema Linux LiveCD. Certifique-se de que você não sobrescrever quaisquer arquivos do FreeDOS no disco rígido.
  7. Desmonte o disco virtual.
  8. Crie uma imagem de disco do disco virtual com dd if=/dev/sda of=/tmp/freedos.img (substitua / dev / sda pelo nome correto do dispositivo do disco virtual)
  9. Transfira a imagem /tmp/freedos.img para uma máquina real (SCP, SMB, FTP ou qualquer outra).
  10. Desligue o sistema Linux LiveCD, ejete a imagem do LiveCD, reinicialize e tente inicializar novamente no disco rígido do FreeDOS (não na imagem).
    Se funciona e você vê os programas copiados está tudo bem e você pode desligar o sistema novamente. Se não, repita a partir do passo 5).
  11. Se você tiver um Linux instalado em algum lugar, tente instalar o pacote syslinux . Isso é mais fácil do que compilar seus próprios binários ou baixar imagens pré-compiladas de algum lugar.
    Após a instalação, localize o binário memdisk no sistema de arquivos. O meu era em /usr/lib/syslinux/memdisk .
  12. Transfira memdisk e freedos.img para o servidor tftp do seu ambiente PXE e configure-o com a seguinte entrada de configuração.

.

label freedos
menu label FreeDOS flash environment 
kernel memdisk
append initrd=freedos.img harddisk

Inicialize via PXE e aproveite o FreeDOS da rede.

Como um exercício para o leitor, você deve experimentar o iPXE que é um firmware PXE de código aberto. Com ele você pode pular toda a porcaria do tftp / PXE e em vez disso inicializar via HTTP! Nesse caso, você pode inicializar a partir do carregador de inicialização do iPXE e digitar os seguintes comandos:

dhcp
imgfetch http://192.168.1.1/freedos.img
chain http://192.168.1.1/memdisk harddisk

dhcp lhe dá qualquer IP do seu servidor DHCP apenas para se comunicar com 192.168.1.1 ou qualquer que seja seu servidor web (interno). Você também pode definir um IP estático. Os outros comandos baixam e instalam o carregador de inicialização e a imagem de disco do HTTP e, em seguida, inicializam a imagem. Impressionante.

    
por 29.07.2011 / 20:21
0

Você pode usar o memdisk para fazer imagens de disco de inicialização (por exemplo, a partir de um disquete ou disco rígido) ou imagens iso. Por exemplo, aqui está minha configuração de PXE para inicializar o DBAN.

label dban
menu label Wipe hard drive 
kernel memdisk
append initrd=dban/dban.img floppy

Isso é suficiente para trabalhar com algumas ferramentas de atualização de fornecedores. No entanto, parece que a atualização do firmware não é distribuída como uma imagem, mas como um número de arquivos.

AUTOEXEC.BAT CONFIG.SYS HPQUSB.exe O37_0323.ROM AFU0323.BAT AFUDOS.exe ID.exe

O que eu tentaria fazer é usar o utilitário HPQUSB.exe para preparar uma chave USB, criar uma imagem da chave USB e inicializar essa imagem usando o memdisk.

    
por 04.08.2011 / 23:11