A few days ago I ran into the problem that when I changing a Citrix XenApp vDisk (or created a new one) the Citrix XenApp servers crashes within the same VLAN with a BSOD with error message “A duplicate IP address was assigned to this machine while attempting to boot from the network” (see screenshot below). Striking is that the Citrix XenApp servers within another VLAN, booted from the same vDisk, do not have this problem.
Every VLAN have two Citrix Provisioning Servers with the DHCP services installed on it. For all the Citrix XenApp servers booting from the vDisk there is a DHCP reservation created on both DHCP servers to the respective VLAN. When one of the PVS servers was turned off, this problem did not occur. Lease durations are set to Unlimited and Conflict detection attempts are set to 1.
As far as I know, the only way to fix this problem is to clear all the DHCP information from the registry within the vDisk. To do that you have to mount the vDisk on the Citrix Provisioning Services server.
To have the ability to mount the vDisk it may not be in use, so it a good plan the make a copy of the vDisk and add it to the vDisk store. Alternatively, you can turn off all Citrix XenApp servers that are using the vDisk and remove the vDisk locks (if needed).
Follow the instructions below to fix this problem.
Right click the vDisk and select Mount vDisk
The icon next to the vDisk is now changed, indicating the vDisk is mounted.
Within Windows Explorer the vDisk is now mounted as a disk drive, in my case, drive F
Open the Registry Editor, select HKEY_LOCAL_MACHINE, go to the File menu and select Load Hive.
Browse to <vDisk Drive>\Windows\System32\Config\System. Fill in a Key Name, in this example “XenApp-vDisk” (you can give it any name you like). Click OK.
Browse to “HKEY_LOCAL_MACHINE\<loaded hive>\ControlSet001\services\Tcpip\parameters” and clear the data from the DhcpNameServer registry key. Repeat this step for the ControlSet002 hive!
Browse to “HKEY_LOCAL_MACHINE\<loaded hive>\ControlSet001\services\Tcpip\parameters\Interfaces” and clear the data from the DhcpDefaultGateway, DhcpIPAddress, DhcpNameServer, DhcpSubnetMask and DhcpSubnetMaskOpt registry key. Repeat this step for each sub key under the Interfaces key.
Repeat this step also for the ControlSet002 hive!
Select “HKEY_LOCAL_MACHINE\<loaded hive>”, go to the File menu and select Unload Hive.
In the Citrix Provisioning Services console, right click the vDisk and select Unmount vDisk <vDisk name>.
If there are multiple Provisioning Services servers within your environment, copy the vDisk to the other servers. Boot all the Citrix XenApp servers from the edited vDisk. If everything is done properly, they now start without problems.