You are currently viewing Part 05 – Let’s Create Differencing Hard Disks for VMs

Part 05 – Let’s Create Differencing Hard Disks for VMs

Let’s Create Differencing Hard Disks for VMs

In this post, we’ll look at how differencing hard disks can make deploying Virtual Machines (VMs) from Windows Templates more efficient. This method is especially useful when setting up multiple VMs, as it saves storage space and reduces setup time.

Additionally, I will provide you with my naming convention for this Microsoft Home Lab project – GitHub.

What’s a Differencing Hard Disk?

A differencing hard disk is a type of virtual hard disk (VHD) that stores changes made to an existing VHD or its parent. When you create a differencing disk, you select an existing VHD as its parent. The original VHD remains unchanged, while any changes are saved in the new child disk.

The goal is to create a parent hard disk with the operating system. All our VMs will use this parent operating system and have a differencing disk that only stores differences. This means the base operating system is on the parent drive, and all other data is saved and installed on the differencing hard disks. This approach saves space because we don’t need to install an operating system for every VM.


Visual Concept of Differencing Disk

Creating a Differencing Hard Disk

We’ll demonstrate how to create a differencing hard disk for the RRAS Server. The process is the same for all other servers.

Go to the Templates folder in Hyper-V and copy templates to the Parent Disks folder. If you followed the previous blog, you should have two templates:

  • Win11
  • WinServer22


Open Hyper-V Manager and click “Create new Hard Disk”.


Select the Differencing hard disk type.


Name the disk. It’s good to choose a meaningful name.


Select the parent hard disk and click finish.


Attaching the Differencing Disk to a VM

Create a Virtual Machine.


Name the VM. It’s suggested to use the same name as the hard disk.

NOTE: Remember to check the box – Store the VM in a different location. This creates a subfolder with the VM’s name.


Proceed through the wizard.


Before starting the VM, attach network adapters. For the RRAS Server, attach the External Switch and Private Switch.


Start the VM. It will automatically boot to OOBE.

Go through OOBE. It’s recommended to give the computers a meaningful name. For RRAS, we chose NDL-RRAS.

NOTE: After completing the OOBE, you should have a successfully prepared RRAS VM. Repeat the process for the other two VMs (Domain Controller and Windows Client).

Naming convention for Virtual machines

You can find additional information about the Naming Convention on my GitHub page.

Here’s a suggested naming convention for your Home Lab:

  • RRAS Server = NDL-RRAS (Ninja Demo Lab Routing and Remote Access Server)
  • Domain Controller Server = NDL-DC01 (Ninja Demo Lab Domain Controller 01)
  • Windows Client Machine = NDL-CL01-MEJ (Ninja Demo Lab Client 01 Microsoft Entra Joined)


Naming convention suggestion for Servers:

Naming Convention suggestion for Clients:

The current state of Microsoft Home Lab


In the next post, we’ll learn how to configure the RRAS Server.

See ya in the next post! 🙂

Github repository – Microsoft Home Lab

Leave a Reply