Step 1: Restore the image as VMDK using Zmanda Pro
Note: The restored files will be the same size as the original disk size, so ensure you have enough space in your restore location:
Files will be restored as shown below:
Convert VMDK to VHD
We used the QEMU utility with the 1 KB VMDK file from the previous step (with fixed-size-type required by Azure).
Example command to convert VMDK file to VHD format: .qemu-img.exe convert C:pathtodisk.vmdk -O vpc -o subformat=fixed C:pathtodisk.vhd
Note: The disk.vhd image just produced can now be imported, without further changes, into any locally-installed MS Hyper-V program.
If needed, resize the VHD file upwards to the nearest megabyte multiple
The size of the disk.vhd file from the previous step must be a multiple of megabytes (ie: the VHD file-size needs to be a number exactly divisible by 1024).
Example command to find file size: ls C:pathtodiskname.vhd = X
Our example produced a file of size X = 41943040 KB
X/1024/1024 must be a whole number. You may need to resize your own file upwards to a megabyte-multiple.
An exact next-biggest megabyte-multiple for our example 40 GB disk = 42951770112 bytes.
We resize our example file to illustrate:
Example command to resize the disk.vhd file upwards to a megabyte multiple: resize-vhd C:pathtodiskname.vhd -SizeBytes 42951770112
Note: This creates a resized VHD file of size 42951770624 bytes. Azure ‘resize’ command adds 512 bytes for their footer 42951770112 + 512
Create an empty managed disk on Azure
Example command to create an empty managed disk on Azure using the size parameter from the previous step: az disk create --name azure-disk-name --resource-group azure-resource-name --sku standardssd_lrs --hyper-v-generation V1 --location australiaeast --for-upload true --upload-size-bytes 42951770624
Use your preference parameters for disk-name, resource-group, hard-disk type, location. Other VM parameters, such as CPU and RAM allocation, can be added later. Location parameter can be selected via: az account list-locations -o table
Grant write access to obtain ‘sasURI’
Example command to grant write access to Azure: az disk grant-access -n azure-disk-name -g azure-resource-name --access-level Write --duration-in-seconds 86400
Example command to upload the VHD file to Azure, using the sas-URI from the previous step: AzCopy.exe copy "C:pathtodiskname.vhd" "https://xx-xxxxx-xxxxxxxxxx.blob.core.windows.net/xxxxxxxxxx/abcd?sv=2017-04-17&sr=b&si=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&sig=xxxx%3D" --blob-type PageBlob
Note: To reduce costs, revoke write-access when finished uploading.
Example command to revoke write access: az disk revoke-access -n azure-disk-name -g azure-resource-name
Create the new VM in Azure
Example command to create the new VM in Azure using the azure-disk-name file uploaded from the previous step: az vm create --resource-group azure-resource-name --location australiaeast --name new-vm-name --os-type windows --attach-os-disk azure-disk-name
Use your parameters for resource group, location, vm name.
Example result from command to create new VM in Azure:
Copy the ‘publicIpAddress’ field
Connect via RDP
Use your preferred Remote Desktop program to connect to the ‘publicIpAddress’ from previous step: “XXX.XXX.XXX.XXX”
Sukriti Saraf is a Senior Content Marketer at Zmanda with extensive experience in crafting insightful content on data protection, disaster recovery, and IT infrastructure. Passionate about simplifying complex technical concepts, she helps IT professionals navigate the evolving world of data resiliency. Sukriti combines her deep industry knowledge with her expertise in B2B SaaS marketing to create content that drives business results and engages her audience.
Contact us for a free 30-minute consultation and learn how our fully managed solution can protect your business and streamline your operations. Get started with Zmanda Pro today!