Hyper-V: Clone Linux Guest VM

There are two methods of cloning an existing guest VM: Templating and Copying. Templating has the issue of the clone retaining the original file name of the source. Therefore, it’s cleaner to follow the copying path to recreate machines.

# Step 1: Copy the .vhdx file to a new destination with a new name

$goldVhdxFile="\\SOMESHERVER\goldImages\CentOS8.vhdx"
$newName='AREA051'
$newPath='\\SOMESHERVER'
$newVhdxFile="$newPath\$newName.vhdx"
New-Item -ItemType File -Path $newVhdxFile -Force # touch before copying contents
Copy-Item $goldVhdxFile -Destination $newVhdxFile

# Step 2: Create New VM using an existing .vhdx file

$memory='8GB'
$switch='ExternalSwitch'
New-VM -Name $newName -MemoryStartupBytes $memory -Generation 2 -Switch $switch  -BootDevice VHD -VHDPath $newVhdxFile -Path $newPath

# Step 3: start-up VM

Start-VM -Name $newName
VMConnect.exe $env:computername $newName

# Step 4: change machine settings

sudo rm -f /etc/udev/rules.d/70-persistent-net.rules # clear persistent net rules
sudo nmtui # set hostname, IP address, gateway, and DNS
sudo reboot # restart machine

Leave a Reply

Your email address will not be published. Required fields are marked *