Windows 10

Fun with VMware Fusion network adapters and Windows PE

I’ve been doing some Windows 10 deployments on Mac OS running VMware Fusion (version 11.5.7) and have been struggling with DRIVER_PNP_WATCHDOG blue screens booting Windows PE. After some investigation, I narrowed it down to the network adapter on the virtual machine: Remove it, everything works fine. Leave it, and the VM blue screens after a few minutes. But some virtual machines worked fine, it just depended on the OS type that was chosen when the VM was created; sometimes, I chose “Other” instead of “Windows 10” (using the same VM to run Linux, so there was a reason).

Comparing the “working” versus “non-working” VMs, there was one significant difference: The working VM was configured to use an e1000e network adapter; the non-working one was using e1000. OK, so what’s the difference? From the VMware documentation, there are a number of (relevant) different network adapter types available:

  • E1000, an emulated version of the Intel 82545EM Gigabit Ethernet NIC.
  • E1000E, an emulated version of the Intel 82574 Gigabit Ethernet NIC.
  • VMXNET3, a VMware-specific paravirtualized NIC that avoids emulation a random piece of hardware.

In a perfect world, you would want the best performance, and you’d get that from VMXNET3 – but that requires the right drivers in Windows PE. Since I didn’t want to mess with that, I changed the network adapter from “e1000” to “e1000e” and my blue screens went away.

Interestingly, the VMware Fusion UI doesn’t let you change this (it’s “smarter” than you are), but you can edit the .vmx file associated with the VM:

(You might ask “why not just use Hyper-V?” In this particular case, that would work fine, but I have a different issue on Hyper-V, maybe more on that at a later date.)

Categories: Windows 10

5 replies »

  1. Thinking out loud, Hyper-V technology uses a type 1 hypervisor which requires bare metal. The product page for VMware Fusion says that “Hyper-V Mode … (Device Guard, WSL)” is not supported. And Parallels only supports Hyper-V through nested virtualization. And Hyper-V requires Windows to run. So, as far as I know, Hyper-V on Mac would require a sandwich like this: bare metal > Mac OS > Parallels with nested virtualization > Hyper-V > Windows + Other VM.

    Like

      • I’m sorry for the confusion. You said you have a different issue on Hyper-V. I’m trying to think of what that might be. Every thing I read says Hyper-V won’t run on Mac OS. My best guess is there is an unrelated problem with Windows PE on Hyper-V. But then I’m not sure how that is relevant to something that has to work on Mac. The big Mac sandwich was meant to say that I’m not sure how Hyper-V relates to a Fusion problem.

        Like

      • My Hyper-V problem is completely unrelated. I am trying to run Alpine Linux in a Hyper-V VM, and as of the 3.12.3 release, X11 no longer works. I switched to VMware to avoid that problem, and then ran into this issue…

        Like

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s