Install a VMWare ESXi 6.0 Hypervisor in a Hyper-V VM

Update 19th February 2018:

This article has had a lot more attention than I ever expected! This has bought to light several issues with the process as well as changes made to Hyper-V and ESXi that break the process. You could wade through all 256 comments and assemble the corrections yourself, but user @Gambit has helpfully done this for me! So I’ve included the summary here:

@Tom Watson: Adding a line to /etc/vmware/config with vmx.allowNested = “TRUE”
Since all VM’s will be running nested (whole point of article) this is a must if you want them to start! The alternative is adding this line to every VMX file for each guest, Toms solution was much more elegant.

@burnett437: Configure ESXi Management vSwitch “accept” “promiscuous mode”. Apparently this was a known issue even in nested ESXi 5.5. While the host network will operate for a while without problem, the “promiscuous mode” policy will eventually be tripped and you wont be able to talk to the host at random times (I originally thought it was stability issues with the Tulip driver). Now I think this has to due with the nature of nested virtual switches (a VMWare vSwitch insude of a Hyper-V Virtual Switch). When this happens I found you could “down/up” the management vnicX to get it back, but just set the setting not worry about it.

@me: Network threat detection doesn’t like nested virtual switches either. My Symantec Endpoint Client would occasionally block traffic coming from my local NIC (vSphere Client/vSphere Converter) to this nested Host (Windows Firewall did NOT seem to care), but SEP occasionally tripped cause all “suspicious” addressing to the nested host.

@me: Use vSphere converter for guest images coming from other VMWare products….duh. ESXi doesn’t like split vhdk’s, guest won’t boot. This is a beginner mistake, but this article is for Hyper-V admins that may not know the subtle nuances between VMWare products.

@RichMD: I like the idea of hardware pass-through on the NIC. I may tinker with this because it may resolve several issues, not just ESXi v6.5 NIC blacklist issue.
Theoretically, passing the physical NIC directly to the nested ESXi Host could/should resolve the “promiscuous mode”, “Network Threat Protection” and even the “Half Duplex Legacy Adapter Requirement” (very slow network performance) problems. I may revisit this…I think my server board has a 2nd NIC I could try this with if I get the time.

The original article starts here:

Recently I’ve been playing around with the new Hyper-V Nested Virtualization feature within Windows 10 (build 10565 and greater) and Windows Server 2016. It is pretty cool to be able to create virtualized lab environments running that contain Hyper-V clusters. But what if we want a lab that contains VMWare ESXi Hypervisors running on Hyper-V host. I couldn’t find the process documented anywhere and I couldn’t even confirm if it should be possible. But after lots of asking a lot of annoying questions – thanks Adam Burns – Googling and hair pulling I managed to get it going:

ss_vmwareinhv_proof

So this seems like a good topic for a blog post.

What You’ll Need

You are going to need a few things to get this working:

  • A Hyper-V host running on Windows 10 (built 10565 or greater) or Windows Server 2016 TP4.
  • Enable-NestedVM.ps1 – A PowerShell script for enabling Nested Virtualization in a Hyper-V VM. Click here to get the file from the Microsoft team on GitHub.
  • A VMWare account – just sign up for one here if you don’t already have one.
  • VMWare PowerShell CLI installed – I used 6.3 release 1 that I downloaded from here.
  • ESXi-Customizer-PS.ps1 – A PowerShell script for injecting network drivers into an ESXi 5.x/6.x ISO. I downloaded it from here.

I suggest you download all of the above items to a working folder – I called mine d:\ESX-In-Hyper-V, so these instructions will reflect that, but you can call your folder what ever you like.

You should end up with a folder containing these files:

ss_vmwareinhv_neededfiles

And before you ask: No, you don’t need an VMWare ESXi 6.0 ISO – this will get downloaded and produced for us.

The Process

Part 1 – Prepare an ESXi 6.0 ISO with Network Drivers

The biggest problem I ran into when trying to install ESXi onto Hyper-V was that the ESXi kernel doesn’t come with drivers for the Microsoft Virtual Network Adapter or the Microsoft Legacy Network Adapter (emulates a DECchip 21140). So you’ll need to inject these drivers into the VMWare ESXi 6.0 ISO. Luckily there is a script available and the appropriate drivers DECchip 21140 (called “net-tulip” for some reason) that makes this process a breeze:

  1. Install WMWare PowerCLI.
  2. Open a PowerShell console.
  3. Enter the following commands:
    CD D:\ESX-In-Hyper-V\
    .\ESXi-Customizer-PS-v2.4.ps1 -v60 -vft -load net-tulip
    
  4. After a few minutes the VMWare ESXi 6.0 ISO will be downloaded and the “net-tulip” drivers merged with it:

