Building a VM with virt-install Introduction This assumes that the network will be used in "macvtap" mode. This is the preferred method, as it is faster than a regular bridge and does not need any additional network configuration on the host. The disadvantage of macvtap is that host-to-vm and vm-to-host communication is blocked. This can be worked around with an "internal" switch, or by having the macvtap connection bind to a second interface. Creating the VM The following command assumes the OS is "rhel9.1" and the network card is "eno1". It should be run as the root user or with sudo, and should be run inside tmux for safety. virt-install --name rhel9 \ --osinfo rhel9.1 \ --boot uefi \ --cdrom /var/lib/libvirt/isos/rhel-baseos-9.1-x86_64-dvd.iso \ --network type=direct,source=enp2s0,source_mode=bridge \ --graphics vnc \ --console pty,target.type=virtio \ --autoconsole none Paths and names should be changed as appropriate. The VNC port can be found for this example by running "virsh vncdisplay rhel9". The disk will be created in the default location, which is normally /var/lib/libvirt/images. To change this, add "path=/path/file.qcow2" to the "--disk" option. Specify the size by adding "size=20" for a 20 GB disk. Tips For a virtio network card on Windows machines, add "model=virtio" to the --network option. Other useful options are "--memory 4096" for 4 GB RAM, and "--vcpus 2" for a dual-CPU guest. A list of supported operating systems can be found by running: virt-install --osinfo list