Hyper-V basics: switches, VMs and checkpoints
-
Phase 0: Before you start
-
Phase 1: The foundation
-
Phase 2: Core administration and security
-
Phase 3: Enterprise infrastructure
-
Phase 4: Troubleshooting step by step
-
Phase 5: Final project and career
Most Windows servers today are virtual machines, and in many companies they run on Hyper-V, the hypervisor built into Windows Server and Windows 11 Pro. Knowing how to build switches, VMs and checkpoints on it is everyday work for a Windows admin.
In this lesson you’ll check your laptop for virtualization support, turn on Hyper-V, create internal and private switches, build a Generation 2 VM from the Server 2025 ISO, use checkpoints, and fix a VM that won’t boot or won’t start.
| Time | You need | By the end you can |
|---|---|---|
| About 75 minutes | A laptop with Windows 10/11 Pro, Enterprise or Education (Home doesn’t include Hyper-V), the Server 2025 ISO from Lesson 2, 8 GB RAM or more | Check hardware support, enable Hyper-V, create switches and VMs with PowerShell, use dynamic memory and checkpoints, and troubleshoot boot and start failures |
What it is, in one line
Hyper-V is Microsoft’s type-1 hypervisor: it runs directly on the hardware and shares it between many virtual machines, each with its own virtual CPU, memory, disks and network.
In Simple Words
One big house, many flats
A builder can turn one big house into several flats. Each flat has its own front door, kitchen and electricity meter, but they all share the same foundation, walls and water supply.
Hyper-V does that to a server. The physical machine is the house; each VM is a flat that thinks it’s a whole house. The hypervisor is the building manager who makes sure no flat takes all the water.
A checkpoint is a photo of a flat before you repaint it. You can go back to the photo, but if you keep stacking photos for years, they fill the cellar.
Engineer's View
Hypervisor, partitions, switches, disks
Architecture: once Hyper-V is on, the hypervisor loads first and Windows itself becomes the parent partition, managing the hardware. VMs run in child partitions and talk to the hardware through the VMBus and integration services. It needs a 64-bit CPU with hardware virtualization (Intel VT-x or AMD-V) and SLAT (EPT or RVI).
Generations: Generation 2 VMs use UEFI, Secure Boot and SCSI boot disks, and are the default choice for modern Windows. Generation 1 emulates older BIOS hardware for old operating systems.
Virtual switches: External connects VMs to a physical network adapter; Internal connects VMs and the host only; Private connects VMs to each other only. Windows 11 also has a NAT “Default Switch”.
Disks: VHDX (up to 64 TB), dynamically expanding or fixed size. Dynamic memory moves RAM between VMs within limits you set.
Checkpoints: production checkpoints use VSS inside the guest for an application-consistent copy; standard ones save memory state too. Each checkpoint creates an AVHDX differencing disk that grows until you delete the checkpoint. They’re not backups.
Nested virtualization lets a VM run Hyper-V itself, which is how Azure and test labs stack hypervisors; VirtualBox doesn’t support Hyper-V as a nested guest reliably, which is why this lab uses your laptop’s own Hyper-V.
How it works, step by step
Here’s how the layers stack once Hyper-V is turned on:
Your laptop’s Windows doesn’t disappear; it becomes the parent partition, a special VM with direct hardware access. That’s why turning Hyper-V on needs a restart, and why VirtualBox runs a little slower afterwards (it then works through the Windows Hypervisor Platform).
The Hyper-V lab you’ll build on your laptop:
- Check that the CPU supports virtualization and SLAT.
- Enable Hyper-V and restart.
- Create an internal switch (VMs and host) and a private switch (VMs only).
- Build HV-TEST01, a Generation 2 VM with dynamic memory, from the Server 2025 ISO.
- Use a production checkpoint, then delete it properly.
- Optionally switch Hyper-V off again so VirtualBox runs at full speed.
If your laptop runs Windows Home, read along and keep the commands for work: the PowerShell is the same on Windows Server.
Hands-on Lab: Hyper-V on your own laptop
Shut down your VirtualBox VMs first. Open PowerShell as administrator on your laptop (not inside a VM).
1Check virtualization support
On your laptop, run this:
Get-ComputerInfo -Property HyperV* | Format-ListYou should see something like this:
HyperVisorPresent : False
HyperVRequirementDataExecutionPreventionAvailable : True
HyperVRequirementSecondLevelAddressTranslation : True
HyperVRequirementVirtualizationFirmwareEnabled : True
HyperVRequirementVMMonitorModeExtensions : TrueAll four requirements must be True. If VirtualizationFirmwareEnabled is False, turn on Intel VT-x or AMD-V (SVM) in your laptop’s BIOS or UEFI settings. If HyperVisorPresent is already True, a hypervisor is running (for example because of Windows security features), and the requirement lines may be empty; that’s fine.
✅ Checkpoint: All four Hyper-V requirements are True (or a hypervisor is already present).
2Enable Hyper-V
On your laptop:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Restart-ComputerAfter the restart, in PowerShell as administrator:
Get-VMHost | Select-Object Name, LogicalProcessorCount, @{n='MemoryGB';e={[math]::Round($_.MemoryCapacity/1GB)}}, VirtualMachinePathYou should see something like this:
Name LogicalProcessorCount MemoryGB VirtualMachinePath
---- --------------------- -------- ------------------
LAPTOP-7Q2K 8 16 C:\ProgramData\Microsoft\Windows\Hyper-VOn Windows Server the same thing is Install-WindowsFeature Hyper-V -IncludeManagementTools -Restart. The rest of the lab is identical on both.
✅ Checkpoint: Get-VMHost returns your laptop with its CPU and memory.
3Create virtual switches
On your laptop:
New-VMSwitch -Name LabInternal -SwitchType Internal | Out-Null
New-VMSwitch -Name LabPrivate -SwitchType Private | Out-Null
Get-VMSwitch | Select-Object Name, SwitchTypeYou should see something like this:
Name SwitchType
---- ----------
Default Switch Internal
LabInternal Internal
LabPrivate PrivateCreating the internal switch also creates a network adapter on your laptop, “vEthernet (LabInternal)”, so the host can talk to VMs on it. The private switch has no host adapter. An external switch would bind to your physical network card; on a laptop with Wi-Fi that’s often unreliable, so the lab uses the built-in Default Switch for internet access instead.
✅ Checkpoint: Get-VMSwitch shows Default Switch, LabInternal and LabPrivate.
4Build a Generation 2 VM
On your laptop:
New-Item -ItemType Directory C:\Lab\HyperV -Force | Out-Null
New-VM -Name HV-TEST01 -Generation 2 -MemoryStartupBytes 2GB -NewVHDPath C:\Lab\HyperV\HV-TEST01.vhdx -NewVHDSizeBytes 40GB -SwitchName 'Default Switch' -Path C:\Lab\HyperV | Out-Null
Set-VMProcessor -VMName HV-TEST01 -Count 2
Set-VMMemory -VMName HV-TEST01 -DynamicMemoryEnabled $true -MinimumBytes 1GB -MaximumBytes 4GB
Add-VMDvdDrive -VMName HV-TEST01 -Path C:\Lab\ISO\server2025.iso
Set-VMFirmware -VMName HV-TEST01 -FirstBootDevice (Get-VMDvdDrive -VMName HV-TEST01)
Get-VM HV-TEST01 | Select-Object Name, Generation, State, ProcessorCount, DynamicMemoryEnabledYou should see something like this:
Name Generation State ProcessorCount DynamicMemoryEnabled
---- ---------- ----- -------------- --------------------
HV-TEST01 2 Off 2 TrueStart it and open its console:
Start-VM HV-TEST01
vmconnect localhost HV-TEST01When the console says Press any key to boot from CD or DVD, press a key straight away. Install Windows Server 2025 Datacenter Evaluation (Server Core is quicker) just as you did in Lesson 5. The disk shows as 40 GB.
✅ Checkpoint: HV-TEST01 boots from the ISO and Windows Setup starts.
5Use a checkpoint, then delete it properly
After the install, on your laptop:
Get-VM HV-TEST01 | Select-Object Name, CheckpointType
Checkpoint-VM -Name HV-TEST01 -SnapshotName 'Fresh install'
Get-VMCheckpoint -VMName HV-TEST01 | Select-Object Name, CheckpointType, CreationTime
Get-ChildItem C:\Lab\HyperV\*.avhdx | Select-Object Name, @{n='MB';e={[math]::Round($_.Length/1MB)}}You should see something like this:
Name CheckpointType
---- --------------
HV-TEST01 Production
Name CheckpointType CreationTime
---- -------------- ------------
Fresh install Production 19/10/2026 21:40:12
Name MB
---- --
HV-TEST01_8C1E2B7A-5D3F-4A90-B6E1-2F7C9D0A3B44.avhdx 4The VM now writes to the AVHDX file, not the original VHDX. Make a change inside the VM (create a folder), then roll back with Restore-VMCheckpoint -VMName HV-TEST01 -Name 'Fresh install' -Confirm:$false. The folder is gone.
Then delete the checkpoint so its changes merge back into the VHDX:
Remove-VMCheckpoint -VMName HV-TEST01 -Name 'Fresh install'
Start-Sleep -Seconds 30
Get-ChildItem C:\Lab\HyperV\*.avhdxNo AVHDX files remain: Hyper-V merged them. Never delete AVHDX files by hand; that breaks the VM’s disk chain.
✅ Checkpoint: You restored a checkpoint, then removed it, and no AVHDX files are left.

