Objective
This article will cover two commands included in the VhdUtil utility as of PVS 7.1.4 and PVS 7.6.1.
Note: These commands only work with vhd type files and cannot be used with vhdx files.
Instructions
VhdMerge
Used to perform a manual full merge to a new base image outside of the PVS console.
Example command to merge the disk chain from “MyVDisk.3.avhd” to base “MyVDisk.vhd” into a new disk “E:\vDiskStore\MyVDiskMerged.vhd”:
rundll32 VhdUtil.dll,VhdMerge E:\vDiskStore\MyVDisk.3.avhd MyVDisk.vhd E:\vDiskStore\MyVDiskMerged.vhd>E:\vDiskStore\MergeLog.txt
The steps of the merging process are logged into file E:\vDiskStore\MergeLog.txt.
This process does not delete the old vDisk or its versions from the store or the PVS console. They will have to be manually deleted.
Import the new vDisk to the PVS console.
VhdRename
Used to rename the vDisk vhd chains that have existing versions. For renaming specifically, make a copy of the original vDisk and rename the copy. The renaming is a critical action, as we are modifying the disk chain. We found that if the network does not have a timing service, a remote slow storage might cause incorrect timestamp vs. the hosting server.
Example command to rename the entire disk chain from vDisk "MyVDisk" in E:\vDiskStore folder (e.g. from version 3 to base) to "MyNewVDisk":
rundll32 VhdUtil.dll,VhdRename E:\vDiskStore\MyVDisk.3.avhd MyNewVDisk>E:\vDiskStore\RenameLog.txt
The old vdisk chain information for each version and the renaming process are logged into file E:\vDiskStore\RenameLog.txt.
You can then run the VhdDump command to get the info of the renamed vdisk.
A manifest (XML) file with the new vDisk name will be created in the store.
Import the new vDisk into the PVS console, unassign the old vDisk from all targets and assign the new vDisk to them.
Delete the old vDisk but leave the .vhd files.
If you try to delete the associated .vhd files, the error “Management Interface: vDisk properties were lost” will be displayed.
Additional Resources
Merging VHD Differencing Disks - http://docs.citrix.com/en-us/provisioning/7-6/pvs-vdisks-lifecycle-wrapper/pvs-vdisks-update-wrapper/pvs-vdisks-vhd-merge.html
Promoting Updated Versions - http://docs.citrix.com/en-us/provisioning/7-6/pvs-vdisks-lifecycle-wrapper/pvs-vdisks-update-wrapper/pvs-vdisks-update-promotion.html
Assigning vDisks and versions to target devices - http://docs.citrix.com/en-us/provisioning/7-6/pvs-vdisks-lifecycle-wrapper/pvs-vdisks-update-disk-types.html
Manually Updating a vDisk Image - http://docs.citrix.com/en-us/provisioning/7-6/pvs-vdisks-lifecycle-wrapper/pvs-vdisks-update-wrapper/pvs-vdisks-update-manual.html