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.
The following command assumes the machine type is linux2020 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 linux2020 \ --boot uefi \ --cdrom /var/lib/libvirt/isos/rhel-baseos-9.1-x86_64-dvd.iso \ --disk /var/lib/libvirt/images/rhel9.qcow2,size=20 \ --network type=direct,source=enp2s0,source_mode=bridge \ --graphics vnc \ --console pty,target.type=virtio \ --autoconsole none
Highlighted paths and names should be changed as appropriate. The VNC port can be found for this example by running virsh vncdisplay rhel9.
Import a template image by copying the template into place and replacing --cdrom /path/to/disc.iso
with --import
.
The file size is not needed in the --disk
option in this case.
PXE-boot a VM by replacing the --cdrom /path/to/disc.iso
option with --pxe
.
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.
If the host hypervisor has a bridged network set up already, such as br0, replace the --network
option with --network bridge=br0
.