1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#!/bin/bash
set -euo pipefail
img="$1"
log="$2"
out="$3"
src="test-project"
tmp="$(mktemp -d)"
trap 'rm -rf "$tmp"' EXIT
cp "$img" "$tmp/img.qcow2"
cp /usr/share/OVMF/OVMF_VARS.fd "$tmp/vars.fd"
tar -cf "$tmp/src.tar" -C "$src" .
qemu-img create -q -f raw "$out" 1G
qemu-system-x86_64 \
-m 4096 \
-drive if=pflash,format=raw,unit=0,file=/usr/share/ovmf/OVMF.fd,readonly=on \
-drive if=pflash,format=raw,unit=1,file="$tmp/vars.fd" \
-drive format=qcow2,if=virtio,file="$tmp/img.qcow2" \
-drive format=raw,if=virtio,file="$tmp/src.tar" \
-drive format=raw,if=virtio,file="$out" \
-nodefaults -display none \
-chardev stdio,id=serial0 -serial chardev:serial0 >"$log"
|