Curle
c992564365
This involves a new img/ folder, a new program called mkbootimg, the accompanying chroma.json file that instructs mkbootimg how to create the image. An extra Powershell script is included for brevity.
64 lines
2.2 KiB
PowerShell
64 lines
2.2 KiB
PowerShell
#requires -RunAsAdministrator
|
|
param ([uint64]$diskSize=256MB, $driveLetter='Z')
|
|
# Thanks https://github.com/VoidNV/ZenithOS/blob/master/make.ps1!
|
|
|
|
$vhdPath = ".\Chroma.vhd"
|
|
|
|
if((Get-WindowsEdition -Online).Edition -eq "Home") {
|
|
Write-Host -ForegroundColor Red `
|
|
"Windows 10 Home does not support Hyper-V. This install requires Professional or higher."
|
|
exit
|
|
}
|
|
|
|
|
|
if (-not (Get-Module -ListAvailable -Name "Hyper-V"))
|
|
{
|
|
Write-Host -ForegroundColor Red "`nError: Hyper-V module not installed.`n"
|
|
Write-Host "The following Windows Features need to be enabled under " -NoNewLine
|
|
Write-Host -ForegroundColor Yellow "Hyper-V" -NoNewLine
|
|
Write-Host ":`n"
|
|
Write-Host -ForegroundColor Black -BackgroundColor Yellow "Hyper-V Module for Windows PowerShell" -NoNewLine
|
|
Write-Host " " -NoNewLine
|
|
Write-Host -ForegroundColor Black -BackgroundColor Yellow "Hyper-V Services"
|
|
|
|
$yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", "Launch the Windows Features dialog and exit."
|
|
$no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", "Exit. You can launch the Windows Features dialog yourself later."
|
|
$options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no)
|
|
if ($Host.UI.PromptForChoice("", "`nLaunch the Windows Features dialog to enable them?", $options, 0) -eq 0)
|
|
{
|
|
Start-Process "OptionalFeatures"
|
|
}
|
|
exit
|
|
}
|
|
|
|
function New-FAT32VHD {
|
|
$uuid = $null;
|
|
if(Test-Path $vhdPath) {
|
|
Remove-Item $vhdPath
|
|
}
|
|
|
|
Hyper-V\New-VHD $vhdPath -SizeBytes $diskSize -Fixed |
|
|
Mount-VHD -Passthru -NoDriveLetter |
|
|
Initialize-Disk -PartitionStyle GPT -PassThru |
|
|
New-Partition -UseMaximumSize |
|
|
Format-Volume -FileSystem FAT32 -Force |
|
|
Get-Partition |
|
|
Set-Partition -NewDriveLetter $driveLetter
|
|
|
|
Write-Host "Created disk of size" ($diskSize / 1MB) MiB.
|
|
|
|
Copy-Item -Recurse -Force img\* ${driveLetter}:\
|
|
|
|
Dismount-VHD $vhdPath
|
|
|
|
}
|
|
|
|
function Update-VHD {
|
|
Mount-VHD $vhdPath -NoDriveLetter -PassThru |
|
|
Get-Partition |
|
|
Set-Partition -NewDriveLetter $driveLetter
|
|
|
|
Copy-Item -Recurse -Force img\* ${driveLetter}:\
|
|
|
|
Dismount-VHD $vhdPath
|
|
} |