Eu configurei um servidor pxe e quero inicializar um host cliente a partir dele. Baseio-me no tutorial https://wiki.debian.org/PXEBootInstall para inicializar pxe um instalador debian.
Como sabemos, um servidor pxe é composto por um servidor dhcp e um servidor tftp. Ambos funcionam. Quando eu inicializo o cliente no Linux normal, ele pode obter um endereço IPv4 e baixar um arquivo via tftp do servidor. Mas quando inicializo no pxe, escolhendo a opção correspondente no menu de inicialização, ele obtém o endereço IP, mas não tenta baixar nenhum arquivo. Eu uso tcpdump e 'journalctl -b0 -u tftpd' no servidor para obter algumas informações. Não mostra nenhuma tentativa do cliente de obter um arquivo por tftp.
O mais interessante é que um outro computador, um antigo Fujitsu Esprimo, é capaz de inicializar por pxe a partir desse servidor. Mas quero inicializar um 'PC desktop HP Elite Tower 800 G9', que se comporta conforme explicado anteriormente. Me ocorreu a ideia de que o arquivo servido poderia ser para bios vintage e não adequado para o uefi mais recente. Mas descartei essa possibilidade, pois não há sequer uma tentativa do cliente de baixar o arquivo. Mas quem sabe, ainda é pensável.
Tentei alterar o bios-config (F10), pois é uma solução plausível. O status atual do meu uefi-config é o seguinte
Advanced > Boot Options > Network (PXE) Boot, enabled
Advanced > Boot Options > Network Boot TFTP Window Size, has value 1
Advanced > Boot Options > UEFI Boot Order, all options except 'NETWORK BOOT: IPV4 Network' are disabled
Security > TPM Embedded Security > TPM Device, Hidden
Portanto, este é um arquivo de configuração para o servidor dhcp dnsmasq.
interface=enp0s31f6
domain=ftpdom.com
dhcp-range=192.168.0.3,192.168.0.253,255.255.255.0,1h
dhcp-boot=pxelinux.0,pxeserver,192.168.0.2
dhcp-host=bc:0f:f3:c4:[...],set:allowed,192.168.0.167
dhcp-ignore=#known
enable-tftp
tftp-root=/srv/tftp
pxe-service=x86PC, "PXELINUX (BIOS)", "pxelinux.0"
pxe-service=X86-64_EFI,"PXE (UEFI)","grubx64.efi"
pxe-service=2, "PXELINUX (0002-EFI)", "grubx64.efi"
pxe-service=6, "PXELINUX (0006-EFI)", "grubx64.efi"
pxe-service=7, "PXELINUX (0007-EFI)", "grubx64.efi"
pxe-service=8, "PXELINUX (0008-EFI)", "grubx64.efi"
pxe-service=9, "PXELINUX (0009-EFI)", "grubx64.efi"
A saída no cliente durante a inicialização é
>>>Start PXE over IPv4
Station IP address is 192.168.0.167
PXE (UEFI)
PXELINUX (0007-EFI)
Finalmente funciona com uma configuração muito simples para isc-dhcp.
Por este meio, 192.168.0.2 é o endereço do servidor.