The pain to install VMware ESXi 8 in a virtual machine (no network adapters detected and no hard disk found)

Written by - 2 comments

Published on - last updated on December 29th 2022 - Listed in VMware Virtualization KVM Linux


As written in my previous blog post, I was about to install VMware ESXi 8 in order to do some compatibility testing of the check_esxi_hardware monitoring plugin. To speed up the process, I wanted to install ESXi 8 as a virtual machine. With previous ESXi versions, this has always worked without any hiccups. But with ESXi 8, it turns out, this is not as easy as it was before.

VMware Player with Intel 82545EM NIC

The previous ESXi versions were always installed on my main workstation using VMware Player. This is a lightweight and free Virtual Machine launcher, similar to VMware Workstation but with much less features. In my case I just want to spin up a VM, do some tests and shut down the VM again. For this purpose, the VMware Player software (currently using version 16.2.5 on my workstation) is just enough.

However when trying to install ESXi 8 (using the official ISO from VMware) as guest OS, the ESXi installer ran into a problem:

Now that's a first. The installer was unable to detect any network adapter and bailed out with an error:

No network adapters were detected. Either no network adapters are physically connected to the system, or a suitable driver could not be located. A third party driver may be required.
Ensure that there is at least one network adapter physically connected to the system before attempting installation. If the problem persists, consult the VMware Knowledge Base.

The installer leaves no other choice than to reboot the VM - and therefore launch the installer again, which will ultimately fail with the same error.

Of course I verified the VM settings and the network adapter is present. Unfortunately VMware Player doesn't have the possibility to emulate a specific virtual network card or change the driver.

From another VMware Player VM, running Debian 11, the guest OS detected the network adapter as Intel 82545EM:

ck@bullseye:~$ lspci | grep Ethernet
02:01.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)

Searching for this particular network card in the VMware compatibility list, shows something interesting:

This network card is, according to VMware, only compatible with ESXi 6.5 and 6.7. The newer releases, ESXi 7 and 8 are not listed. Although I can confirm that ESXi 7 U2 (and even ESXi 5) runs on VMware Player 16 without any hacks, maybe for ESXi 8 this is now really the end of the line.

Due to the fact that VMware Player cannot change how the virtual NIC is interpreted by the guest OS, I decided to switch to KVM/QEMU.

Libvirt/QEMU with default (virtio) NIC

Once a new QEMU (K)VM was created using libvirt (virt-install) and using "fedora-unknown" as --os-variant value:

root@kvmhost ~ # virt-install --connect qemu:///system --virt-type kvm -n esxi8 --memory 8192 --vcpus 4 --cdrom /tmp/VMware-VMvisor-Installer-8.0-20513097.x86_64.iso --disk /dev/vgdata/esxi8 --network=bridge:virbr0 --graphics vnc,password=foobar,port=5915 --noautoconsole --os-variant fedora-unknown

After the VM was created, the VM's virtual hardware configuration was checked. What kind of network driver would be used by default?

root@kvmhost ~ # virsh dumpxml esxi8 | grep -A 5 "<interface"
    <interface type='bridge'>
      <mac address='52:54:00:76:71:60'/>
      <source bridge='virbr0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>

The output shows, that the virtual network interface is using virtio as model (and driver).

But even with this setup, the ESXi installer failed to detect the network adapter. During a short moment of 1-2 seconds, a red error message would show up in the console:

Util: 1292: Unable to obtain a NIC MAC address for UUID generation. Will use a fake MAC. Please add/configure a supported NIC.
UWVMKSyscall: 2304: There are no supported network interfaces on this host

There are no supported network interfaces on this host error during ESXi installation

Right after this (quickly disappearing) red error text, the already known "No Network Adapters" message would show up. The ESXi 8 installation failed on this KVM, too!

Libvirt/QEMU with e1000e NIC

Maybe ESXi 8 (and maybe earlier versions, too) doesn't support virtio devices? As the previous ESXi versions were installed on VMware Player and not as QEMU KVM, I wouldn't know.

But let's try to emulate a "physical" NIC this time and re-create the KVM with a "e1000e" virtual NIC:

root@kvmhost ~ # virt-install --connect qemu:///system --virt-type kvm -n esxi8 --memory 8192 --vcpus 4 --cdrom /tmp/VMware-VMvisor-Installer-8.0-20513097.x86_64.iso --disk /dev/vglxc/esxi8 --network=bridge:virbr0,model=e1000e --graphics vnc,password=foobar,port=5915 --noautoconsole --os-variant fedora-unknown

What does the virtual hardware configuration show this time for the virtual NIC:

root@kvmhost ~ # virsh dumpxml esxi8 | grep -A 5 "<interface"
    <interface type='bridge'>
      <mac address='52:54:00:71:29:d8'/>
      <source bridge='virbr0'/>
      <target dev='vnet0'/>
      <model type='e1000e'/>
      <alias name='net0'/>

Here we go, we now have a virtual NIC with a model type e1000e.

Starting the ESXi 8 installation once more and crossing fingers... and indeed! The ESXi setup continued and now shows the "Welcome to the VMware ESXi 8.0.0 installation" message!

Next step is to accept the EULA with [F11]:

ESXi 8.0.0 EULA

And then chose the hard drive where to install ESXi:

Hold on a minute. Why is there no disk to chose from? Neither [F1] for Details, [F5] to refresh the list nor [ENTER] to continue would work in this situation. Oh come on!!!

A quick check on the virtual block device shows that virtual bus "virtio" is used in this KVM:

