errors in pxe boot

For the “new” esxi 6.5 we need a new automated way of deploying host

We always use PXE and TFTP for our staging

We had the idea of using UEFI boot, because we are still running on legacy bios.

PXE will try to do a DHCP lease on every NIC and point 1 to the PXE server.

This is the TFTP server I used in my home lab: tftpd32

We network booted the blade and PXE was launched and it started to install ESXI

But after a while it threw this error:

error lsu_lsi_.v00 and the Fatal error 19 timeout

looking into the log of the TFTP server there is a timeout waiting for ACK block

Peer returns ERROR <User aborted the transfer> -> aborting transfer [14/08 14:28:08.025]

Connection received from (server ip filtered) on port 1390 [14/08 14:28:08.025]

Read request for file <EFI/IMAGES/201807_01/scsi_lib.v00>. Mode octet [14/08 14:28:08.025]

Using local port 53074 [14/08 14:28:08.026]

TIMEOUT waiting for Ack block #15  [14/08 14:28:23.029]

Solution I found but I still don’t really understand was to limit the local ports used for TFTP

I limited the local ports for 53015-5350 and it worked and booted further.

tftpd64 settings:

extra notes

I also noticed that changing the anticipation window could impact the speed of your staging -> read more here

why you should probably also go to UEFI -> read more here

VMware documentation of how to set up PXE:

  1. Install the TFTP Server
  2. Configure the Auto Deploy and TFTP
  3. Installing ESXi Using PXE

mounting ISO to HPe server-powershell

tested on HPe gen 8/9 – DL360 – BL460c – DL580

if you think you know what you are doing, just read the blue lines and skip my bla bla, otherwise, read on

First off, it will not work if you have a standard ILO license, the mount command later on will fail – maybe you are able to get by this if you write everything in redfish or something, but if you use the ilo cmdlets it will not work.

Most racks have an advanced license in our environment

If you work in a blade environment and you have standard ilo, you will have a job off asking advanced licenses through procurement and the HPe team.

Next up we have the firewall ports, you will have to communicate with the ilo, let’s say the ILO ip is, then you will have to open the firewall from where you want to execute the scripts to on port (443, 17988, 17990)

Then we have the cmdlets itself, should be downloaded from HPE website:


make sure you go supported:

2008R2 -> 1.5 latest release

Later then 2008R2 -> 2.0 or higher

You will also have to import them, so open PowerShell ISE and type:

Import-Module HPiLOCmdlets

We also need credentials, we do this via AD:

$credentials = Get-Credential

$iloentryip =

$ISOpath =

#this will mount the iso, the disablecertificate is because it is in our POC and i am lazy

Mount-HPiLOVirtualMedia -Server $iloentryip -Credential $credentials -DisableCertificateAuthentication -Device CDROM -ImageURL $ISOpath

#when you have it mounted, you want to connect to it, therefor we have this command to connect the server to the iso

Set-HPiLOVMStatus -Server $iloentryip -Credential $credentials -VMBootOption CONNECT -Device CDROM -DisableCertificateAuthentication

#setting first time boot to the CDROM device

Set-HPiLOOneTimeBootOrder -Server $iloentryip -Credential $credentials -Device CDROM -DisableCertificateAuthentication

Okay problems I had doing this:

IIS config:

It does not work with a local drive or something, you have to set up apache or IIS to host the iso, this is a minor work, after you set it up, test your isopath so you know it downloads.

directory browsing

Setting mimes types ( .iso and .img )


Server problems -> if it goes through boot with error, it somethimes does not boot from iso-> important for automation

Mode to UEFI Mode if using HPE SW RAID.

Caution,73,540,0x000A,POST Message,,,07/06/2018 15:36:00,42: POST Error: 292 – Invalid HPE Software RAID Configuration. HPE B140i SW RAID Mode is NOT supported when the Boot Mode is configured for legacy BIOS Mode. Action: Configure the Boot Mode to UEFI Mode if using HPE SW RAID.

try to do it manually, before you do it with scripts, this will give you a better error than through the cli.

if all goes well you should have something like this:

now you can use it to automate deployment or updating