SDL fallback, partition fix, lz4 remote streaming, delay-oobe-run
SDL display: - try SDL, auto-fallback to headless if it fails (no crash) - SDL_VIDEODRIVER=x11 to avoid wayland socket path issues - suppress XDG_RUNTIME_DIR warnings Disk copy: - zap-all before writing to clear old partition tables - delete recovery partition (4) before resizing partition 3 - use parted resizepart (preserves partition GUID for BCD) - remote: nix-shell for sgdisk/parted/ntfsresize on target - remote: lz4 compression for faster streaming - remote: pv progress bar with disk size - -y/--yes flag to skip confirmation prompt Generalize: - delay-oobe-run=true defers OOBE + activation to real hardware - clean cached Autounattend from Windows\Panther before sysprep - taskkill sysprep.exe on first login (CopyProfile artifact) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
ebfb10b3b3
commit
89a0673f54
4 changed files with 79 additions and 37 deletions
|
|
@ -53,6 +53,12 @@ in
|
|||
reg add "HKCU\Control Panel\Desktop" /v WallpaperStyle /t REG_SZ /d "0" /f
|
||||
''}
|
||||
|
||||
:: Kill sysprep if it was triggered via CopyProfile'd startup entries
|
||||
taskkill /f /im sysprep.exe 2>nul
|
||||
:: Clean any leftover RunOnce/Run entries from audit phase
|
||||
reg delete "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /v "vmixAudit" /f 2>nul
|
||||
reg delete "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "vmixAudit" /f 2>nul
|
||||
|
||||
:: Remove Edge AppxPackage for current user (runs in user context during OOBE)
|
||||
:: The app is already removed on one of the templates but a ghost appx entry remains that can only be deleted at the user level
|
||||
powershell -Command "Get-AppxPackage *MicrosoftEdge* | Remove-AppxPackage -ErrorAction SilentlyContinue"
|
||||
|
|
@ -148,7 +154,7 @@ in
|
|||
</unattend>
|
||||
'';
|
||||
in {
|
||||
name = if delayOobeRun then "sealed" else "generalize";
|
||||
name = if delayOobeRun then "generalize-delay-oobe" else "generalize";
|
||||
uploads = [
|
||||
{ source = oobeXml; dest = "/oobe-unattend.xml"; }
|
||||
{ source = postOobeScript; dest = "/post-oobe.cmd"; }
|
||||
|
|
@ -158,6 +164,10 @@ in {
|
|||
# generalize: sysprep + reboot into OOBE in the same QEMU session
|
||||
auditScript = ''
|
||||
@echo off
|
||||
:: Remove cached Autounattend from initial install (contains Audit Mode reseal)
|
||||
del /q C:\Windows\Panther\unattend.xml 2>nul
|
||||
del /q C:\Windows\Panther\Unattend\unattend.xml 2>nul
|
||||
del /q C:\Windows\System32\Sysprep\Panther\unattend.xml 2>nul
|
||||
C:\Windows\System32\Sysprep\sysprep.exe /generalize /oobe ${if delayOobeRun then "/shutdown" else "/reboot"} /quiet /unattend:C:\oobe-unattend.xml
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue