detached 7030359

fix(vm): use profile-specific MAC addresses and document qcow2 pre-creation

commit
7030359b7f924e44cd6855da8fffecf87781a3ae
author
brice · · 2026-02-27 04:52 UTC
parent
63b18be
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
2 files · +8 -1
M test/vm/README.md +2 -0
@@ -106,3 +106,5 @@ ip link
106106
107107 - Secure Boot mode copies OVMF_VARS to a temp file each run; keys must be enrolled manually via UEFI shell on first boot.
108108 - `check-luks.sh` defaults to `/dev/nvme0n1p2`. For old virtio-disk images use `--disk /dev/vda2`.
109+- `arch-test.qcow2` must exist before launching any VM (run `./create-vm-img.sh` first). The ISO launcher also requires it as the install target disk.
110+- Desktop and laptop profiles use different MAC addresses (`52:54:00:12:34:01` / `:02`) so both VMs can run concurrently on the same host.
@@ -106,3 +106,5 @@ ip link
106 106
107 - Secure Boot mode copies OVMF_VARS to a temp file each run; keys must be enrolled manually via UEFI shell on first boot.107 - Secure Boot mode copies OVMF_VARS to a temp file each run; keys must be enrolled manually via UEFI shell on first boot.
108 - `check-luks.sh` defaults to `/dev/nvme0n1p2`. For old virtio-disk images use `--disk /dev/vda2`.108 - `check-luks.sh` defaults to `/dev/nvme0n1p2`. For old virtio-disk images use `--disk /dev/vda2`.
109+- `arch-test.qcow2` must exist before launching any VM (run `./create-vm-img.sh` first). The ISO launcher also requires it as the install target disk.
110+- Desktop and laptop profiles use different MAC addresses (`52:54:00:12:34:01` / `:02`) so both VMs can run concurrently on the same host.
M test/vm/lib/qemu-profile.sh +6 -1
@@ -81,8 +81,13 @@ build_qemu_args() {
8181 QEMU_ARGS+=(-device "nvme,drive=nvme0,serial=${nvme_serial}")
8282
8383 # ── Network ──────────────────────────────────────────────────────────────────
84+ local nic_mac
85+ case "$profile" in
86+ desktop) nic_mac="52:54:00:12:34:01" ;;
87+ laptop) nic_mac="52:54:00:12:34:02" ;;
88+ esac
8489 QEMU_ARGS+=(-netdev "user,id=net0,hostfwd=tcp::${ssh_port}-:22")
85- QEMU_ARGS+=(-device "e1000e,netdev=net0,mac=52:54:00:12:34:56")
90+ QEMU_ARGS+=(-device "e1000e,netdev=net0,mac=${nic_mac}")
8691
8792 # ── USB Controller + Input ───────────────────────────────────────────────────
8893 QEMU_ARGS+=(-device qemu-xhci)
@@ -81,8 +81,13 @@ build_qemu_args() {
81 QEMU_ARGS+=(-device "nvme,drive=nvme0,serial=${nvme_serial}")81 QEMU_ARGS+=(-device "nvme,drive=nvme0,serial=${nvme_serial}")
82 82
83 # ── Network ──────────────────────────────────────────────────────────────────83 # ── Network ──────────────────────────────────────────────────────────────────
84+ local nic_mac
85+ case "$profile" in
86+ desktop) nic_mac="52:54:00:12:34:01" ;;
87+ laptop) nic_mac="52:54:00:12:34:02" ;;
88+ esac
84 QEMU_ARGS+=(-netdev "user,id=net0,hostfwd=tcp::${ssh_port}-:22")89 QEMU_ARGS+=(-netdev "user,id=net0,hostfwd=tcp::${ssh_port}-:22")
85- QEMU_ARGS+=(-device "e1000e,netdev=net0,mac=52:54:00:12:34:56")90+ QEMU_ARGS+=(-device "e1000e,netdev=net0,mac=${nic_mac}")
86 91
87 # ── USB Controller + Input ───────────────────────────────────────────────────92 # ── USB Controller + Input ───────────────────────────────────────────────────
88 QEMU_ARGS+=(-device qemu-xhci)93 QEMU_ARGS+=(-device qemu-xhci)

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 0

    ↑↓ moveenter openesc close