An issue I came across recently with a Citrix environment running on VMware vSphere 5.
When booting a PVS target device (the one, oddly) the VM blue screens and restarts only to go in to a blue screen restart loop. The following error was recorded in the blue screen output:
ERROR: BNIStack failed, network stack could not be initialized along with stop error code 0x0000007E.
This is a known issue when using the VMXNET3 NIC driver on your Worker VMs.
I’ll provide two methods you can review to try and get around this issue.
Firstly you need to check for any ghost NICs residing on the vDisk. You can use a working target device that has booted to the vDisk and perform the following (with the vDisk in maintenance mode and the VM booted in to the maintenance version):
- Uninstall the PVS target device software from the vDisk and restart the VM.
- Once the machine has restarted open a command prompt (CMD) as administrator and run command set devmgr_show_nonpresent_devices=1
- Now run devmgmt.msc which will open Device Manager
- In Device Manager, click View -> Show hidden devices
- Expand the Network adapter node. Any inactive icons indicate unused device drivers and should be uninstalled. Devices that were previously installed but are no longer present appear as hidden/inactive devices. So go ahead and right-click on the inactive device(s) and click Uninstall. You will want to specifically look out for NICs with vmxnet3 in the name.
- Restart the VM if prompted. Install the PVS target device software back on to the vDisk and commit all changes .
- Try booting the affected VM again from the new vDisk version and see if it gets past the BNIStack failure.
If this procedure did not fix the blue screens, or if it does not relate then follow the below to determine if this applies to your problematic VM.
- On a working VM (which can boot to the vDisk), in the vSphere Console, right-click on the VM and click Edit Settings.
- Click on the Options tab and then click on General -> Configuration Parameters. The VM must be powered off to access Configuration Parameters. The other option you have is to locate the VMs .vmx file from the datastore which displays the same settings found in Configuration Parameters.
- Look for the ethernet## entry as shown below. A numeric value will also be present. Take a note of this number. Remember you are performing this on a VM that can successfully boot to the vDisk without getting the BNIStack failure.
- Now, on the problematic VM, open Configuration Parameters and change the numeric value of the ethernet## property to the number you copied on the working VM previously.
- Click OK on all property windows and boot the Worker VM and see it it boots.
Note: I have also seen this blue screen error when a vDisk was created with a machine using an E1000/E1000E vNIC but you are trying to book Worker VMs confgured with VMXNET3 vNICs.
Amar Honnungar
September 3, 2016Perfect!!! This is the easier way. The other way around is to, make a template of the golden image and deploy VMs using the same template. this will ensure that PCS slot settings mentioned above remains same for all the target devices. In my case, i observed that the newly created diskless VM had NIC in different PCI slot and hence BSOD.
Saeed
February 12, 2017Thanks
I want have this scenario with physical diskless machines.
What should I do?
Please guide and help step by step 😥😥
George Spiers
February 13, 2017You do not have a virtual environment? Do no physical machines boot in to the vDisk? What physical machine did you use to create the vDisk? Are you getting the exact same blue screen message?
Gami P
November 13, 2019Happened to me with a E1000NIC so changed it to VMxnet3
Cstone
February 5, 20215years later and still helping people! Thank you George.
An additional workflow Ive recently found caused this issue is the fact microsoft is packaging vmware NIC updates with windows updates. If you’re updating a pvs image with Windows updates and this bluescreen effects you be sure to exclude hardware updates to stop microsoft from trying to give you what it thinks you need.
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]
“ExcludeWUDriversInQualityUpdate”=dword:00000001
Guy Leech
July 12, 2021I’ve written a PowerShell script that will change the NIC PCI slot numbers in one or more VMware VMs:
https://github.com/guyrleech/VMware/blob/master/Change%20NIC%20PCI%20slot%20number.ps1
KnowBuddy
November 15, 2023You need to mention that this only works on a Persistent PVS image.
If the image is locked (non-persistent) then all the steps above wouldn’t work after you reboot the machine, because they would all revert to whatever the gold master image was set at.
Thehope
June 18, 2024Thanks!
I have been fighting this for a few hours now. My problem happens after I reversed imaged a vdisk to make som changes (repairing windows installation that had some issues), after that I was unable to capture it to a new vdisk. BSOD once I restarted and network booted it to complete the capture.
Found several places that had info about removing the ghost NIC (I had none) but no other site said anything about reinstalling PVS target device.
As soon as I reinstalled that everything started to work.