Move from CD-ROM images to Hard Disk images.
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.
This commit is contained in:
parent
83aef00afa
commit
c992564365
BIN
boot_hybrid.img
Normal file
BIN
boot_hybrid.img
Normal file
Binary file not shown.
64
buildImage.ps1
Normal file
64
buildImage.ps1
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
#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
|
||||||
|
}
|
BIN
chroma.img
Normal file
BIN
chroma.img
Normal file
Binary file not shown.
19
chroma.json
Normal file
19
chroma.json
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"disksize": 80,
|
||||||
|
"config": "img/boot/config",
|
||||||
|
"initrd": {
|
||||||
|
"type": "tar",
|
||||||
|
"directory": "img/boot"
|
||||||
|
},
|
||||||
|
"partitions": [
|
||||||
|
{
|
||||||
|
"type": "boot",
|
||||||
|
"size": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Microsoft basic data",
|
||||||
|
"size": 76,
|
||||||
|
"name": "Chroma Data"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
BIN
img/boot/bootloader
Normal file
BIN
img/boot/bootloader
Normal file
Binary file not shown.
1
img/boot/config
Normal file
1
img/boot/config
Normal file
|
@ -0,0 +1 @@
|
||||||
|
kernel=exe
|
BIN
img/boot/exe
Normal file
BIN
img/boot/exe
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user