{"id":618,"date":"2026-09-29T14:39:49","date_gmt":"2026-09-29T13:39:49","guid":{"rendered":"https:\/\/www.mrpaulclarke.co.uk\/?p=618"},"modified":"2026-09-29T14:39:49","modified_gmt":"2026-09-29T13:39:49","slug":"convert-a-server-to-a-vm-and-host-it-on-hyper-v","status":"publish","type":"post","link":"https:\/\/www.mrpaulclarke.co.uk\/?p=618","title":{"rendered":"Convert a Server to a VM and host it on Hyper-V"},"content":{"rendered":"\r\n<p class=\"wp-block-paragraph\">Virtualization is a fundamental pillar of modern infrastructure management. Transitioning legacy hardware footprint over to a hypervisor simplifies backups, enhances resource utilization, and uncouples software from aging silicon. <\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">In this step-by-step technical guide, we will walk through the entire lifecycle of a host deployment and migration: <strong>installing the Hyper-V role<\/strong> on a bare-metal server, performing a <strong>Physical-to-Virtual (P2V) conversion<\/strong> of a legacy server, completing a <strong>virtual machine configuration upgrade<\/strong>, and executing an <strong>in-place guest OS upgrade from Server 2016 to Server 2022 or Server 2025<\/strong>.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Phase 1: Installing the Hyper-V Role on Windows Server<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Before installing the hypervisor layer, log into your server&#8217;s BIOS\/UEFI setup firmware and confirm that <strong>Intel VT-x<\/strong> or <strong>AMD-V<\/strong> (Hardware-assisted virtualization) along with <strong>DEP (Data Execution Prevention)<\/strong> are enabled in the CPU configuration settings.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Method A: Deployment Via PowerShell (Recommended)<\/h3>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Open an elevated PowerShell console on your target host and execute the following deployment command:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><em>Note: The server will automatically perform a sequence of reboots to configure the underlying microkernel hypervisor layer.<\/em><\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Method B: Deployment Via Server Manager GUI<\/h3>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\">\r\n<li>Launch <strong>Server Manager<\/strong>, choose <strong>Add roles and features<\/strong>, and select <strong>Role-based or feature-based installation<\/strong>.<\/li>\r\n\r\n\r\n\r\n<li>Under the Server Roles manifest, check <strong>Hyper-V<\/strong>.<\/li>\r\n\r\n\r\n\r\n<li>Follow the configuration wizard to selectively bind physical network adapters to your initial Virtual Switch architectures.<\/li>\r\n\r\n\r\n\r\n<li>Proceed to the confirmation dialog and select <strong>Install<\/strong>.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<hr class=\"wp-block-separator\" \/>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Phase 2: Executing a Physical-to-Virtual (P2V) Conversion<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Because legacy enterprise middleware tools like MVMC 3.0 are deprecated, the standard, lightweight approach for standard environments involves utilizing Microsoft&#8217;s native <strong>Disk2vhd<\/strong> utility.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Step 1: Capture the Volumes with Disk2vhd<\/h3>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\">\r\n<li>Download the official utility package directly from <a href=\"https:\/\/microsoft.com\" target=\"_blank\" rel=\"noopener\">Microsoft Sysinternals Disk2vhd<\/a>.<\/li>\r\n\r\n\r\n\r\n<li>Extract and launch <code>disk2vhd.exe<\/code> as a local Administrator on the physical server you want to convert.<\/li>\r\n\r\n\r\n\r\n<li><strong>Crucial:<\/strong> Check the box for <strong>Use vhdx<\/strong> to enable the modern, resilient virtual disk format. If your physical machine uses UEFI firmware, also verify that <strong>Prepare for use in Virtual PC<\/strong> is unchecked.<\/li>\r\n\r\n\r\n\r\n<li>Select a destination network share or external storage drive. <em>Do not save the output VHDX image onto the same physical drive array you are currently capturing.<\/em><\/li>\r\n\r\n\r\n\r\n<li>Select all boot, system, and critical data volumes (e.g., <code>C:\\<\/code> and System Reserved partitions) and click <strong>Create<\/strong>.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Step 2: Provision the Virtual Machine in Hyper-V<\/h3>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Transfer the newly generated <code>.vhdx<\/code> storage file over to your freshly built Hyper-V parent storage pool, then build the target node configuration container:<\/p>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\">\r\n<li>Open the <strong>Hyper-V Manager<\/strong> console.<\/li>\r\n\r\n\r\n\r\n<li>Right-click your host node, then choose <strong>New &gt; Virtual Machine<\/strong>.<\/li>\r\n\r\n\r\n\r\n<li>In the Specify Generation menu, select <strong>Generation 2<\/strong> if the source physical server utilized a modern UEFI boot framework, or <strong>Generation 1<\/strong> if it depended on legacy BIOS.<\/li>\r\n\r\n\r\n\r\n<li>Allocate compute blocks (RAM and Virtual CPUs) matching or scaling reasonably with your workloads.<\/li>\r\n\r\n\r\n\r\n<li>On the <strong>Connect Virtual Hard Disk<\/strong> window, toggle the radio select button to <strong>Use an existing virtual hard disk<\/strong>.<\/li>\r\n\r\n\r\n\r\n<li>Browse to your newly migrated <code>.vhdx<\/code> file asset and complete the creation process.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Boot your new VM. On first launch, the operating system kernel will load synthetic drivers. You can clean up old configurations by opening an administrative command line interface and purging stale physical device mappings:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>set devmgr_show_nonpresent_devices=1\r\nstart devmgmt.msc<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><em>Inside Device Manager, toggle &#8220;Show hidden devices&#8221; under the View menu, then uninstall grayed-out physical hardware adapters to prevent persistent IP routing anomalies.<\/em><\/p>\r\n\r\n\r\n\r\n<hr class=\"wp-block-separator\" \/>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Phase 3: Upgrading the Hyper-V Virtual Machine Version<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">When hosting older migrated machines on a modern hypervisor host, the virtual environment configuration version needs to be manually advanced to unlock newer features (such as hot-adding memory or enhanced secure boot execution).<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Step 1: Check Current Configurations<\/h3>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">To audit configuration metadata baselines across your local infrastructure, run this tracking script inside PowerShell:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>Get-VM * | Format-Table Name, Version, State<\/code><\/pre>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Step 2: Apply the Configuration Upgrade<\/h3>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>Warning:<\/strong> Upgrading the VM configuration version is a permanent operations path. Once applied, the virtual machine will no longer run on older hypervisor versions that do not support the new configuration version.<\/p>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\">\r\n<li>Gracefully <strong>Shut Down<\/strong> the guest operating system inside the virtual environment.<\/li>\r\n\r\n\r\n\r\n<li>Execute the following targeted update sequence using PowerShell:<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>Update-VMVersion -Name \"Your_Converted_VM_Name\"<\/code><\/pre>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"3\">\r\n<li>Alternatively, using the GUI: Open <strong>Hyper-V Manager<\/strong>, right-click the stopped machine instance, and select <strong>Upgrade Configuration Version<\/strong> from the actions pane.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Start the virtual machine again. Your virtualized workload is now optimized for your new Hyper-V virtualization host.<\/p>\r\n\r\n\r\n\r\n<hr class=\"wp-block-separator\" \/>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Phase 4: Executing the In-Place Guest OS Upgrade<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Once your physical server is safely encapsulated inside a stable Hyper-V container, you can update its underlying operating system. Windows Server 2025 supports <strong>N-4 media upgrade paths<\/strong>, allowing a <strong>direct in-place upgrade from Windows Server 2016 straight to Windows Server 2025<\/strong> or <strong>Windows Server 2022<\/strong> without intermediate milestones.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><em><strong>Crucial Exception:<\/strong> If the converted server is an Active Directory Domain Controller (DC), Microsoft explicitly recommends against an in-place upgrade. Instead, spin up a fresh target OS instance, promote it to a new DC, replicate Active Directory objects, and safely demote the 2016 unit.<\/em><\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Step 1: Take a Pre-Upgrade Safety Checkpoint<\/h3>\r\n\r\n\r\n\r\n","protected":false},"excerpt":{"rendered":"<p>Virtualization is a fundamental pillar of modern infrastructure management. Transitioning legacy hardware footprint over to a hypervisor simplifies backups, enhances resource utilization, and uncouples software from aging silicon. In this step-by-step technical guide, we will walk through the entire lifecycle of a host deployment and migration: installing the Hyper-V role on a bare-metal server, performing&hellip; <br \/> <a class=\"read-more\" href=\"https:\/\/www.mrpaulclarke.co.uk\/?p=618\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":621,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[39],"tags":[64,65,66,60],"class_list":["post-618","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-advice","tag-hyper-v","tag-physica","tag-virtual","tag-windows-server"],"_links":{"self":[{"href":"https:\/\/www.mrpaulclarke.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/618","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mrpaulclarke.co.uk\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mrpaulclarke.co.uk\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mrpaulclarke.co.uk\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mrpaulclarke.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=618"}],"version-history":[{"count":2,"href":"https:\/\/www.mrpaulclarke.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/618\/revisions"}],"predecessor-version":[{"id":620,"href":"https:\/\/www.mrpaulclarke.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/618\/revisions\/620"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mrpaulclarke.co.uk\/index.php?rest_route=\/wp\/v2\/media\/621"}],"wp:attachment":[{"href":"https:\/\/www.mrpaulclarke.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=618"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mrpaulclarke.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=618"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mrpaulclarke.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=618"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}