6Optional: switch Hyper-V off for VirtualBox speed
If VirtualBox feels slow with Hyper-V on, turn the hypervisor off at boot (Hyper-V stays installed):
bcdedit /set hypervisorlaunchtype off
Restart-ComputerTurn it back on with bcdedit /set hypervisorlaunchtype auto and a restart when you need Hyper-V again. Some Windows security features also use the hypervisor, so on a work laptop ask before changing this.
✅ Checkpoint: You know how to switch the hypervisor on and off for the next lessons.
Break It, Then Fix It
Two classic Hyper-V tickets: “the VM won’t boot” and “the VM won’t even start”.
1Break it: a Generation 2 VM that doesn’t boot
Create a second VM, start it, but don’t press a key at the boot prompt:
New-VM -Name HV-TEST02 -Generation 2 -MemoryStartupBytes 1GB -NewVHDPath C:\Lab\HyperV\HV-TEST02.vhdx -NewVHDSizeBytes 20GB -SwitchName 'Default Switch' -Path C:\Lab\HyperV | Out-Null
Add-VMDvdDrive -VMName HV-TEST02 -Path C:\Lab\ISO\server2025.iso
Start-VM HV-TEST02
vmconnect localhost HV-TEST02After a few seconds the console shows something like this:
Virtual Machine Boot Summary
1. SCSI Disk (0,0) The boot loader did not load an operating system.
2. Network Adapter (00155D01A2B3) A boot image was not found.
No operating system was loaded. Your virtual machine may be configured incorrectly. Exit and re-configure your VM
or click restart to retry the current boot sequence again.Two things went wrong. The boot order still starts with the empty disk (you didn’t run Set-VMFirmware this time), and Generation 2 VMs only boot from DVD if you press a key within a few seconds. Network boot found no server either.
Fix it: put the DVD first, restart, and press a key at the prompt:
Stop-VM HV-TEST02 -TurnOff
Set-VMFirmware -VMName HV-TEST02 -FirstBootDevice (Get-VMDvdDrive -VMName HV-TEST02)
Start-VM HV-TEST02✅ Checkpoint: HV-TEST02 failed with “No operating system was loaded” and boots Setup after the fix.
2Break it: not enough memory to start
Give HV-TEST02 far more startup memory than your laptop has:
Stop-VM HV-TEST02 -TurnOff
Set-VMMemory -VMName HV-TEST02 -DynamicMemoryEnabled $false -StartupBytes 64GB
Start-VM HV-TEST02You’ll get an error like this:
Start-VM : 'HV-TEST02' failed to start.
Not enough memory in the system to start the virtual machine HV-TEST02.
'HV-TEST02' failed to start. (Virtual machine ID 3B9E2C41-...)
Not enough memory in the system to start the virtual machine 'HV-TEST02' with ram size 65536 megabytes. (Virtual
machine ID 3B9E2C41-...)
+ CategoryInfo : NotSpecified: (:) [Start-VM], VirtualizationException
+ FullyQualifiedErrorId : OutOfMemory,Microsoft.HyperV.PowerShell.Commands.StartVMHyper-V reserves a VM’s startup memory before it starts. On real hosts this appears after someone adds VMs or a host fails over and the survivors can’t fit everything, so always keep spare memory.
Fix it: use a realistic size with dynamic memory, then clean up the test VM:
Set-VMMemory -VMName HV-TEST02 -DynamicMemoryEnabled $true -StartupBytes 1GB -MinimumBytes 512MB -MaximumBytes 2GB
Start-VM HV-TEST02
Stop-VM HV-TEST02 -TurnOff; Remove-VM HV-TEST02 -Force; Remove-Item C:\Lab\HyperV\HV-TEST02.vhdx✅ Checkpoint: Start-VM failed at 64 GB and succeeded with 1 GB dynamic memory.

