Getting a DietPi image running on Hyper-V
Why? Because it is faster to test installs and adding items to the DietPi installer with snapshots! Also it makes a great small Linux installation to run other items off in Hyper-V.
- Go get the VirtualBox VMWare x64 image from the DietPi site. http://dietpi.com/#five
- Download the QEMU disk image utility from https://cloudbase.it/qemu-img-windows/
- Extract the VirtualBox VMWare image, it is a ova file. At this point we need to take the actual disk image out of this file. I use 7zip for this purpose. Right click on the ova file and open archive. Then extract the VMDK file out.
- Extract the QEMU disk image utility to the same folder as the VMDK file and then run the following command changing the file names as needed:
.\qemu-img.exe convert ‘.\DietPi_v120_VirtualBox-x86_64-(Jessie)-disk1.vmdk’ -O vhdx -o subformat=dynamic ‘.\DietPi_v120_VirtualBox-x86_64-(Jessie)-disk1.vhdx’
.\qemu-img.exe convert “dietpi_vm.vmdk” -O vhdx -o subformat=dynamic ‘.\DietPi_VMWare-x86_64-Stretch.vhdx’
Now you need to open up Hyper-V and make a new VM using the image you just extracted. You may want to keep a copy around to make more images in the future. Related Posts: HA on Pine64 with DietPi
2018/01/30 - Update
Updated to use the VMWare image.
$zipexe = ‘C:\Program Files\7-Zip\7z.exe’ $qemuZip = “qemu-img-win-x64-2_3_0.zip”
Push-Location $env:TEMP if(-not (Test-Path “dietpiimage”)) { New-Item “dietpiimage” -Type Directory }
Push-Location “dietpiimage”
Remove-Item * -Exclude @(’.7z’,’.zip’)
if(-not (Test-Path $qemuZip)) { Invoke-WebRequest -Uri “https://cloudbase.it/downloads/$qemuZip" -OutFile $qemuZip } & $zipexe x $qemuZip
### Image download and conversion
$imageName = “DietPi_VMWare-x86_64-Stretch”
if(-not (Test-Path “$imageName.7z”)) { Invoke-WebRequest -Uri “http://dietpi.com/downloads/images/$imageName.7z" -OutFile “$imageName.7z” } & $zipexe x “$imageName.7z”
$disk = (Get-ChildItem *.vmdk)[0] .\qemu-img.exe convert “$disk” -O vhdx -o subformat=dynamic “.\$imageName.vhdx”
Write-Host “$imageName.vhdx is ready!”
2018/07/01 - Stretch Update
Here is a PowerShell script to make it faster.
Push-Location $env:TEMP if(-not (Test-Path “dietpiimage”)) { New-Item “dietpiimage” -Type Directory }
Push-Location “dietpiimage”
Remove-Item * -Exclude @(’.7z’,’.zip')
if(-not (Test-Path “DietPi_VirtualBox-x86_64-(Stretch).7z”)) { Invoke-WebRequest -Uri “http://dietpi.com/downloads/images/DietPi_VirtualBox-x86_64-(Stretch).7z” -OutFile “DietPi_VirtualBox-x86_64-(Stretch).7z” }
if(-not (Test-Path “qemu-img-win-x64-2_3_0.zip”)) { Invoke-WebRequest -Uri “https://cloudbase.it/downloads/qemu-img-win-x64-2_3_0.zip” -OutFile “qemu-img-win-x64-2_3_0.zip” }
$zipexe = ‘C:\Program Files\7-Zip\7z.exe’ & $zipexe x “DietPi_VirtualBox-x86_64-(Stretch).7z” & $zipexe x “qemu-img-win-x64-2_3_0.zip”
Rename-Item (Get-ChildItem *.ova)[0] “DietPi_VirtualBox-x86_64-(Stretch)_OVA.tar” & $zipexe x “DietPi_VirtualBox-x86_64-(Stretch)_OVA.tar”
$disk = (Get-ChildItem *.vmdk)[0] .\qemu-img.exe convert “$disk” -O vhdx -o subformat=dynamic ‘.\DietPi_VirtualBox-x86_64-(Stretch)-disk1.vhdx’
Write-Host “DietPi_VirtualBox-x86_64-(Stretch)-disk1.vhdx is ready!”
2017/09/20 - Update
Here is a PowerShell script to make it faster.
Push-Location $env:TEMP if(-not (Test-Path “dietpiimage”)) { New-Item “dietpiimage” -Type Directory }
Push-Location “dietpiimage”
Remove-Item * -Exclude @(’.7z’,’.zip')
if(-not (Test-Path “DietPi_VirtualBox-x86_64-(Jessie).7z”)) { Invoke-WebRequest -Uri “http://dietpi.com/downloads/images/DietPi_VirtualBox-x86_64-(Jessie).7z” -OutFile “DietPi_VirtualBox-x86_64-(Jessie).7z” }
if(-not (Test-Path “qemu-img-win-x64-2_3_0.zip”)) { Invoke-WebRequest -Uri “https://cloudbase.it/downloads/qemu-img-win-x64-2_3_0.zip” -OutFile “qemu-img-win-x64-2_3_0.zip” }
$zipexe = ‘C:\Program Files\7-Zip\7z.exe’ & $zipexe x “DietPi_VirtualBox-x86_64-(Jessie).7z” & $zipexe x “qemu-img-win-x64-2_3_0.zip”
Rename-Item (Get-ChildItem *.ova)[0] “DietPi_VirtualBox-x86_64-(Jessie)_OVA.tar” & $zipexe x “DietPi_VirtualBox-x86_64-(Jessie)_OVA.tar”
$disk = (Get-ChildItem *.vmdk)[0] .\qemu-img.exe convert “$disk” -O vhdx -o subformat=dynamic ‘.\DietPi_VirtualBox-x86_64-(Jessie)-disk1.vhdx’
Write-Host “DietPi_VirtualBox-x86_64-(Jessie)-disk1.vhdx is ready!”