29 lines
797 B
Bash
Executable File
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"
|