35 lines
647 B
Bash
35 lines
647 B
Bash
#!/bin/bash -e
|
|
|
|
function ask_yn() {
|
|
local ans
|
|
|
|
printf "$1 (Y/n) " >&2
|
|
read -r ans
|
|
case "${ans,,}" in
|
|
y*|'') return 0 ;;
|
|
*) return 1 ;;
|
|
esac
|
|
}
|
|
|
|
RAM="$(free -g | awk '/^Mem:/{print $2 - 2}')"
|
|
|
|
if [ "$RAM" -le 2 ]; then RAM=2
|
|
elif [ "$RAM" -gt 32 ]; then RAM=32; fi
|
|
|
|
RAM="${RAM}G"
|
|
|
|
CMD=(
|
|
qemu-system-x86_64
|
|
-accel kvm
|
|
-M q35
|
|
-cpu host
|
|
-m "2G,maxmem=$RAM"
|
|
-vga virtio
|
|
-drive if=virtio,file=hda.qcow2
|
|
# usb
|
|
-device qemu-xhci
|
|
# shared memory
|
|
-object memory-backend-ram,id=mem,size=2G,share=on
|
|
-numa node,memdev=mem
|
|
)
|