# VMs ## HOW-TO To start (or create) a VM, go in the desired folder and run ```console $ ./run.sh [OPTS] ``` You can pass `qemu` flags (see `QEMU(1)`) to `./run.sh` directly or you can make theses flags permanent by editing `run.sh` (this VM only) or `lib.sh` (all VMs). ### Headless For a headless VM, just remove the `-vga` and `-audio` flags from `lib.sh`.
To start the VM in the background: `./run.sh & disown` ### CPU/RAM limit The CPU flag is not set by default, see `QEMU(1)` for default values.
Default RAM flag: `-m "2G,maxmem=$((HOST_RAM - 2))G"`. ``` ./run.sh -smp "${NB_CPUS},maxcpus=${MAX_CPUS}" \ -m "${RAM}G,maxmem=${MAX_RAM}G" ``` ### Port forwarding To forward host port 2222 to guest port 22: ``` ./run.sh -nic user,hostfwd=tcp::2222-:22 ``` ### USB passthrough If you need USB passthrough, uncomment and fill in the corresponding line in `run.sh`. [You may need root privileges](https://wiki.archlinux.org/title/QEMU#Pass-through_host_USB_device). ## See also