Como construir ipxelinux.0

Recentemente, pessoas que usam gpxelinux.0 me perguntaram como eles podem construí-lo com o iPXE mais recente em vez do gPXE estagnado. ipxelinux.0 é basicamente iPXE com um script de inicialização embutido que inicia uma versão embutida do pxelinux.0 .

Em seguida, instale as dependências necessárias usando as ferramentas de empacotamento de sua distribuição. As chances são altas de que você já tem tudo o que precisa instalado, exceto o git.

# On Ubuntu or Debian-based systems this should work
sudo apt
-get install build-essential binutils perl git nasm

Em seguida, clone o repo git iPXE conforme descrito na página de download do iPXE e o repo git SYSLINUX conforme descrito na página de desenvolvimento SYSLINUX lado a lado.

#!/bin/sh
git clone git
://git.ipxe.org/ipxe.git
git clone git
://git.kernel.org/pub/scm/boot/syslinux/syslinux.git

O próximo passo é construir pxelinux.0, que faz parte do syslinux, para que possamos incorporá-lo ao iPXE:

cd syslinux
make

Verifique se o arquivo nomeado core/pxelinux.0existe e tem aprox. 26 KB. Em seguida, você deve alterar o diretório para check-out ipxe e criar um arquivo chamado ipxelinux.ipxecom este conteúdo:

#!ipxe
dhcp

chain pxelinux
.0

Finalmente, podemos construir uma versão do iPXE carregável em cadeia com o script acima e pxelinux.0 incorporado:

cd src
make bin
/undionly.kkkpxe EMBED=../ipxelinux.ipxe,../../syslinux/core/pxelinux.0

A última coisa a fazer é instalá-lo em seu servidor TFTP.

sudo install -v -m 0644 -g root -o root bin/undionly.kkkpxe /srv/tftp/ipxelinux.0

Se você ainda não configurou seu servidor ISC DHCP para inicialização de rede, certifique-se de incluir este snippet em sua declaração de sub-rede. Se você já tem uma entrada para pxelinux.0 lá, você pode simplesmente renomear o arquivo. O nome do arquivo não é mágico e pode ser o que você quiser. Chamá-lo de algo.0 é apenas uma convenção.

next-server 1.2.3.4;
filename
"ipxelinux.0";

Você Terminou!

Também quero dizer que o iPXE tem um sistema de menu baseado em texto desde março de 2012, então, se você não investiu muito na configuração do PXELINUX, pode querer ver como as coisas podem ser feitas sem o PXELINUX. Dê uma olhada na documentação do menu iPXE e meu exemplo de menu iPXE que mostra o menu que eu uso na minha rede doméstica.

Se isso o deixou curioso, junte-se a nós em #ipxe em irc.freenode.net para saber mais.