dotfiles/.local/bin/vm
2025-01-30 13:55:36 +00:00

29 lines
797 B
Bash
Executable File

#!/bin/bash -e
ISO="$1"
DISK="$HOME/${ISO%.*}.qcow2"
MAXMEM="$(free -g | awk '/Mem:/{print $2 - 2 * $3}')G"
OVMF_CODE=/usr/share/edk2/x64/OVMF_CODE.4m.fd
OVMF_VARS=/tmp/OVMF_VARS.4m.fd
set -x
if [ -f "$OVMF_VARS" ]; then
cp -f /usr/share/edk2/x64/OVMF_VARS.4m.fd "$OVMF_VARS"
fi
if [ -f "$DISK" ]; then
qemu-img create -f qcow2 "$DISK" 20G
fi
qemu-system-x86_64 \
-accel kvm \
-M q35 \
-monitor stdio \
-cpu host \
-m "2G,maxmem=$MAXMEM" \
-vga virtio \
-audio pipewire,model=hda \
-nic model=virtio-net-pci,type=user \
-drive "if=pflash,format=raw,file=$OVMF_CODE,readonly=on" \
-drive "if=pflash,format=raw,file=$OVMF_VARS" \
-drive "if=virtio,file=$DISK" \
-drive "file=$ISO,media=cdrom,readonly=on"