6 Replies Latest reply on Jun 21, 2020 3:49 PM by BootRecord

    ESXi 6.7 U3 installation from PXE server using iPXE

    4nub1s Lurker

      Hello everyone,

       

      I'm currently in the process of setting up a PXE server for installation of multiple linux distrons including ESXi 6.7. The server is set up to serve Legacy as well as UEFI installations.

       

      Thanks to multiple guides I could find on the internet, including vmware.com, I could set up the server and the ESXi Legacy installation runs fine. However, there are 2 issues, I simply cannot find an answer for:

       

      Legacy Boot:

      Everytime I load the mboot.c32 I receive the message "Network Boot: MAC address not found. Add 'BOOTIF= ... Replace with MAC address of the boot interface"

       

      Since the the server is meant to install the OS on always different host machines, which MAC address am I supposed to provide here and how? Or can this message be disregarded? Is there a way to mask the message entirely?

       

      This is the code in the ipxe boot menu for legacy boot:

       

      :esxi67vm

      echo Starting VMWare ESXi 6.7 Installation

      dhcp

      kernel -n mboot.c32 http://${server}/vmware/esxi67/mboot.c32

      imgargs mboot.c32 -c http://${server}/vmware/esxi67/boot.cfg

      boot mboot.c32 || goto failed

       

      UEFI Boot:

      Booting the installer works fine but always hangs in the last step with the message : Shutting own firmware services... Using 'simple offset' UEFI RTS mapping policy

       

      Is there something I'm missing?

       

      This is the code in the ipxe boot menu for uefi boot:

       

      :esxi67vm

      echo Starting VMWare ESXi 6.7 Installation

      dhcp

      kernel -n mboot.efi http://${server}/vmware/esxi67/mboot.efi

      imgargs mboot.efi -c http://${server}/vmware/esxi67/boot.cfg

      boot mboot.efi || goto failed

       

      Best Regards

        • 1. Re: ESXi 6.7 U3 installation from PXE server using iPXE
          dariusd Virtuoso
          User ModeratorsVMware Employees

          For BIOS boot:

           

          Peeking at the mboot source code here, there is a comment explaining that gPXE can not provide the bootloader with the identity of the boot NIC unless gPXE was itself launched from pxelinux.  Since iPXE is derived from gPXE, it is likely to share the same constraint.  If you're not already launching iPXE via pxelinux, perhaps give that a try, and/or try with the latest version of iPXE and pxelinux (if you're not already doing so).

           

          The MAC address required is the that of the local (client machine) interface which has performed DHCP; Without that MAC address, the booting ESXi instance has no way of knowing which NIC the system booted from.

           

          For EFI boot:

           

          First step would be to see if you can examine the host's disk/network activity to see whether ESXi has actually locked up at that point or has just stopped updating the screen.  I have seen several cases where ESXi has gone ahead and booted, but the display has frozen at exactly this point due to some quirk of the host's EFI firmware.

           

          If in doubt, give the host a while to "boot" with the screen not changing, then follow the usual ESXi console shutdown procedure: <F12>, <Enter>, type the root password and <Enter>, then press <F2> to shut down the host.  Wait another few minutes, and see if the host powers itself off.

           

          Thanks,

          --

          Darius

          1 person found this helpful
          • 2. Re: ESXi 6.7 U3 installation from PXE server using iPXE
            4nub1s Lurker

            Hi dariusd,

             

            thanks for the reply. I managed to fix the MAC problem during Legacy Boot. It was actually a lot easier than I imagined. Just add "BOOTIF=01-${mac}" to imgargs and everything is fine.

             

            Sadly, I couldn't fix the issue with EFI boot however. The system completely freezes with the aforementioned message displayed. The installer doesn't even start in the first place and I cannot change to a different console either. Tried with different Mainboards (Supermicro, Asus) and always receive the same issue.

             

            PXE Boot -> Load Files -> Freeze (Shuttding down firmware services...)

             

            There's another weird phenomenon during file loading. I get multiple keyboard error message but a known working keyboard is connected.

             

            Best Regards

            • 3. Re: ESXi 6.7 U3 installation from PXE server using iPXE
              dariusd Virtuoso
              VMware EmployeesUser Moderators

              Nice work on the BIOS-boot fix!

               

              Does your EFI-boot configuration use another bootloader to chain-load mboot?  If so, can you test without that other bootloader – just directly load mboot – to see if that works?  I have recently received another report of trouble using another bootloader to chain to mboot, and I'm interested to see if your situation is the same.

              --

              Darius

              • 4. Re: ESXi 6.7 U3 installation from PXE server using iPXE
                4nub1s Lurker

                Thanks

                 

                Yeah, I'm currently chaining from ipxe.efi to mboot.efi since it's configured as a multiboot environment.

                 

                If I hand out mboot.efi directly via DHCP/TFTP combo, everythings works fine. This combination is of course viable, but would require either a secondary network or vlan configuration which I'd rather not use.

                 

                I compiled ipxe.efi directly from the source code on github. I'm not sure yet whether it's just a missing configuration or an incompatibility/bug.

                 

                Best Regards

                • 5. Re: ESXi 6.7 U3 installation from PXE server using iPXE
                  jameshyde2012 Lurker

                  I am hitting the exact same issue (keyboard error), on Dell hardware, ipxe -> mboot -> esxi 6.7u3.

                   

                  any workaround on this one?

                  • 6. Re: ESXi 6.7 U3 installation from PXE server using iPXE
                    BootRecord Lurker

                    I ran into the same problem a couple weeks ago while I was doing a project for my final exams. The only way to set it up that worked for me was abusing sanboot to boot straight from the ISO file. https://ipxe.org/cmd/sanboot

                    So your boot script would look something like this.

                    :esxi67vm

                    echo Starting VMWare ESXi 6.7 Installation

                    dhcp

                    sanboot http://${server}/vmware/esxi67/esxi67.iso

                     

                    It should pick between UEFI and Legacy automatically.