summaryrefslogtreecommitdiff
path: root/qemu.sh
blob: 3f6125db593a8d642ac2e788184de58fc21afe84 (plain)
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"