ss_vmwareinhv_createesxiiso

The ISO will now be available in the D:\ESX-In-Hyper-V folder:

ss_vmwareinhv_neededfilesandiso

Part 2 – Create the Hyper-V VM

  1. In Hyper-V Manager create a new Virtual Machine:ss_vmwareinhv_newvmpath
  2. Click Next.
  3. Select Generation 1 and click Next.
  4. Set the Startup Memory to at least 4096MB.
  5. Uncheck Use Dynamic Memory for this Virtual Machine:ss_vmwareinhv_newvmmemory
  6. Click Next.
  7. Don’t bother to Configure Networking on the next step – just click Next.
  8. Select Create a new virtual hard disk and set the Size to 10GB (this is just going to be the boot disk for the ESXi Hypervisor):ss_vmwareinhv_newvmdisk
  9. Click Next.
  10. Select Install an operating system from a bootable CD/DVD-ROM.
  11. Select Image file (.iso) and browse to the ISO created in Part 1.ss_vmwareinhv_newvminstallation
  12. Click Next then click Finish to create the Virtual Machine:ss_vmwareinhv_newvm
  13. Right click the new Virtual Machine and select Settings.
  14. Select the Processor node and increase the Number of Virtual Processors to at least 2:ss_vmwareinhv_vmsettings_processor
  15. Select the existing Network Adapter node and click Remove:ss_vmwareinhv_vmsettings_removenetwork
  16. Select the Add Hardware node and select Legacy Network Adapter:ss_vmwareinhv_vmsettings_addnetwork
  17. Click Add.ss_vmwareinhv_vmsettings_addlegacy
  18. Select a Virtual Switch to connect the ESXi Host to.
  19. Click OK.

The Virtual Machine is almost ready to start up, but there is one more thing to do.

Part 3 – Enable Nested Virtualization

Before the starting up the Virtual Machine we need to enable Nested Virtualization Extensions on it. This is done by running a PowerShell script.

  1. Open a PowerShell console.
  2. Enter the following commands (adjusting the vmName to match the name of your Virtual Machine):
    CD D:\ESX-In-Hyper-V\
    .\Enable-NestedVm.ps1 -vmName 'VMWARE ESXi Host 1'
    
  3. Enter Y when asked to confirm any of the changes:ss_vmwareinhv_enablenestedvirtualization
  4. The Virtual Machine is now ready to have ESXi installed into it.

If you run into any problems with enabling nested virtualization, I’d recommend reviewing the documentation. Covering all the possible ways Nested Virtualization might not be configured correctly is beyond the scope of this post. Also, this is still a preview feature and so may still have issues.

Part 4 – Boot ESXi Virtual Machine

  1. Start up the ESXi Virtual Machine and make sure you’re connected to it so you can see the ESXi boot screen:ss_vmwareinhv_bootfirst
  2. Quickly press Tab.
  3. Add the ignoreHeadless=TRUE to the Boot Options: ss_vmwareinhv_bootoptions
  4. Press Enter.
  5. The ESXi Installation system will start up.ss_vmwareinhv_bootscreenfirst
  6. After a couple of minutes the VMWare ESXi 6.0.0 Installer will start up:ss_vmwareinhv_esxiinstaller
  7. You can now go through the ESXi installation process.
  8. You will receive this warning during the installation process but you can ignore it:ss_vmwareinhv_esxiinstallerwaring
  9. The installation process will begin:ss_vmwareinhv_esxiinstallerinstall
  10. Once the ESXi installation has completed you will see this message:ss_vmwareinhv_esxiinstallercomplete
  11. Eject the ESXi Installation ISO before rebooting the Virtual Machine:ss_vmwareinhv_ejectiso
  12. Press Enter to reboot the VM.

Part 5 – Configure the ESXi Boot Options

