One of the best thing with Windows Azure VM Role is to update and service your VM Role relatively easier then setting up the original VHD. As your initial VM Role VHD would be around 4GB+ and if you happen to do something locally to update this VHD, you might need to update the VHD on Windows Azure Portal. The solution is to create a DIFF vhd between your original and update one and use CSUPLOAD tool to upload the VHD using the following command line:


csupload Add-VMImage -Connection "SubscriptionId=<YOUR-SUBSCRIPTION-ID>; CertificateThumbprint=<YOUR-CERTIFICATE-THUMBPRINT>" -Description "UpdatedVMImage" -LiteralPath " C:\ Applications\Azure\VMRoleApp\DiffImage\baseimagediff.vhd" -Name baseimagediff.vhd -Location "South Centeral US"


After diff VHD image is uploaded, you will need to set the patent child relationship between original main VHD and then newly uploaded diff VHD using the command line as below:


csupload Set-Parent -Connection "SubscriptionId=<YOUR-SUBSCRIPTION-ID>; 
CertificateThumbprint=<YOUR-CERTIFICATE-THUMBPRINT>" 
-Child baseimagediff.vhd -Parent baseimage.vhd


The above two steps are explained in great details at the link below:

http://msdn.microsoft.com/en-us/wazplatformtrainingcourse_vmrolelab_topic4#_Toc279616593#_Toc279616593


However it is possible when you upload the diff vhd you might encounter the following error with CSUPLOAD command:


csupload Add-VMImage -Connection "SubscriptionId=<YOUR-SUBSCRIPTION-ID>; CertificateThumbprint=<YOUR-CERTIFICATE-THUMBPRINT>" -Description "UpdatedVMImage" -LiteralPath " C:\ Applications\Azure\VMRoleApp\DiffImage\baseimagediff.vhd" -Name baseimagediff.vhd -Location "South Centeral US"

 

 

Windows(R) Azure(TM) Upload Tool 1.3.0.0

for Microsoft(R) .NET Framework 3.5

Copyright (c) Microsoft Corporation. All rights reserved.

An error occurred trying to attach to the vhd.

Detail: The chain of virtual hard disk is broken. The system cannot lcate the parent virtual hard disk for the differencing disk.

Detached C:\ Applications\Azure\VMRoleApp\DiffImage\baseimagediff.vhd

VM Role Agent not found.

Verification tests failed.

Error while preparing Vhd 'C:\ Applications\Azure\VMRoleApp\DiffImage\baseimagediff.vhd'.


The possible reason for this problem is that your difference VHD does not have the parent VHD path in it. When you create the differencing disk, it contains both the absolute and relative path to the corresponding parent disk in it. When you hit this error, it simply means, the parent disk information could not be found.


To solve this problem, I suggest the following:


Please use "Inspect Disk" option in the Hyper-V Actions menu on your Windows Server 2008 box as below:


In the dialog box please select the differencing disk and open it. Now please open the disk property window and you will see the "Parent" info will be described as "The differencing chain is broken."


You will also see a "Reconnect" button at bottom right corner on the same dialog box as in above image.  Please use the "Reconnect" button to fix the parent path in the differencing disk. This should fix your problem.


Finally I am not a big fan of using -skipverify option with CSUPLOAD. This is because is there is any issue with my VHD, and I uploaded it without verifying it, I might encounter some other problem and all my work to upload may go in vein. That's why I prefer not to use "-skipverify" option with CSUPLOAD command and solve each problem if I encounter during CSUPLOAD without "-skipverify". However you sure can try using "-skipverify" with CSUPLOAD, if you have no other way to move forward.