Commit Graph
11 Commits
Author SHA1 Message Date
GuofangandClaude Sonnet 5.5 a920ba0ca5 Windows launcher only creates a differential disk; seed via Unattend.xml
run-windows11.py no longer installs Windows or touches ISO/img files: it
creates a QCOW2 overlay on the base image (made by vm-images/build-windows-base.sh)
and, when the disk is created, mounts seed.iso. Windows reads the Unattend.xml
in its root during the specialize and OOBE passes (host name, account, auto
logon, Remote Desktop) and Configure-Windows.ps1 then installs OpenSSH with the
host's key, turns off Windows Update and copies the installer scripts.

The VM hardware uses devices with inbox Windows drivers (IDE/NVMe, e1000e,
ramfb on arm64), since the base image has no VirtIO drivers. Autounattend.xml
moves to vm-images; the vm-images pointer is updated.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 11:19:48 +08:00
GuofangandClaude Sonnet 5.5 72af276309 Add an update-status tool and copy numbered scripts to Desktop\Tools
80-Get-UpdateStatus-Admin.ps1 prints whether the Windows 11 guest is
upgrading or downloading updates (policy, pending markers, services,
processes, BITS jobs, update events, network use); the .bat launcher
elevates and keeps the window open.

The seed ISO and Configure-Windows.ps1 now take every NN-*.bat and
NN-*.ps1, and the first-logon copy goes to Desktop\Tools instead of
Desktop\Installers.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 09:27:52 +08:00
GuofangandClaude Sonnet 5.5 65a5780e02 Install OpenSSH Server during Windows setup
Install it at first logon from the Win32-OpenSSH zip on the seed ISO via
Configure-Windows.ps1 -InstallOpenSSH, replacing the manual 05/06 batch
files. The administrator public key now comes from the host
(SSH_PUBLIC_KEY_FILE or ~/.ssh/id_*.pub) instead of being hardcoded.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 11:55:38 +08:00
GuofangandClaude Sonnet 5.5 552a292894 Install OpenSSH Server from the Win32-OpenSSH zip
Carry the zip for the host architecture in the seed ISO and add
06-Install-OpenSSH-Zip-Admin.bat, which installs from it instead of
Windows Update. Update vm-images.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:28:13 +08:00
guofangandClaude Sonnet 5.5 c139c566d0 Use virtio-gpu with viogpudo on Arm64 Windows 11
Replace ramfb with virtio-gpu-pci at 2048x1280 and install the viogpudo
driver from the VirtIO ISO. ramfb has a fixed mode, and keeping both
adapters left Windows with a second, fixed-mode monitor.

Windows Setup and the base image have no viogpudo driver, so on the
launch that creates the system disk the launcher also adds a ramfb ahead
of the config files. The display window shows the first GPU.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-18 17:47:48 +08:00
guofangandClaude Sonnet 5.5 69dcfe1d9f Install the VirtIO Arm64 drivers with pnputil; make OpenSSH a batch file
On Arm64 Windows the VirtIO guest tools installer is an x86 program and the
VirtIO ISO has no Arm64 package for it, so the first-logon script failed there
and the guest had no network (no NetKVM driver). Install the Arm64 NetKVM,
vioserial, Balloon, viorng and vioinput drivers from their folders on the ISO
with pnputil instead.

The OpenSSH Server capability is downloaded through Windows Update, which can
take very long and blocked the rest of the script. Move it, with the
administrator authorized key, into 05-Install-OpenSSH-Admin.bat, which the
script copies to the Installers folder on the desktop to run by hand.

Update the vm-images submodule to the build script that runs on Debian.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-17 17:43:29 +08:00
GuofangandClaude Sonnet 5.5 1ac9221198 Copy the installer batch files to an Installers folder on the desktop
Adds a -CopyInstallers switch to the Windows 11 configure script and enables
it in Autounattend.xml.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 13:58:41 +08:00
GuofangandClaude Sonnet 5.5 907dbf92b4 Add -DisableAutoUpdate switch to the Windows 11 configure script
Disables automatic Windows Update via policy, pins the current feature
release, and is enabled in Autounattend.xml.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 10:00:23 +08:00
GuofangandClaude Sonnet 5.5 26baf25172 Self-elevate and pause at the end of the Windows 11 configure script
Relaunch as Administrator through UAC when needed, report success or
failure, and wait for Enter before the window closes. Autounattend.xml
passes -NoPause so the unattended install does not block.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 10:02:37 +08:00
GuofangandClaude Sonnet 5.5 96c689b03e Make VirtIO and automatic logon opt-in in the Windows 11 configure script
Add -InstallVirtIO and -EnableAutomaticLogon switches to
Configure-Windows.ps1 so it can run standalone on a physical machine.
Autounattend.xml passes both switches during the virtual machine install.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 10:00:37 +08:00
Guofang 58a0a2d1ff Initial commit 2026-08-26 12:36:30 +08:00