In the Part 1 of this post (Dated 03/10/2021), we looked at how we can configure a Synology NAS as PXE server for installing our ESXi hosts. Synology NAS, like other NASes in the same class, uses a Linux based OS. Like any other Linux distro, this OS too is case sensitive. This gives rise to an issue, that prevents the PXE install to ESXi hosts. Let's take a look at the issue and like always, the workaround!
When we mount any ESXi ISO (at least from ESXi 6.0 upwards, as I have not used the ones before that), you must have noticed that all files and folders names are in all CAPS.
As discussed in the previous post, we present the mboot.efi file as the boot file over the DHCP-PXE server during the PXE process. The mboot.efi file then calls onto boot.cfg file, where all the files required for the ESXi install are called onto.
Now, if we use all the default ISO files and folders as is, we will see an error, where the mboot.efi file calls for 'boot.cfg' file but does not find it, since the ISO has 'BOOT.CFG'.
If we change the boot.cfg to lowercase, boot.cfg file gets loaded, but the remaining files, as configured on the boot.cfg file, do not get loaded.
We can change the character case to 'upper' of all files referred to in the boot.cfg files, that allows for PXE server to transfer all the installation files to the ESXi host over TFTP
However, it seems like ESXi itself calls onto these files in lowercase characters. Since all the installation files were transferred in uppercase characters ( as seen in the screenshot above), the ESXi boot loader fails to load the installation files, hence leading to PSOD at the start of the installation process:
Finally, the workaround to prevent this would be to simply change the character case of all files and folders in the mounted ISO to lowercase from uppercase. This can easily be done using bash or powershell script. Since mboot.efi, boot.cfg and ESXi boot process, all call onto the files in lowercase characters, this solves the issues discussed above, and the installation proceeds exactly as shown in the Part-1 of this post.
Now, if we use a windows distro to make our PXE server, we would not come across these issues. It would also not be an issue if the ISO by default had all files referred to in lower case characters, since ESXi boot process also refers to these files in lowercase characters; probably something we can look forward to in future releases!!
Ever wondered how you could transfer your existing on-premise VMware workloads to AWS EC2 instance with just few lines of code?? Coming up next!!