# 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` (current 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). ## Windows installation `Shift`+`F10` to open cmd.exe ```console D: pnputil /add-driver amd64\{version}\*.inf /install diskpart > list disk > sel disk 0 > convert gpt > create par efi size=100 > create par primary > sel par 1 > format fs=fat32 quick > assign letter=G: > sel par 2 > format fs=ntfs quick > assign letter=C: > exit E: cd sources dism /get-imageinfo /imagefile:install.wim dism /apply-image /imagefile:install.wim /index:2 /applydir:C: dism /image:C:\ /add-driver /driver:D:\amd64\{version}\viostor.inf bcdboot C:\windows /s G: /f UEFI ``` ## See also