This happened at work
The checkpoint nobody deleted
Before a database upgrade, an admin took a checkpoint of the company’s main SQL Server VM, “just in case”. The upgrade went fine, everyone celebrated, and the checkpoint was forgotten.
For seven months, every write to the database went into the AVHDX file instead of the main disk. It grew past 900 GB.
One night it filled the host’s storage volume, and Hyper-V paused every VM on that volume with the status “Paused-Critical”. Twelve VMs stopped at once.
Freeing space and merging a checkpoint that size took most of the next day, during which the database ran slowly. Backups during the merge kept failing.
The fix: a weekly report of every VM with a checkpoint older than three days, a rule that checkpoints are deleted the same day the change is accepted, and real backups for rollback plans.
The lesson: checkpoints are for minutes or hours, not months. Delete them as soon as the change is confirmed.
Common mistakes and troubleshooting
| Mistake or symptom | What happens | What to do instead |
|---|---|---|
| Old checkpoints left on VMs | AVHDX files grow until storage fills; VMs pause | Delete checkpoints once the change is confirmed; report on old ones |
| Deleting AVHDX files by hand | The VM’s disk chain breaks | Always use Remove-VMCheckpoint |
| “No operating system was loaded” on Gen 2 | Wrong boot order, or no key pressed for DVD | Set-VMFirmware first boot device; press a key quickly |
| “Not enough memory” on Start-VM | The host can’t reserve startup memory | Right-size VMs, use dynamic memory, keep spare host RAM |
| Using checkpoints as backups | Lost data when the host or disk fails | Real backups (Lesson 38) |
| External switch on Wi-Fi | Unstable or no network for the host | Use the Default Switch or an internal switch with NAT |
| VirtualizationFirmwareEnabled False | Hyper-V won’t install | Enable VT-x or AMD-V in the BIOS/UEFI |
| Gen 1 VMs for modern Windows | No Secure Boot, older devices | Generation 2 unless the OS needs Gen 1 |
| Overcommitting CPU and memory heavily | Slow VMs for everyone | Monitor host counters; plan capacity |
Interview questions
Click a question to open it. Under each one you’ll find what the interviewer is really looking for, and one good way to answer.
Fresher level
1. What is a hypervisor?
What they’re really checking: Do you know the basics?
How you could answer: Software that runs virtual machines by sharing physical hardware. Hyper-V is a type-1 hypervisor that runs directly on the hardware.
2. What are the three Hyper-V virtual switch types?
What they’re really checking: Do you know networking?
How you could answer: External (VMs to the physical network), Internal (VMs and the host), Private (VMs to each other only).
3. What is the difference between Generation 1 and Generation 2 VMs?
What they’re really checking: Do you know VM types?
How you could answer: Gen 1 emulates BIOS and IDE for old systems; Gen 2 uses UEFI, Secure Boot and SCSI boot, and is the default for modern Windows.
2–5 years experience
4. What is the difference between production and standard checkpoints?
What they’re really checking: Do you know checkpoint types?
How you could answer: Production checkpoints use VSS in the guest for an application-consistent disk state without memory; standard checkpoints also save memory and device state.
5. What happens on disk when you take a checkpoint?
What they’re really checking: Do you understand AVHDX?
How you could answer: The VM starts writing to a new differencing disk (AVHDX). Deleting the checkpoint merges it back into the parent disk.
6. How does dynamic memory work?
What they’re really checking: Have you configured it?
How you could answer: The VM starts with startup memory and can grow up to a maximum or shrink to a minimum as demand changes, with Hyper-V balancing memory between VMs on the host.
Senior level
7. How would you size and design a Hyper-V host for 30 VMs?
What they’re really checking: Do you think about capacity?
How you could answer: Add up VM CPU, memory and storage needs with growth, keep headroom for failover (N+1 in a cluster), separate networks for management, VMs, storage and live migration, use SET teaming, and plan for backup and monitoring.
8. A host shows VMs in “Paused-Critical”. What happened and what do you do?
What they’re really checking: Do you know storage risks?
How you could answer: The storage volume holding the VMs ran out of space, often due to growing checkpoints or dynamic disks. Make room, find and merge old checkpoints, then resume VMs and add monitoring.
9. When would you use nested virtualization?
What they’re really checking: Do you know its use cases?
How you could answer: For labs and training, containers with Hyper-V isolation inside VMs, and cloud scenarios where a VM needs to host its own VMs. It costs performance and isn’t for heavy production loads.
Quick quiz
Q1. What does Hyper-V need from the CPU?
- Only 64-bit
- Hardware virtualization and SLAT
- A GPU
Show answer
B — VT-x or AMD-V plus EPT or RVI.
Q2. Which switch type lets VMs talk only to each other?
- External
- Internal
- Private
Show answer
C — No host or physical network access.
Q3. Why did HV-TEST02 show “No operating system was loaded”?
- The ISO was corrupt
- Boot order and no key pressed for DVD
- Not enough memory
Show answer
B — Set the DVD first and press a key.
Q4. What file grows while a checkpoint exists?
- VHDX
- AVHDX
- ISO
Show answer
B — Delete the checkpoint to merge it.
Q5. In the work story, why did 12 VMs pause?
- A power cut
- A forgotten checkpoint filled the storage volume
- A virus
Show answer
B — Delete checkpoints promptly.
Quick recap
- Hyper-V is a type-1 hypervisor; Windows becomes the parent partition.
- Check VT-x/AMD-V, SLAT and firmware support before enabling it.
- Switches: External, Internal, Private (and Default Switch on Windows 11).
- Use Generation 2 VMs, dynamic memory and VHDX disks.
- Checkpoints create AVHDX files; delete them promptly and never by hand.
- “Not enough memory” means the host can’t reserve startup RAM.
Next lesson
Lesson 29: Hyper-V advanced → You’ll build two nested Hyper-V hosts inside your laptop’s Hyper-V, live migrate a VM between them, set up Hyper-V Replica, and learn about AVMA and GPU partitioning.
Further reading: Hyper-V
Want to go deeper into Hyper-V? Microsoft’s Hyper-V overview covers the architecture, and the nested virtualization guide explains running Hyper-V inside a VM. You can also see the full plan for this course on the Windows Server Administration course page.