The final thing we have to do is permanently set the boot options for the ESXi host so that the ignoreHeadless setting is always set to TRUE.

  1. When the ESXi machine reboots, quickly press SHIFT-O to set the boot options.
  2. Add the ignoreHeadless=TRUE to the Boot Options:ss_vmwareinhv_bootsecondoptions
  3. Press Enter to boot up the ESXi host:ss_vmwareinhv_bootsecond_started
  4. Once the ESXi has booted up, press F2.
  5. Enter the root login credentials that were set during the ESXi installation process.
  6. Select Troubleshooting Options and press Enter.
  7. Select Enable ESXi Shell and press Enter:ss_vmwareinhv_bootsecond_enableshell
  8. Press ALT+F1 to bring up the console:ss_vmwareinhv_bootsecond_console
  9. Enter your root credentials.
  10. Enter the following command:
    esxcfg-advcfg --set-kernel "TRUE" ignoreHeadless

    ss_vmwareinhv_bootsecond_command

  11. Press ALT+F2 to return to the main ESXi screen.

The ESXi host can now be restarted without having to worry about the ignoreHeadless=TRUE setting.

You now have a fully running ESXi Host running inside a Hyper-V Virtual Machine. I shouldn’t have to point out that this is a completely unsupported way of installing an ESXi Host and should never be used for production workloads. But at least we now have a way of running ESXi Hosts in a Hyper-V Lab environment.

Here’s hoping that someone finds this useful!

