phyllomeos/leaves/vhdmd.cfg
2021-07-21 16:36:08 +02:00

47 lines
2.5 KiB
INI

# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# WHAT ? This Kickstart file bootstraps a minimal desktop-oriented nested-host.
# 'v' for virtual machine, 'e' for efi, 'm' for minimal, 'd' for desktop, 'h' for hypervisor, 'd' for development only.
# USAGE : Press the `tab` or 'e' key during POST and apend that after the 'quiet' string :
# inst.ks=https://git.phyllo.me/home/kickstart/raw/branch/master/leafs/vemdhd.cfg
# A shorter URL can also be used :
# inst.ks=https://url.phyllo.me/vemdhd
# ATTENTION : this kickstart file will automatically DESTROY the main virtual disk 'vda' and all of its contents.
# Bye bye!
%include https://git.phyllo.me/home/kickstart/raw/branch/master/leafs/vemdd.cfg # Includes vemdd.cfg, the minimal GNOME-based desktop-oriented virtual machine ks file.
%post # Beginning of %post section
dnf install -y qemu-kvm libvirt libvirt-daemon-config-network libvirt-daemon-kvm # Install minimal tools dedicated to virtualization.
dnf install -y virt-install virt-manager virt-viewer virt-top libguestfs-tools python3-libguestfs guestfs-tools # Complementary tools useful for interacting with virtual machines.
usermod -a -G libvirt test ## make user "test" part of the existing libvirt group to allow it to interact with the nested-hypervisor.
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd, kvmgt, vfio-mdev
echo "vfio" > /etc/modules-load.d/vfio.conf
echo "vfio-pci" > /etc/modules-load.d/vfio-pci.conf
echo "vfio_iommu_type1" > /etc/modules-load.d/vfio_iommu_type1.conf
echo "vfio_virqfd" > /etc/modules-load.d/vfio_virqfd.conf
# Create a directory to store iso images and make the user "test" its owner
mkdir /var/lib/libvirt/iso
chown test:test /var/lib/libvirt/iso
# Create a directory to store rom files and make the user "test" its owner
mkdir /var/lib/libvirt/rom
chown test:test /var/lib/libvirt/rom
# Create a network bridge (doesn't work, perhaps because nmcli is not available at that time. No, it is because the new network must be defined within the libvirt context, with an XML file)
# nmcli con add ifname br0 type bridge con-name br0
# nmcli con add type bridge-slave ifname en0 master br0
# nmcli con up br0
%end # End of the %post section