Commit Graph
27 Commits
Author SHA1 Message Date
GuofangandClaude Sonnet 5.5 2eaa0f9d32 Add rustup installer batch file for the Windows 11 VM
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 13:00:06 +08:00
GuofangandClaude Sonnet 5.5 9adcf6acca Add Git for Windows installer batch file for the Windows 11 VM
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 12:59:31 +08:00
GuofangandClaude Sonnet 5.5 4e843947e6 Add CMake installer batch file for the Windows 11 VM
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 12:59:17 +08:00
GuofangandClaude Sonnet 5.5 a55400c682 Add MSVC 2022 Build Tools installer batch file for the Windows 11 VM
Installs the C++ workload through winget; run it as administrator.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 12:56:56 +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 c63c25c7b1 Warn instead of failing when a forwarded host port is in use in the Windows 11 launcher
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 12:40:19 +08:00
GuofangandClaude Sonnet 5.5 e1e5a2149c Load the Windows 11 VM hardware from QEMU config files and add port options
Move the QEMU hardware definition of the Windows 11 VM into
qemu/windows11.ini and qemu/windows11-amd64.ini, loaded with -readconfig
like the Linux launchers. The network stays in the launcher because a
config file section cannot hold two hostfwd entries. Add --rdp-port and
--ssh-port, which override the WIN11_VM_*_PORT environment variables.
WIN11_VM_MEMORY and WIN11_VM_CPUS are replaced by the config file.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 12:36:15 +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
GuofangandClaude Opus 5.5 1691062554 Add Ubuntu 26.04 virtual machine
Add run-ubuntu2604.py with its QEMU config files and NoCloud seed. The
launcher follows the Debian 13 one, with UBUNTU_VM_ settings and SSH
forwarded to host port 2225. The seed injects the current user's SSH public
key, uses the USTC mirror (ubuntu-ports on arm64) and installs the GNOME
desktop on first boot. Update vm-images for the ubuntu2604 image target.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Kwxp2XWvKnuEBifnCbhyX5
2026-10-15 09:00:15 +08:00
GuofangandClaude Opus 5.5 649399aaa1 Print the SSH command again in the Debian and Fedora launchers
Moving the SSH port forward into the QEMU config files dropped the
launchers' SSH hint. Read the host port forwarded to guest port 22 from
the rendered config and print the matching ssh command.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SdbBg69LciFz8kjVCtnkbj
2026-10-11 13:44:52 +08:00
GuofangandClaude Sonnet 5.5 e934faf776 Add a commented ibus-table-wubi package to the Debian seed user-data
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 19:47:38 +08:00
GuofangandClaude Sonnet 5.5 2fd82ab2c9 Inject the current user's SSH public key into the Debian seed ISO
user-data is now a template with an @SSH_PUBKEY@ placeholder that
build-seed.sh fills in from SSH_PUBKEY_FILE, ~/.ssh/id_*.pub or ssh-agent.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 19:17:04 +08:00
GuofangandClaude Opus 5.5 204051f930 Add --download-only to the VM launchers
The option downloads the media a launcher would fetch automatically and
exits without checking for QEMU, creating a VM disk or starting the VM:
the base image for Debian, AlmaLinux and Fedora, and the VirtIO tools
ISO for Windows 11.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YKxXLyiL7XJ3a9e8HmR2my
2026-09-30 10:56:27 +08:00
GuofangandClaude Opus 5.5 7912a1549e Update vm-images to download from several mirrors with aria2c
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YKxXLyiL7XJ3a9e8HmR2my
2026-09-30 10:56:27 +08:00
GuofangandClaude Opus 5.5 646ee8aae9 Update vm-images to download Fedora from the TUNA mirror
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YKxXLyiL7XJ3a9e8HmR2my
2026-09-30 10:36:51 +08:00
GuofangandClaude Opus 5.5 be9291c57b Load the Fedora 44 VM hardware from QEMU config files
Apply the Debian launcher's config file layout to Fedora: the shared
qemu/fedora44.ini and qemu/fedora44-<arch>.ini replace the inline QEMU
arguments and the FEDORA_VM_MEMORY, FEDORA_VM_CPUS and
FEDORA_VM_SSH_PORT variables; FEDORA_VM_QEMU_CONFIG selects a different
shared config file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YKxXLyiL7XJ3a9e8HmR2my
2026-09-30 10:26:28 +08:00
GuofangandClaude Opus 5.5 fe8b6f93ff Load the Debian 13 VM hardware from QEMU config files
Move the Debian launcher's QEMU arguments into qemu/debian13.ini, which
the launcher renders with the per-run file paths and passes to QEMU with
-readconfig, followed by qemu/debian13-<arch>.ini for the machine type
and arm64-only devices. Memory, CPU count, SSH port and accelerator are
now set in the config files, replacing VM_MEMORY, VM_CPUS and
VM_SSH_PORT; VM_QEMU_CONFIG selects a different shared config file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YKxXLyiL7XJ3a9e8HmR2my
2026-09-30 10:26:28 +08:00
GuofangandClaude Opus 5.5 280abbd2de Update vm-images to auto-detect the Windows 11 ISO
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ks2ixr4KHXBtLuCet7Ch5Z
2026-09-30 09:57:43 +08:00
GuofangandClaude Opus 5.5 3561fc6729 Remove shell VM launchers in favor of the Python ones
Delete run-*.sh and point the documentation at run-*.py. The
seediso build-seed.sh helpers stay, as the Python launchers call them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HL6bzSwWGNwru9bDS9ZCLg
2026-09-30 09:22:40 +08:00
GuofangandClaude Opus 5.5 8a7f974c11 Add --state-dir option to the Python VM launchers
Let each run-*.py launcher take the VM directory (disk, seed ISO, UEFI
variables, PID file, console log) from the command line, taking
precedence over the *_STATE_DIR environment variable. Paths derived
from the state directory are now computed after argument parsing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K1dybYsc36kf3gUPB7NuNB
2026-09-29 13:35:32 +08:00
GuofangandClaude Opus 5.5 a03fb23977 Ignore Python bytecode cache directories
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K1dybYsc36kf3gUPB7NuNB
2026-09-29 13:35:32 +08:00
Guofang e894144931 Fix URL for vm-images submodule in .gitmodules 2026-09-29 13:25:36 +08:00
GuofangandClaude Opus 5.5 6e15e92d96 Update vm-images: auto-detect host architecture for downloaded images
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UXorbMAQvrY3a95cDEXWNY
2026-09-29 13:17:23 +08:00
GuofangandClaude Opus 5.5 b5a2061276 Add Python ports of the VM launchers
Each run-*.py mirrors its run-*.sh counterpart: same options, environment
variables, messages and QEMU command line. Unlike the shell scripts, the
Python ports use a portable /usr/bin/env shebang.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S8ZGHSJ5JogcTAYhPNxXTV
2026-09-29 13:03:37 +08:00
Guofang a0cd640ffe Add Fedora 44 GNOME virtual machine 2026-08-31 12:16:59 +08:00
Guofang 58a0a2d1ff Initial commit 2026-08-26 12:36:30 +08:00