Hyper-V P2V using Disk2vhd
Migration of physical server to Hyper-V VM – P2V using Disk2vhd
If you prefer video over written format the corresponding video for this write-up can be viewed below:
P2V (or Physical to Virtual) is a process wherein you can take an existing physical server and convert it to a format that can then be run on a virtualized platform, such as Hyper-V. There are a variety of methods and tools that can be used to accomplish this and this article will focus on one of those: P2V using Disk2vhd
P2V using Disk2vhd
Disk2vhd is a Sysinternals tool By Mark Russinovich. It is an extremely easy to use utility that creates VHD (Virtual Hard Disk – Microsoft’s Virtual Machine disk format) by leveraging Windows’ Volume Snapshot capability to create consistent point-in-time snapshots of the volumes you want to include in a conversion.
This can be performed while the physical server is online and running so this method of conversion can be accomplished with relatively little or even no downtime.
High Level Overview of P2V using Disk2vhd
- Download the Disk2vhd utility
- Run Disk2vhd on the physical server you wish to convert to a Hyper-V VM
- Create a new VM on the Hyper-V hyp and attach the .vhd(s)/.vhdx(s) created by the Disk2vhd utility
- Start the new VM (with no vSwitch) and verify everything is operating as expected
- Remove any unwanted devices from device manager that are remnants from the physical device.
- Shut down physical server
- Associate VM NIC with appropriate vSwitch and configure IP information
Step by step of P2V using Disk2vhd
1. Download the Disk2vhd utility
2. Run Disk2vhd on the physical server you wish to convert to a Hyper-V VM
Disk2vhd is an extremely simple and straightforward utility to use. Simply launch it and it identifies all the associated drives on your physical server. Disk2vhd will create a seperate .vhd/.vhdx for each disk. (Note: it will not create a separate .vhd/.vhdx for each drive letter as those volumes may be on the same disk. A separate .vhd/.vhdx will only be created for each disk.)
Disk2vhd supports saving your new .vhd/.vhdx file(s) to a network share. So, you can send them right to the Hyper-V storage location if you have the appropriate access configured.
Note: You must select the System Reserved drive for the VHD to be bootable
In the below example since each volume is part of the same physical drive, Disk2vhd will create only one .vhd/.vhdx.
3. Create a new VM and attach the newly created .vhd/.vhdx(s)
I have experienced mixed results when choosing a Generation type after the P2V process. In most cases I have found that Generation 1 is required to get the VM started. I believe this is heavily influenced by the physical hardware properties of the machine you are converting. Unless you are confident that the VM will run as Generation 2 I would suggest choosing Generation 1. I have had good success later on converting the Generation 1 to a Generation 2 VM using the Convert-VMGeneration script.
Do not associate the new VM with a Virtual switch yet. When it turns on you don’t want it to accidentally conflict with your existing physical server which is still running.
Ensure to choose – Use an existing virtual hard disk – and browse to the .vhd/.vhdx file you previously created.
Configure the VM (at least for the first startup) to be as close to the specs of the physical server as possible. These can always be changed later after you get a good first boot.
4. Start the new VM and verify everything is operating as expected
The VM should boot, permit log in, and should be identical in every way to its physical counterpart other than any static IP information which was previously configured.
5. Remove any unwanted devices from device manager that are remnants from the physical device.
Open Device Manager – devmgmt.msc – and verify that there are no missing drivers.
You also need to ensure that you remove any persisting hardware devices that have carried over from the physical server. You will likely need to configure Device Manager to display hidden devices to accomplish this.
Open an administrator command window and run the following:
set devmgr_show_nonpresent_devices=1
Then, re-open Device Manager – devmgmt.msc – and then click on View – Show Hidden Devices
Anything that is grayed out can likely be removed.
6. Shut down physical server
As we are about to configure the network properties of the new VM the physical server now needs to be powered down to avoid conflict.
7. Associate VM NIC with appropriate vSwitch and configure IP information
Configure your new VM with the appropriate vSwtich and tag VLAN as required. Then log in and configure your static IP information on the new NIC as required.
Your physical server is now a Hyper-V Virtual Machine!