Citrix Provisioning Services – Convert your VHD’s to VHDX

Citrix Provisioning Services – Convert your VHD’s to VHDX

2016-05-13
/ /
in Blog
/

Per my previous post, we have been upgrading our storage backend and one of the features is 4K sector sizes being used.  This is an issue as VHD files will not mount when they reside on 4K storage.  Since we want this feature our two choices are to downgrade our storage to 512B sector sizes or move to the VHDX format.  I would prefer to move to the VHDX format as it has a small performance advantage (~7.5% was what I measured) and future proofs us a little bit for when we upgrade our PVS servers to 2012.

The VHDX supports 512e on 4K storage which is only supported on the following operating systems:

  • Windows Vista
  • Windows 7
  • Windows Server 2008*
  • Windows Server 2008 R2*
  • Windows Server 2012
  • Windows 8

So Windows Server 2003 is out, we are going to have to deal with not being able to mount their vDisks.  For our Windows Server 2008 R2 servers we can convert our VHD files to VHDX.  This is the process I have developed.  Because we are going to be mounting the VHD and VHDX files you will need your files to reside on 512B storage.  Without further ado, here are the steps to convert your VHD to VHDX:

  1. Create your VHDX file.  Ensure to select 512B if you are migrating an operating system older than Server 2012.
    23
  2. Mount your VHD file and your VHDX file.  Format and set the partition as active for the VHDX if needed.
    16
  3. Use a clone utility (DriveImage XML, Windows Server Backup or HDDRawCopy) to clone your VHD to the VHDX via the mounted paths.
    1718 1920
  4. Take this opportunity to defrag your cloned VHDX.
    21
  5. Assign your vDisk to your target device.
    22
  6. Done!

 

4 Comments

  1. Wotan 2016-07-14 11:04 am

    Many thanks for this and the performance-comparison in your other article.
    I was looking for an easy way to convert my Images.
    Thought about a similar way todo this, but didn’t had time to test it.
    Nice that it works like this. Will try it by myself.

    Reply
  2. Wotan 2016-07-15 8:24 am

    Worked perfectly with the first Image!

    I didn’t try till now, but I still wanted to know:
    Is it necessary to use “cvhdmount” to mount the Image? Isn’t it possible to use Microsoft Disk Management? (diskmgmt.msc)
    If not: is “cvhdmount” portable? Could I copy this on a client to Mount the Image? I have little disk-space left on PVS-Server…

    Reply
    • trententtye 2016-07-15 8:40 am

      You need to use cvhdmount.exe if your VHD’s are 16MB blocks size VHD’s created by PVS. If they are 2MB block size VHD’s you can use disk management.

      CVHDMOUNT is portable. Instructions are here:

      http://theorypc.ca/2013/05/14/corrupted-vhd-files/

      TLDR; copy cvhdmount.exe from a PVS server and the drivers folder:
      C:\Program Files\Citrix\Provisioning Services\drivers

      Within that folder right-click “Install” on the cfsdep2.inf file.

      For the other driver you need to open Device Manager, go through “Add new hardware…”, “Add legacy hardware” and then browse to the drivers folder and add the cvhdbusp6.inf.

      And then you can use cvhdmount.exe

      Reply
      • Wotan 2016-07-17 9:59 am

        Thank you!
        Tried to follow the instructions. The “cfsdep2.inf” file is in drivers-folder, but the mentioned “cvhdbusp6.inf” is not there.
        I’m using PVS 7.8. I think Citrix did change that with some version. A file named “cvhdmp.inf” is in the folder. Maybe it is its successor.

        Anyway … I found a way round and did convert my images on the server and I am finished now. Images go into production the next few days 🙂
        Bye

        Reply

Leave a Reply to trententtye Cancel reply

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.