334 thoughts on “Install a VMWare ESXi 6.0 Hypervisor in a Hyper-V VM

  1. RichMD says:

    I tried this with ESX 6.5 before seeing the blacklisted nic issue. However, since Windows 2016 supports Discrete device assignment, I would think that could resolve the issue if you have a dedicated NIC that can be assigned to the VM for ESX 6.5. Has anyone tried this?

    Like

  2. Maarten van der Slik says:

    ESXi 6.5 doesnt install, but ESXi 6.0 does work. But when I try to start a VM I get the message:

    •VMware ESX and Hyper-V are not compatible. Remove the Hyper-V role from the system before running VMware ESX.
    •Failed to start the virtual machine.

    I will try it again with ESXi 5.5.

    Like

  3. aman says:

    I have got the ESXi 6.0 and ESXi 5.1 up and running and it even picks up an IP from DHCP, however I am not able to connect to it with putty , no ping to and fro . it does not work with static IP as well. I have a very basic setup with no VLANS or anything. Would you know what could be the issue ?
    Host – 2016 Server with hyper-v role
    guest 1 – ESXi 6.0
    guest 2 – ESXi 5.1
    Legacy nics and nesting virtualization on guests enabled.

    Like

    • Hi Aman,

      Unfortunately this is a known issue that we’re all running into. If you look through the comments there is a lot of discussion on this problem and ways of fixing it. However, I’m not certain any one way works.

      Sorry I can’t be of more help 😦

      Like

    • Tom Watson says:

      Check some of my comments on :-

      Install a VMWare ESXi 6.0 Hypervisor in a Hyper-V VM

      I basically had two virtual ESXi VMs, and one Windows VM all on the same Hyper-V virtual switch, and all with Legacy Network Adaptor installed. Those 3 VMs could communicate with each other. I ended up having a setup with 4 x Hyper-V VMs :-

      1. 2 x ESXi VMs, with Legacy Network Adaptor
      2. 1 x Windows 2012 server VM running as a domain controller, with Legacy Network Adaptor
      3. 1 x Windows 2012 server VM running vCenter, NFS services and iSCSI target, with Legacy Network Adaptor

      Certainly enough to get some hands on with ESXi and vCenter.

      Liked by 2 people

    • Will says:

      Hi

      If it’s the same issue I had, you should be able to connect via the IPv6 address. Apparently ESXi will bind the management to the 1st IP it finds, in my case the static IPv6.

      Liked by 1 person

  4. someone else here mentioned they are hitting the same issue as me.
    The install goes fine, configuration fine, set up my storage etc, and when I come to create a VM:

    •VMware ESX and Hyper-V are not compatible. Remove the Hyper-V role from the system before running VMware ESX.
    •Failed to start the virtual machine.

    Nesting is enabled, running the script again tells me no action required as nesting is enabled. Any ideas?

    Like

    • Hi There,

      I think the switch type to use in this case is an Internal switch. Although, I think from memory you can’t ping the ESXi from the host. You can only ping it from another VM attached to the Internal Switch also using a Legacy Network Adapter. I’m not sure if this can be fixed.

      HTH

      Like

      • Sure you can, Create an External vSwitch, this create a vSwitch on the Hyper-V host (Win 8 or 10 or Server 2016) which ever you have Hyper-V installed on, this will bind the vSwitch to a physical adapter on the host. In this case most people will have a flat /24 subnet with their routers acting as the DHCP server. Any VM’s booted up connected to the external vSwitch will get an IP from the router’s DHCP server. Find this IP and ping away. In my case I setup a Windows 7 virtual machine and connected to the external vSwitch. I then added a secondary nic on this VM connected to my internal vSwitch. This VM was then one I could RDP into and connect to hosts within the internal private vSwitch.

        Like

  5. Ken says:

    Hi there thanks heaps – managed to get all working – now how do i go about adding the storage? test environment – i am using external HDDs as storage – dunno if possible or not.
    Hope to hear back from you

    Thanks
    Kp

    Like

    • Hi Ken,

      You should be able to create additional storage VHD’s on your External HDD’s and attach them to the ESXi Virtual Machine. Although you’ll want to make sure the External HDD’s are attached when ESXi is booted. I’d also suggest attaching the new VHD’s as SCSI devices (rather than IDE). Does that help?

      THanks
      Dan

      Like

  6. JYM972 says:

    Found an easy solution for the host to communicate with outside:
    – Create vSwitch Internal
    – Used my ‘usual’ pfSense router, added a Legacy NIC connected to vSwitch Internal
    For better performance, forced the NIC to full duplex

    Like

  7. Thanks for this great post! I managed to get this solution working today on a Windows Server 2016 box – just with VMware 6.0, due to the blacklisted NIC driver, but still – great for a little demo environment which I’m putting together.

    Like

  8. Hi all, ESXi is nested on HyperV and receives an IP address from my DC (same network, vSwitch “internal” network) but i cannot ping it and reach out at all.

    After hours i found how to enable “Promiscuous mode” on vSwitch, on many articles they says that it’s required to nest the VM:
    From ESX console:
    esxcli network vswitch standard policy security set -p true -v vSwitch0

    But my machine is still unable to comunicate inside it’s lan.

    Anyone has ideas?

    Like

  9. Hi,

    I’m happily running a pair of ESXi 5.5 servers in my Hyper-V (Server 2016) environment following the steps in this post, so thanks very much 🙂 I can connect to each host on it’s web management interface from another machine on the same network, so all good.

    Couple of small updates, the downloader script is now version 2.5 (ESXi-Customizer-PS-v2.5.ps1) and instead of running the Enable-NestedVM.ps1 I used the two commands to enable nesting and MAC spoofing listed here: https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/nested-virtualization

    Thanks again!
    John

    Like

  10. Rigo Brenes says:

    Thank you very much for creating this post Daniel, this helped me a lot to create a test lab I need to practice for my exam and your guide is very helpful. I was thinking that you should mention on the steps the solution for the ‘VMware ESX and Hyper-V are not compatible. Remove the Hyper-V role from the system before running VMware ESX.’ error, the solution that Tom Watson gave worked for me. Adding a line to /etc/vmware/config with vmx.allowNested = “TRUE”.

    Like

  11. Damyan Sultanov says:

    Hi Guys,
    Very nice article. Actually I faced the issue related to the network connectivity to the ESXi VM. Just to confirm that it’s working as suggested earlier:
    VM with Windows OS – Legacy Network Adapter – Internal Switch
    VM with ESXi 6.0 – Legacy Network Adapter – same Internal Switch
    Connection is possible to be made only from the VM with Windows OS but not from the host itself, if the switch is external.
    If I find another way will notify

    Like

  12. Roberto Reis says:

    Hi Guys.

    Can I create a new virtual machina in ESXi? I have tried but showed me one generic error.

    Someone can help me?

    Thank you.

    Like

  13. Hi, I have a problem to install ESXi 5.0 on my Hyper-V 2012

    VIB DEC_bootbank_net-tulip_1.1.15-1 requires vmkapi_2_1_0_0, but the requirement cannot be satisfied within the ImageProfile.
    VIB DEC_bootbank_net-tulip_1.1.15-1 requires com.vmware.driverAPI-9.2.1.0, but the requirement cannot be satisfied within the ImageProfile.

    Anyone have kown how I can fix this ?

    Like

    • Hi Kevin, You can probably build the VHD on Windows Server 2012, but you can’t run it. This requires Nested Virtualization support which is only available on Windows 10 or Windows Server 2016. I also doubt this will work with ESXi 5.0 – I’ve only done this on ESXi 6.0…

      Like

  14. Samim & Ali says:

    Wow… Thanks for such great post… Its saved our dollars of hardware cost to learn vmware.

    Thanks by Samim & Ali (Potential Techies)

    Like

  15. Ben says:

    Hi,
    Esxi installed fine but i can’t ping it from my hyper-v host or from another hyper-v vm

    legacy external on esxi
    legacy external on hyper-v vm

    Please advice, thanks.

    Like

  16. Badack says:

    Hi Ben,

    Thank you for your post. It is really interesting.
    Concerning the problem with 6.5 version, can you explain a little bit more why it doesn’t work?
    Do you think that a solution will be available in the futur or is it totally dead?

    Thank’s

    Badack

    Like

    • Script says it should grab the lastest, but saw down the page parameters can be used:

      The simplest use case: Create a vanilla ESXi installation ISO with the latest patch level
      .\ESXi-Customizer-PS-v2.5.ps1
      Calling the script without any parameters will create an ESXi installation ISO of the latest ESXi version (6.5 as of now) and its latest patch level. The ISO file will be created in the script directory. You can modify this behavior by using one or more of the following parameters:
      -v50 : Create the latest ESXi 5.0 ISO
      -v51 : Create the latest ESXi 5.1 ISO
      -v55 : Create the latest ESXi 5.5 ISO
      -v60 : Create the latest ESXi 6.0 ISO
      -v65 : Create the latest ESXi 6.0 ISO

      Like

      • Great info Matthew. In theory the 6.5 ISO should work, but I’ve not had time to try it. And I’ve definitely had more problems using this on Windows 10 than on Server 2016.

        It is probably time I revisit the process and see if it can be improved as well as exposing/suggesting parameters to be used in the script.

        As for the 6.5 build not finding the network adapter, that is not good. That may mean that there is some compatibility issue with the tulip driver with 6.5 and the Legacy hardware – which will be pretty tough to fix. The ideal solution would be for VMWare to release an ESX driver that can hook into a Hyper-V non-legacy network adapter – but I don’t see that happening. 😦

        Like

      • If only all these companies would get along and find a standard! but I guess then it would not make our lives very interesting.

        I am giving this code run a try using powershell to assign pass through hardware, the commands appear to be availible in Windows 10, but not getting them to work 😦

        Modified from this guide
        https://techstronghold.com/blogs/virtualization/pass-through-wired-or-wireless-wi-fi-nic-to-vm-using-hyper-v-discrete-device-assignment-dda-in-windows-server-2016

        My instance ID reference my QLogic DaulPort Dell NIC’s I have in this server. If I can get it working will certainly let you know.

        =================================================================
        $vmName = ‘ESXi-01’
        $instanceId = ‘*B06BDRV*’
        $ErrorActionPreference = ‘Stop’
        $vm = Get-VM -Name $vmName
        $dev = (Get-PnpDevice -PresentOnly).Where{ $_.InstanceId -like $instanceId }
        if (@($dev).Count -eq 1) {

        Disable-PnpDevice -InstanceId $dev.InstanceId -Confirm:$false
        $locationPath = (Get-PnpDeviceProperty -KeyName DEVPKEY_Device_LocationPaths -InstanceId $dev.InstanceId).Data[0]
        Dismount-VmHostAssignableDevice -LocationPath $locationPath -Force -Verbose
        Set-VM -VM $vm -DynamicMemory -MemoryMinimumBytes 8096MB -MemoryMaximumBytes 8096MB -MemoryStartupBytes 8096MB -AutomaticStopAction TurnOff

        # If you want to play with GPUs:
        # Set-VM -VM $vm -StaticMemory -MemoryStartupBytes 4096MB -AutomaticStopAction TurnOff
        # Set-VM -VM $vm -GuestControlledCacheTypes $true -LowMemoryMappedIoSpace 2048MB -HighMemoryMappedIoSpace 4096MB -Verbose

        Add-VMAssignableDevice -VM $vm -LocationPath $locationPath -Verbose

        } else {

        $dev | Sort-Object -Property Class | Format-Table -AutoSize
        Write-Error -Message (‘Number of devices: {0}’ -f @($dev).Count)}
        ==================================================================

        I have a beast of a home lab rig, but ESXi 6 and 6.5 have been very flaky with ATI GPU pass through and the ESXi host hard crashing often so I am now going a Windows 10 install with Hyper-V and trying to run ESXi in Hyper-V.

        Like

  17. Christian says:

    In My lab, this article is working. but my Esxi can only run 32 Bit Guest OS. Is it possible to run 64 Bit Gust OS? if yes, could anyone share how to do?

    Like

  18. Naeem says:

    For me Everything is working as this article explains, but any VMs on Legacy Network adapter is not communicating with any other VMs on the same switch with standard network adapter. I have server 2016 Hyper-v. Please help.

    Like

    • Hi There,

      Unfortunately I’ve never been able to solve the problem of why this happens to some people. There are reported fixes in the comments though, so you could try some of those. I personally have not had the problem so couldn’t validate if the fix worked or not.

      Sorry about that.

      Like

      • Naeem says:

        Hello Daniel. I had the issue where my ESXi hosts unable to communicate with my vCenter server and other servers on same virtual switch. I figured it out, it is communication problem between legacy network adapter and standard network adapter. I had to use legacy network adapter on all of my servers and ESXi host for them to communicate. My lab is up and running. I have another issue where a virtual machine is not powering on. I’m wondering if you had the same issue. I get this error message.
        “VMware ESX and Hyper-V are not compatible. Remove the Hyper-V role from the system before running VMware ESX.
        It looks like it is nesting issue. Thought?

        Like

    • Jop Gommans says:

      I had the same thing, only way I was able to resolve this was by using an additional NIC in the machine (that was not yet in use) and connecting that to my physical switch, adding that to a separate vSwitch (called “ESXi Virtual Switch”) and putting in these commands on the HyperV host:

      $portFeature=Get-VMSystemSwitchExtensionPortFeature -FeatureName “Ethernet Switch Port Security Settings”
      # None = 0, Destination = 1, Source = 2
      $portFeature.SettingData.MonitorMode = 2
      Add-VMSwitchExtensionPortFeature -ExternalPort -SwitchName “ESXi Virtual Switch” -VMSwitchExtensionFeature $portFeature

      And then putting the legacy NIC on the HyperV-VM containing ESXi to Port Mirroring mode “Destination”. That way all traffic to that vSwitch gets mirrored to the ESXi VM, which worked for me. Hope this helps!

      Like

    • Richard Drinan says:

      Does this comment mean it IS possible to get ESXi V6.5 working on Server 2016 or Windows 10 Hyper-V? I had tried Server 2016 with Discrete Device Assignment for the NIC but never got it to work – possibly due to lack of support in the BIOS.

      Like

      • Hi Richard,

        I’m not sure about ESXi 6.5 – I’ve not tried that version. It will depend on if the Tulip drivers are compatible and available with ESXi 6.5. But the process I documented does work for ESXi 6.0. It is pretty fiddly to get the networking to talk outside the host though – but it does work if you’ve got the time to set up a gateway node on the internal switch bound to the ESXi 6.0 host.

        Thanks
        Dan

        Like

  19. DM says:

    I’ve gotten V6 to install fine, but for some reason, it will not pickup a DHCP address. I have other VMs in Hyper-V connected to the same external switch and they pickup addresses just fine. Any recommendations? Thanks in advance

    Like

    • DM says:

      Never mind – I didn’t take some advice on an older post to NOT try and use a wireless adapter to bond the external switch to. Switched it over to ethernet and am now good to go. Thanks!

      Like

  20. John T says:

    Thank you for this guide, it has really helped setting up my VMware test lab. However I am having a problem getting ESXi 5 to install as it appears the net tulip drivers which work with ESXi 6 are not compatible. Does anyone have a link to an alternate driver which works with ESXi 5?

    The reason I ask is I would like to simulate an upgrade from ESXi 5 to ESXi 6

    Thanks

    John

    Like

  21. Ahmed says:

    Thanks Daniel, I was setting up VMware lab on my home PC with Windows 10 Installed. I encountered this error while installing ESX, did some research and found your article on Net. I followed the steps properly and were successfully able to install ESX Hypervisor 6.0..
    Thanks a lot again.

    Like

  22. Naeem says:

    Both of my ESXi hosts are Gen1 machines. Hyper-V doesn’t allow to create legacy network adapter on Gen2 virtual machines. It would be nice to have running VMs on the lab, but not necessary to what I want to accomplish. Thanks, Daniel.

    Like

  23. Jeremy says:

    This is a great guide! I was able to setup 3 ESXi hosts in my 2016 Hyper-V environment in my home lab. I setup vCenter and got the hosts pulled in and setup. However, I have a problem where I added extra disks to the ESXi VMs — it wouldn’t show any storage besides the boot drive. Has anyone else seen this issue?

    I tried all kinds of things: adding drives as another IDE drive, as a SCSI drive, when the VM was powered off, before I installed ESXi, I rescanned the datastores, etc. I can never get the ESXi host to show more than the original boot HD and the CD-ROM. It doesn’t make sense. If it was just the SCSI drive not working I’d assume it was a driver issue, but even when I add a second VHDX on the SAME virtual IDE controller as the boot driver, it still won’t show up. Tried thick and dynamically expanding drives too.

    Like

    • Hi Jeremy,
      Thank you!

      And no, unfortunately I haven’t noticed this, but I haven’t actually added any extra disks to the ESXi VM that I can remember. It seems pretty odd. But it could be the way ESXi manages disks. If you start the ESXi host and then enter the administration console, you should be able to examine all the disks detected in the system. This may allow you to mount them, but it has been a long time since I’ve played with this.

      Thanks
      dan

      Like

  24. Konstantin says:

    Hi Daniel, thank you for the article. Unfortunately it doesn’t work on Windows 10 Hyper-V Fall Creators Update. I’ve created a customized Image using .\ESXi-Customizer-PS-v2.5.1.ps1 -vft -v60 -load net-tulip , created Gen1 VM with legacy NIC, but ESXi can’t find any network adapters.

    Like

  25. Konstantin says:

    Surely I’m using Legacy Network adapter. However, ESXi 5.5 works fine (can run a VM inside Vmware, but ESXi hosts works fine).
    In 6.0 Iooks like de don’t load tulip package during ESXi boot. Probably esxi logs can give more information, but I’m not very proficient at Vmware.
    BTW, can I run VMs inside Vmware? Got an error “Failed to start the virtual machine”.

    Like

  26. Richard Drinan says:

    I don’t know if the V60 builds are newer, but if so that certainly could be the cause. I know that the Tulip driver was specifically black-listed by VMWare in V6.5 so if a V60 updated build is being used, maybe that is the issue?

    Like

  27. Konstantin says:

    At least previous versions are working fine, although we can’t test the latest Vmware features. However, I’m concerned about inability to run VMs inside ESXi host (5.5 in my case). I receive an error that I can’t start it. I believe that I should be able to run VMs inside ESXi, since I can do the same for nested Hyper-V…

    Like

      • Dmitry says:

        Hi Daniel, to my question about powering on the VM on nested esx,
        it is slightly updated for now, so i managed to install ESX6.0 on WS HV 2016, and now the folllowing failure is comming up : “VMware ESX and Hyper-V are not compatible. Remove the Hyper-V role from the system before running VMware ESX.” , so now obviously this becomes my new question to you 🙂 if it is posssible to overcome it?

        Like

  28. Billy Wong says:

    Firstly Thank you for your blog of shared tutorial
    I followed the tutorial step by step . I use ESXi 6.0 version
    but Hyper-v host said it can’t found any network adapter via ESXI installation

    OMG. What can i do for this moment ?

    Liked by 1 person

  29. Billy Wong says:

    I added a Legacy Adapter inside the Guest ESXI, but not work.
    I found some information, said net-tulip driver, vmware blocked the driver, so 6.0 version is not identified.

    Like

  30. Matt says:

    Hi, I have tried this out today and I have run into the same issue with the Legacy Network Adapter not being detected during the installation after adding the tulip driver to the image. So it definitely looks like a change on the legacy adapter or latest ESXi 6.0 image. I am trying to nest ESXi 6.0 on a Server 2016 server. If I find a fix I will post an update.

    Like

Leave a comment