Windows Azure VM Role - Handling Error : The chain of virtual hard disk is broken...
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:
The above two steps are explained in great
details at the link below:
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 184.108.40.206
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
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
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.