root@kvmhost ~ # virsh dumpxml esxi8 | grep -A 7 block
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='none' io='native'/>
      <source dev='/dev/vglxc/esxi8'/>
      <backingStore/>
      <target dev='vda' bus='virtio'/>
      <alias name='virtio-disk0'/>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
    </disk>

Looks like ESXi really doesn't like virtio. Neither on virtual ethernet interfaces nor on virtual disks.

Libvirt/QEMU with e1000e NIC and SCSI bus

The first try was to re-create the ESXi8 KVM with "scsi" as block device bus (instead of the default virtio):

root@kvmhost ~ # virt-install --connect qemu:///system --virt-type kvm -n esxi8 --memory 8192 --vcpus 4 --cdrom /tmp/VMware-VMvisor-Installer-8.0-20513097.x86_64.iso --disk /dev/vglxc/esxi8,bus=scsi,target=sda --network=bridge:virbr0,model=e1000e --graphics vnc,password=foobar,port=5915 --noautoconsole --os-variant fedora-unknown

Looking at the virtual hardware definition now shows the disk target as sda and using the scsi bus:

root@kvmhost ~ # virsh dumpxml esxi8 | grep -A 7 block
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='none' io='native'/>
      <source dev='/dev/vglxc/esxi8'/>
      <backingStore/>
      <target dev='sda' bus='scsi'/>
      <alias name='scsi0-0-0'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>

However, even with this virtual hardware setup, the ESXi 8 installer was again unable to detect any disk.

But let's not give up just yet.

Libvirt/QEMU with e1000e NIC and SATA bus

Running out of options, there are only the "sata" and "ide" bus' left to try. Let's go with the SATA bus first and re-create the ESXi8 VM:

root@kvmhost ~ # virt-install --connect qemu:///system --virt-type kvm -n esxi8 --memory 8192 --vcpus 4 --cdrom /tmp/VMware-VMvisor-Installer-8.0-20513097.x86_64.iso --disk /dev/vglxc/esxi8,bus=sata,target=sda --network=bridge:virbr0,model=e1000e --graphics vnc,password=foobar,port=5915 --noautoconsole --os-variant fedora-unknown

Checking out the virtual hardware specs of this VM confirms, that the sata bus is now used:

root@kvmhost ~ # virsh dumpxml esxi8 | grep -A 7 block
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='none' io='native'/>
      <source dev='/dev/vglxc/esxi8'/>
      <backingStore/>
      <target dev='sda' bus='sata'/>
      <alias name='sata0-0-0'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>

Launching the ESXi 8 installer once again...

YAYYY! The ESXi 8 installer finally detected the (SATA) disk as QEMU HARDDISK!

The installation can now continue with the keyboard layout:

Followed by setting the root password:

The next message is a warning that hardware virtualization was not detected:

In my case I can perfectly ignore this warning as I am not going to deploy any VMs on this (virtual) ESXi 8 server. I just want to start the ESXi 8 server and the CIM server to test monitoring compatibility with check_esxi_hardware, remember? Luckily the installation continues after this warning:

This was the last message requesting an input. After this the installation of ESXi 8 as guest OS started:

A few minutes later, the installation completed:

After a reboot, ESXi 8 correctly booted and showed the typical grey/yellow info screen on the console:

And by using the browser, the ESXi management can be successfully opened:

The root user can be used to log in to the user interface:

Finally: Success!

TL;DR: Running ESXi 8 as Virtual Machine

ESXi 8 seems to be harder to run as a virtual machine as previously working (virtual) hardware were removed from the ESXi compatibility and are no longer supported. Also all kinds of "virtio" driver/devices are not detected by ESXi 8. Depending on the Hypervisor software you use, you might have to change the types of virtual network card and virtual hard disk in order they can be recognized by the ESXi 8 installer.

Also note that ESXi is supposed to run on physical hardware. Running ESXi as a Virtual Machine is possible but should only be used for testing purposes.


Add a comment

Show form to leave a comment

Comments (newest first)

Claudio from Switzerland wrote on Jan 10th, 2024:

Edevald, yes, at the end I got it working but only by installing ESXi 8.0 in a Linux KVM. Was never able to get this working in VMware Player.


Edevald from Cotia - SP wrote on Jan 10th, 2024:

E ai amigo, conseguiu rodar o ESXi 8.0 na VM? Também estou com a mensagem: Unable to obtain a NIC MAC address for UUID generation. Will use a fake MAC.


RSS feed

Blog Tags:

  AWS   Android   Ansible   Apache   Apple   Atlassian   BSD   Backup   Bash   Bluecoat   CMS   Chef   Cloud   Coding   Consul   Containers   CouchDB   DB   DNS   Database   Databases   Docker   ELK   Elasticsearch   Filebeat   FreeBSD   Galera   Git   GlusterFS   Grafana   Graphics   HAProxy   HTML   Hacks   Hardware   Icinga   Icingaweb   Icingaweb2   Influx   Internet   Java   KVM   Kibana   Kodi   Kubernetes   LVM   LXC   Linux   Logstash   Mac   Macintosh   Mail   MariaDB   Minio   MongoDB   Monitoring   Multimedia   MySQL   NFS   Nagios   Network   Nginx   OSSEC   OTRS   Office   PGSQL   PHP   Perl   Personal   PostgreSQL   Postgres   PowerDNS   Proxmox   Proxy   Python   Rancher   Rant   Redis   Roundcube   SSL   Samba   Seafile   Security   Shell   SmartOS   Solaris   Surveillance   Systemd   TLS   Tomcat   Ubuntu   Unix   VMWare   VMware   Varnish   Virtualization   Windows   Wireless   Wordpress   Wyse   ZFS   Zoneminder   


Update cookies preferences