Installing ESXi with a USB NIC
Creating a custom ISO for ESXi 7 with a USB NIC
Several years ago I wrote about how to create a custom ISO for installing ESXi with a Realtek 8111 NIC. Unfortunately that process was only valid for ESXi versions up to 6.7, which has reached its end of life.
To upgrade the host that I previously wrote about, I looked into the USB Network Native Driver for ESXi Fling. This had listed support for a handful of inexpensive USB NICs, so I purchased a cheap RTL8153 USB NIC to try out.
Because of the incompatibility of the existing NIC with ESXi 7, I was previously unable to even complete the install on this hardware. This meant I would have to create a new installer ISO with the Fling bundled in it, rather than upgrade in place or upgrade to 7 and then install the Fling later.
The process was largely the same as before, but to make things easy to follow, these are the exact steps that I performed:
1. Retrieve the ESXi 7.0 Offline Bundle
To obtain the prerequisite tools, refer to the prior blog post. At the time of writing, the current latest release of ESXi 7 is 7.0.3, so I downloaded the offline bundle with the following command:
1
PS C:\Users\Andrew\Downloads> .\ESXi-Customizer-PS.ps1 -v70 -ozip
We now have an archive named ESXi-7.0U3so-22348808-standard.zip
(or something similar if a newer version is released).
2. Download the USB NIC Fling
Download the latest version of the Fling for ESXi 7 from this page: https://communities.vmware.com/t5/Flings/ct-p/77.
Currently the latest supported version is 1.10.
3. Build the new ISO
With both of the offline bundles (ESXi and the Realtek driver) in the same directory, we can now run some more commands:
-
Create the software depot:
1 2
PS C:\Users\Andrew\Downloads> Add-EsxSoftwareDepot ".\ESXi703-VMKUSB-NIC-FLING-55634242-component-19849370.zip", ` "ESXi-7.0U3so-22348808-standard.zip"
-
Create an image profile by cloning an existing one:
1 2 3 4 5
PS C:\Users\Andrew\Downloads> Get-EsxImageProfile PS C:\Users\Andrew\Downloads> New-EsxImageProfile -CloneProfile ESXi-7.0U3so-22348808-standard ` -name ESXi-7.0U3so-22348808-usb-nic -Vendor Razz PS C:\Users\Andrew\Downloads> Set-EsxImageProfile ESXi-7.0U3so-22348808-usb-nic ` -AcceptanceLevel CommunitySupported
-
Add the driver to the new image profile:
1 2 3
PS C:\Users\Andrew\Downloads> Get-EsxSoftwarePackage PS C:\Users\Andrew\Downloads> Add-EsxSoftwarePackage -ImageProfile ESXi-7.0U3so-22348808-usb-nic ` -SoftwarePackage vmkusb-nic-fling
-
Create the ISO:
1 2
PS C:\Users\Andrew\Downloads> Export-EsxImageProfile -ImageProfile ESXi-7.0U3so-22348808-usb-nic ` -ExportToIso -filepath .\ESXi-7.0U3so-22348808-usb-nic.iso
4. Create a Bootable USB Installer
I used Rufus as well to create the bootable USB drive from the ISO, but you can use any tool that will get the job done.
5. Install and Expect a Failure!
Boot the installer and go through the prompts until you reach an error screen at 81% installed. Never fear! This is expected!
Thankfully I found this blog post (Solution: ESXi Installation with USB NIC only fails at 81%) that explained how technically ESXi was installed at this point, but not fully confiugred. There is a simple fix to force ESXi to recognize the USB NIC for the management interface.
In case that site goes down, I’ll quote the steps below:
- … Create ISO …
- … Install until 81% failure …
- At this point, ESXi is already installed, but not configured.
- Remove the installation media and reboot the system
- When ESXi is loaded, press F2 and login as “root” without password. (The password entered during the installation has not been saved because the configuration failed)
- You should notice that all Network Options are greyed out. Select Network Restore Options.
- Select Restore Network Settings
- Log out
- Log back in
- Network options are no longer greyed out and the vusb0 adapter has been detected
Once the steps are followed, you’ll be up and running with ESXi 7.0 fully leveraging your new USB NIC! Even better, the default VM Network will be configured to use this NIC as well, so no extra steps are needed to hit the ground running with new VMs, or to update existing VMs.