The images are kept between runs (installed is about 35 GB), and a
scenario's disk only holds its changes, so the old "a VM disk grows to
about 50 GB and is deleted" was misleading. Mention smoketest clean.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
provision.sh deleted the cloud image's link to systemd-resolved's
resolv.conf, but systemd's tmpfiles put it back at the next boot. With
systemd-resolved off the link led nowhere, NetworkManager won't replace a
link it didn't make, and the VM had no DNS, so install.sh couldn't reach
archlinux.org. An empty file stops tmpfiles, and NetworkManager fills it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The waits for SSH, GNOME and a reboot say what they're waiting for and
repeat it once a minute, and the base build says when it's waiting for
cloud-init, installing GNOME and shutting down.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Arch's cloud image enables systemd-time-wait-sync, and sshd is ordered
after pacman-init, which waits for time-sync.target. Once provision.sh
turns off systemd-networkd, systemd-timesyncd thinks it's offline and never
syncs, so every boot after the base build waited forever and the installed
image's build failed with "The VM didn't answer on SSH".
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
On Arch, -vga virtio needs qemu-hw-display-virtio-vga and also
qemu-hw-display-virtio-gpu, which that package doesn't depend on; with only
the first, QEMU segfaults at start without a message. The smoketest's VMs
are headless (or VNC), so -vga std, which qemu-base has, is enough. This
reverts 2207208's extra package and checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The smoketest VMs start with -vga virtio, but Arch packages that display
apart from qemu-base, so the base image build failed with "Virtio VGA not
available". update.sh now installs qemu-hw-display-virtio-vga, and doctor
and smoketest run check QEMU has the display before anything downloads.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>