PXE Client tries to find wrong file



  • Hi, thanks for reading.
    I’m noob and have 0 exp about PXE world.

    Today i installed FOG server and run it, and tried to pxe-boot client vm.
    However, something not work.
    My ESXi guest vm found where the pxe server is and tries to boot, but it said “file not found”.
    I checked everything, but nothing helped me…

    So i captured packet and see what’s going on.
    When client request ip, my client vm got ip and file name called “undionly.kpxe.0”.

    This is weird, because i didn’t set my /etc/dnsmasq.d/ltsp.conf to find “undionly.kpxe.0”. It should find “undionly.0”.

    Why fog server give the file name “undionly.kpxe.0”, not “undionly.0”?
    This is my /etc/dnsmasq.d/ltsp.conf.

    
    # Don't function as a DNS server:
    port=0
    
    # Log lots of extra information about DHCP transactions.
    log-dhcp
    
    # Set the root directory for files available via FTP.
    tftp-root=/tftpboot
    
    # The boot filename, Server name, Server Ip Address
    dhcp-boot=undionly.0,,10.0.0.182
    
    # Disable re-use of the DHCP servername and filename fields as extra
    # option space. That's to avoid confusing some old or broken DHCP clients.
    dhcp-no-override
    
    # inspect the vendor class string and match the text to set the tag
    dhcp-vendorclass=BIOS,PXEClient:Arch:00000
    dhcp-vendorclass=UEFI32,PXEClient:Arch:00006
    dhcp-vendorclass=UEFI,PXEClient:Arch:00007
    dhcp-vendorclass=UEFI64,PXEClient:Arch:00009
    
    # Set the boot file name based on the matching tag from the vendor class (above)
    dhcp-boot=net:UEFI32,i386-efi/ipxe.efi,,10.0.0.182
    dhcp-boot=net:UEFI,ipxe.efi,,10.0.0.182
    dhcp-boot=net:UEFI64,ipxe.efi,,10.0.0.182
    
    # PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.
    pxe-prompt="Booting FOG Client", 1
    
    # The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,
    # Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI
    # This option is first and will be the default if there is no input from the user.
    pxe-service=X86PC, "Boot to FOG", undionly.kpxe, 10.0.0.182
    pxe-service=X86-64_EFI, "Boot to FOG UEFI", ipxe.efi, 10.0.0.182
    pxe-service=BC_EFI, "Boot to FOG UEFI PXE-BC", ipxe.efi, 10.0.0.182
    
    dhcp-range=10.0.0.182,proxy,255.255.255.0
    

    I exactly followed this --> https://wiki.fogproject.org/wiki/index.php?title=ProxyDHCP_with_dnsmasq
    TFTP working, DNS and DHCP server working…

    By the way, if i copy “undionly.kpxe”, paste it in directory “/tftpboot” and rename it to “undionly.kpxe.0”
    pxe boot successfully works.

    How this weird fog server behavior happens? No clue…


  • Developer

    @Beyondlimitation the version of dnsmasq you’re running is old. old versions only allowed .0 to be on the tail end of a file name

    https://serverfault.com/questions/882554/when-configuring-dnsmasq-for-pxe-booting-why-do-i-need-to-change-undionly-kpxe/882697#882697


  • Moderator

    @Beyondlimitation said in PXE Client tries to find wrong file:

    By the way, if i copy “undionly.kpxe”, paste it in directory “/tftpboot” and rename it to “undionly.kpxe.0”
    pxe boot successfully works

    While I see you have it sorted out, requiring the boot file to end in a “.0” was a requirement of DNSMASQ before 2.76 (as well as syslinux). With 2.76 and later its just the file name. The “.0” requirement was removed since that is a bios related thing. What version of dnsmasq are you running (i.e. dnsmasq -v)



  • @Junkhacker
    I just found what’s wrong.
    I mis-typed file name. : O
    Type the right file name and re-try. It worked…

    Your answer is really great!



  • @Junkhacker
    Thank you. It worked.
    But now i have a new question.
    When i switched to UEFI, it didn’t worked.

    What should i do? And i want to learn more about pxe-boot. Can you advise me? Tutorial, Official document or something that helps.


  • Developer

    @Beyondlimitation the version of dnsmasq you’re running is old. old versions only allowed .0 to be on the tail end of a file name

    https://serverfault.com/questions/882554/when-configuring-dnsmasq-for-pxe-booting-why-do-i-need-to-change-undionly-kpxe/882697#882697


Log in to reply
 

451
Online

6.5k
Users

13.9k
Topics

131.4k
Posts