diff --git a/README.md b/README.md index 0f4d2af..c45b612 100644 --- a/README.md +++ b/README.md @@ -2,51 +2,90 @@ > Virtualization for the rest of us -## What ? +## What -* This repository contains the basic building blocks required for deploying [Phyllome OS](https://phyllo.me/) bare-metal or in a virtual machine using [kickstart](https://en.wikipedia.org/wiki/Kickstart_(Linux)) files. +This repository contains the basic building blocks required for deploying [Phyllome OS](https://phyllo.me/) bare-metal or in a virtual machine, using kickstart files. -## Development +> Note: This is the **alpha version** of Phyllome OS. Expect bugs and disappointment -For development purposes, Phyllome OS can be deployed in a virtual machine, leveraging nested-virtualization. +> Note: External contributions for Phyllome OS itself are **not** yet accepted. However, the Phyllome OS Project is looking for **core contributors**. If you are interested about making cutting-edge open-source virtualization more accessible, please send an email to contact@phyllo.me. + +### Structure of the repository + +* `leaves` : this directory contains the basic buildings blocks for assembling Phyllome OS versions + * For instance, the Phyllome OS Desktop version optimized for Intel(tm) CPUs and Intel(tm) graphic cards, refered internally as `dhi`, can be found there (*d* for desktop; *h* for hypervisor; *i* for intel) + * Eventually, there will be three generic editions : **server**; **desktop** and **live**, with their own platform-dependant optimizations +* `flat` : this directory contains the end products in the form of stand-alone and ready-to-use kickstart files + +## How to hack + +Hacking kickstart files is the main way to assemble and configure Phyllome OS, which is RPM-based. Kickstart files are snippets of code which automate the installation of RPM-based Linux distributions. ### Requirements -* A x86_64 platform that supports hardware-assisted virtualization -* A recent Linux Kernel (5.X) +* A x86_64 platform with hardware-assisted virtualization enabled +* A recent Linux Kernel (> 5.X) * The `virt-install` and `virt-manager` tools -* `libvirt` and `qemu-kvm`up and running -* Nested-virtualization enabled +* `libvirt` and `qemu-kvm` up and running +* Nested-virtualization enabled -### Preparation +### The prerequisites -*Enable nested-virtualization* : +**AMD-based systems only**, enable nested-virtualization, then reboot: -* For AMD-based systems +``` +sudo echo "options kvm_amd nested=1" >> /etc/modprobe.d/kvm.conf +``` -```to be done``` +**Intel-based systems only**, enable nested-virtualization, then reboot: -* For Intel-based systems +``` +sudo echo "options kvm_intel nested=1" >> /etc/modprobe.d/kvm.conf` +``` -```to be done``` +Install the prerequisites on Fedora 34 -* For Fedora 34 +``` +sudo dnf install -y qemu-kvm libvirt libvirt-daemon-config-network libvirt-daemon-kvm virt-install virt-top virt-manager libguestfs-tools python3-libguestfs guestfs-tools +``` -*Install the prerequisites* : - -```sudo dnf install -y qemu-kvm libvirt libvirt-daemon-config-network libvirt-daemon-kvm virt-install virt-top virt-manager libguestfs-tools python3-libguestfs guestfs-tools``` - -* For Ubuntu 20.4 or Debian 11 +Install the prerequisites on Ubuntu 20.4 or Debian 11 ```To be done``` -### Fire! +### Hack -> Note : the following scripts relies on a kickstart tuned for Intel CPU and GPU, but may nonetheless on other systems. +From within your favorite terminal : + +``` +git clone https://github.com/PhyllomeOS/PhyllomeOS.git +``` + +Hack files inside the `leaves` directory. + +When you are done, move to the `flat` directory : + +``` +cd ./PhyllomeOS/flat/ +``` + +Then, merge the kickstart leaves into a single file, a process known as flattening. Here, we take the Phyllome OS Desktop edition optimized for Intel(tm) CPUs and Intel(tm) graphic cards, also known as `dhi`, as an example : + +``` +ksflatten -c ../leaves/dhi.cfg -o flat-dhi.cfg +``` + +## Fire it up! + +For testing and development purposes, Phyllome OS can be deployed inside a virtual machine, as a guest hypervisor. + +> Note: it may eventually switch to container-based development. + +> Note: the following script relies on a network-accessible kickstart file tuned for Intel CPUs and GPUs. This script will automatically deploy the alpha version of Phyllome OS, on a Q35 virtual motherboard, a UEFI-based firmware, virtio-devices accross the board, 2 vCPUs, 4 GB of RAM and a disk of 5 GB. -Adjust it according to your need. When ready, copy and paste it to your terminal and fire-up it up! +Adjust it according to your need. When ready, copy and paste it to your terminal and fire it up! ``` virt-install \ @@ -70,18 +109,60 @@ virt-install \ --input type=keyboard,bus=virtio \ --input type=tablet,bus=virtio \ --rng /dev/urandom,model=virtio \ - --disk path=/var/lib/libvirt/images/flat-dhimd.img,format=raw,bus=virtio,cache=writeback,size=5 \ - --location=https://download.fedoraproject.org/pub/fedora/linux/releases/34/Everything/x86_64/os/ \ - --extra-args="inst.ks=https://git.phyllo.me/home/kickstart/raw/branch/master/flat/flat-dhimd.cfg" + --disk path=/var/lib/libvirt/images/flat-dhi.img,format=raw,bus=virtio,cache=writeback,size=5 \ + --location=https://download.fedoraproject.org/pub/fedora/linux/releases/35/Everything/x86_64/os/ \ + --initrd-inject flat-dhi.cfg --extra-args "inst.ks=file:flat-dhi.cfg" ``` -### Licence +``` +Starting install... +Retrieving file vmlinuz... | 10 MB 00:00 +Retrieving file initrd.img... | 79 MB 00:02 +Allocating 'virtinst-inlu7cmw-vmlinuz' | 10 MB 00:00 +Transferring virtinst-inlu7cmw-vmlinuz | 10 MB 00:00 +Allocating 'virtinst-2dd8ghse-initrd.img' | 79 MB 00:00 +Transferring virtinst-2dd8ghse-initrd.img | 79 MB 00:01 +Allocating 'flat-dhi.img' | 5.0 GB 00:00 + +Domain is still running. Installation may be in progress. +You can reconnect to the console to complete the installation process. +``` +The process will be launched behind the scene. You can open `virt-manager` and connect to the virtual machine to follow the process. Eventually, you will be greated with this screen: + +![greetings](./img/greetings.png) + +After you are done setting your user account, `virt-manager` will automatically start: + +![greetings](./img/desktop.png) + +## Phyllome OS + +Phyllome OS is a [Fedora Remix](https://fedoraproject.org/wiki/Remix) based on [Fedora Server 34](https://getfedora.org/en/server/) designed to leverage hardware-assisted virtualization and VirtIO-based paravirtualization to run modern UEFI-compatible guest operating systems locally. + +The goal is to maximize ease-of-use and compatibility. As such, Phyllome OS intends to become the easiest way to virtualize modern operating systems, by integrating pertinent open-source software such as `libvirt`, `qemu-kvm` (and then the `Cloud Hypervisor`) and `virt-manager`. + +A user should not have to manage Phyllome OS: it should be able to pick its favorite operating system and Phyllome OS should run it, no question asked. + +Do you want to know more about Phyllome OS design and context ? If so, please have a look at [the white paper](). + +> Note : at the exception of open-source [Darwin derivatives](https://en.wikipedia.org/wiki/Darwin_(operating_system)#Derived_projects), Phyllome OS **won't** offer support running macOS on non-Apple hardware. + +### The Phyllome OS Project + +The Phyllome OS Project relies on multiple tools, including the following front-facing tools: + +* **The wiki**: Have a look at the [wiki repository](https://github.com/PhyllomeOS/wiki) for more information on how you can contribute to improve the documentation. +* **Issues tracker**: public, read-only issue tracking is [available online](https://kanboard.phyllo.me/b/CH7qd98J2v7egmodk/development) +* **The website**: the website repository is [available here](https://github.com/PhyllomeOS/www) +* **Code repository**: GitHub is being used + +## Licence * [GENERAL PUBLIC LICENCE 3](./LICENSE) -### Acknowledgement +## Acknowledgement -* I would like to thanks the main contributors of the official Fedora kickstart files repository, and related tools. +Thanks to the main contributors of the official Fedora kickstart files repository, and related tools: > Adam Miller, Bastien Nocera, Bruno Wolff III, Bryan Kearney, Chitlesh Goorah, Christoph Wickert, Colin Walters, Fabian Affolter, Igor Pires Soares, Jens Petersen, Jeremy Katz, Jeroen van Meeuwen diff --git a/iso/idhmd.cfg b/archive/iso/idhmd.cfg similarity index 100% rename from iso/idhmd.cfg rename to archive/iso/idhmd.cfg diff --git a/iso/idmd.cfg b/archive/iso/idmd.cfg similarity index 100% rename from iso/idmd.cfg rename to archive/iso/idmd.cfg diff --git a/iso/imd.cfg b/archive/iso/imd.cfg similarity index 100% rename from iso/imd.cfg rename to archive/iso/imd.cfg diff --git a/flat/flat-d.cfg b/flat/flat-d.cfg new file mode 100644 index 0000000..b4e4cc9 --- /dev/null +++ b/flat/flat-d.cfg @@ -0,0 +1,87 @@ +# Generated by pykickstart v3.32 +#version=DEVEL +# X Window System configuration information +xconfig --defaultdesktop=GNOME --startxonboot +# Keyboard layouts +keyboard --xlayouts='ch (fr)' +# Root password +rootpw --iscrypted --lock locked +# System language +lang en_US.UTF-8 +# Reboot after installation +reboot --kexec +# Use text mode install +text +# Network information +network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate +# Firewall configuration +firewall --enabled +# Use network installation +url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch" +repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch +repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch +# System timezone +timezone Europe/Paris --utc +# SELinux configuration +selinux --enforcing +# System services +services --disabled="sshd" --enabled="NetworkManager" +# System bootloader configuration +bootloader --location=mbr --timeout=1 +# Clear the Master Boot Record +zerombr +# Partition clearing information +clearpart --all --initlabel +# Disk partitioning information +part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi +part /boot --fstype="ext4" --size=384 --label=boot +part / --fstype="ext4" --grow --label=root + +%post --logfile=/root/b.log + +localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked. +dnf update -y # Update the system +grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub otherwise the system won't boot properly + +# In the %post section of the kickstart file, add the following as the first line. Probably useless : leaving this uncommented for the moment +# See : https://www.opensourceforu.com/2010/01/roll-out-a-fedora-remix/ +# sed -i -e 's/Generic release/LFY Fedora Remix/g' /etc/fedora-release /etc/issue + +%end + +%post --nochroot --logfile=/mnt/sysimage/root/d.log + +truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available + +# set new default background (doesn't work. Would have to call a script on first boot or something) +# gsettings set org.gnome.desktop.background picture-uri file://mnt/sysimage/usr/share/backgrounds/elementary/default + +%end + +%packages --exclude-weakdeps +@core +dejavu-sans-mono-fonts +elementary-wallpapers-gnome.noarch +fedora-remix-logos +generic-logos +generic-release +generic-release-common +generic-release-notes +gnome-initial-setup +gnome-shell +gnome-terminal +nano +neofetch +pciutils +qemu-guest-agent +spice-vdagent +wget +wpa_supplicant +-fedora-logos +-fedora-release +-fedora-release-common +-fedora-release-identity-basic +-fedora-release-notes +-gnome-tour + +%end diff --git a/flat/flat-dh.cfg b/flat/flat-dh.cfg new file mode 100644 index 0000000..8f1e8a8 --- /dev/null +++ b/flat/flat-dh.cfg @@ -0,0 +1,96 @@ +# Generated by pykickstart v3.32 +#version=DEVEL +# Keyboard layouts +keyboard --xlayouts='ch (fr)' +# Root password +rootpw --iscrypted --lock locked +# System language +lang en_US.UTF-8 +# Reboot after installation +reboot --kexec +# Use text mode install +text +# Network information +network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate +# Firewall configuration +firewall --enabled +# Use network installation +url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch" +repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch +repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch +# System timezone +timezone Europe/Paris --utc +# Run the Setup Agent on first boot +firstboot --reconfig +# SELinux configuration +selinux --enforcing +# System services +services --disabled="sshd" --enabled="NetworkManager" +# System bootloader configuration +bootloader --location=mbr --timeout=1 +# Clear the Master Boot Record +zerombr +# Partition clearing information +clearpart --all --initlabel +# Disk partitioning information +part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi +part /boot --fstype="ext4" --size=384 --label=boot +part / --fstype="ext4" --grow --label=root + +%post --logfile=/root/b.log + +localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked. +dnf update -y # Update the system +grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub otherwise the system won't boot properly + +# In the %post section of the kickstart file, add the following as the first line. Probably useless : leaving this uncommented for the moment +# See : https://www.opensourceforu.com/2010/01/roll-out-a-fedora-remix/ +# sed -i -e 's/Generic release/LFY Fedora Remix/g' /etc/fedora-release /etc/issue + +%end + +%post --nochroot --logfile=/mnt/sysimage/root/bh.log + +mkdir /mnt/sysimage/var/lib/libvirt/iso # Create a directory to store iso images +# virsh pool-create-as --name iso --type dir --target /mnt/sysimage/var/lib/libvirt/iso # Make libvirt aware of this new directory by creating a so-called 'pool' +# doesn't work + +wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /var/lib/libvirt/iso/ + +# Add a network bridge. Still need to declare it to libvirt/virt-manager +nmcli con add ifname br0 type bridge con-name br0 +nmcli con add type bridge-slave ifname enp1s0 master br0 +nmcli con up br0 + +%end + +%packages --exclude-weakdeps +@core +fedora-remix-logos +generic-logos +generic-release +generic-release-common +generic-release-notes +guestfs-tools +initial-setup +libguestfs-tools +libvirt +libvirt-daemon-config-network +libvirt-daemon-kvm +nano +neofetch +pciutils +python3-libguestfs +qemu-guest-agent +qemu-kvm +spice-vdagent +virt-install +virt-top +wget +-fedora-logos +-fedora-release +-fedora-release-common +-fedora-release-identity-basic +-fedora-release-notes + +%end diff --git a/flat/flat-dhi.cfg b/flat/flat-dhi.cfg new file mode 100644 index 0000000..9ca1e65 --- /dev/null +++ b/flat/flat-dhi.cfg @@ -0,0 +1,146 @@ +# Generated by pykickstart v3.32 +#version=DEVEL +# X Window System configuration information +xconfig --defaultdesktop=GNOME --startxonboot +# Keyboard layouts +keyboard --xlayouts='ch (fr)' +# Root password +rootpw --iscrypted --lock locked +# System language +lang en_US.UTF-8 +# Reboot after installation +reboot --kexec +# Use text mode install +text +# Network information +network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate +# Firewall configuration +firewall --enabled --service=mdns +# Use network installation +url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch" +repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch +repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch +# System timezone +timezone Europe/Paris --utc +# SELinux configuration +selinux --enforcing +# System services +services --disabled="sshd" --enabled="NetworkManager" +# System bootloader configuration +bootloader --location=mbr --timeout=1 +# Clear the Master Boot Record +zerombr +# Partition clearing information +clearpart --all --initlabel +# Disk partitioning information +part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi +part /boot --fstype="ext4" --size=384 --label=boot +part / --fstype="ext4" --grow --label=root + +%post --logfile=/root/b.log + +localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked. +dnf update -y # Update the system +grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub otherwise the system won't boot properly + +# In the %post section of the kickstart file, add the following as the first line. Probably useless : leaving this uncommented for the moment +# See : https://www.opensourceforu.com/2010/01/roll-out-a-fedora-remix/ +# sed -i -e 's/Generic release/LFY Fedora Remix/g' /etc/fedora-release /etc/issue + +%end + +%post --nochroot --logfile=/mnt/sysimage/root/bh.log + +mkdir /mnt/sysimage/var/lib/libvirt/iso # Create a directory to store iso images + +wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/iso/ + +virsh pool-define-as iso dir /mnt/sysimage/var/lib/libvirt/iso/ # Make libvirt aware of this new directory by creating a so-called 'pool' +virsh pool-build iso # Build the pool +virsh pool-start iso # Start it +virsh pool-autostart iso # Set-it to autostart + +# Add a network bridge. Still need to declare it to libvirt/virt-manager +nmcli con add ifname br0 type bridge con-name br0 +nmcli con add type bridge-slave ifname enp1s0 master br0 # to-do : generalize this command +nmcli con up br0 + +%end + +%post --nochroot --logfile=/mnt/sysimage/root/bhi.log + +sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci i915.enable_gvt=1/i' /mnt/sysimage/etc/default/grub # Load kernel modules in grub. + +# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd +echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf +echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf +echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf +echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf +echo "kvmgt" > /mnt/sysimage/etc/modules-load.d/kvmgt.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm) +echo "vfio-mdev" > /mnt/sysimage/etc/modules-load.d/vfio-mdev.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm) + +echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization + +dracut --add-drivers " vfio vfio-pci vfio_iommu_type1 vfio_virqfd vfio-mdev kvmgt " --force # Instruct dracut to load the vfio drivers +dracut --force # Regenerate initramfs +# Doesn't seem to work +# dracut: Cannot find /usr/lib/dracut/dracut-init.sh. +# dracut: Are you running from a git checkout? +# dracut: Try passing -l as an argument to /mnt/sysimage/usr/bin/dracut + +grub2-mkconfig -o /mnt/sysimage/boot/grub2/grub.cfg # Update grub. Does it fail ? /usr/sbin/grub2-probe: error: failed to get canonical path of `LiveOS_rootfs'. + +%end + +%post --nochroot --logfile=/mnt/sysimage/root/dhi.log + +truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available + +# Create a file to autostart virt-manager +cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF +[Desktop Entry] +Type=Application +Name=Virtual Machine Manager +Exec=virt-manager +EOF + +%end + +%packages --exclude-weakdeps +@core +@hardware-support +dejavu-sans-mono-fonts +elementary-wallpapers-gnome.noarch +fedora-remix-logos +generic-logos +generic-release +generic-release-common +generic-release-notes +gnome-initial-setup +gnome-shell +gnome-terminal +guestfs-tools +libguestfs-tools +libvirt +libvirt-daemon-config-network +libvirt-daemon-kvm +nano +neofetch +pciutils +python3-libguestfs +qemu-guest-agent +qemu-kvm +spice-vdagent +virt-install +virt-manager +virt-top +wget +wpa_supplicant +-fedora-logos +-fedora-release +-fedora-release-common +-fedora-release-identity-basic +-fedora-release-notes +-gnome-tour + +%end diff --git a/flat/flat-ldhi.cfg b/flat/flat-ldhi.cfg new file mode 100644 index 0000000..1528193 --- /dev/null +++ b/flat/flat-ldhi.cfg @@ -0,0 +1,503 @@ +# Generated by pykickstart v3.32 +#version=DEVEL +# X Window System configuration information +xconfig --defaultdesktop=GNOME --startxonboot +# Keyboard layouts +keyboard --xlayouts='ch (fr)' +# Root password +rootpw --iscrypted --lock locked +# System language +lang en_US.UTF-8 +# Use text mode install +text +# Network information +network --bootproto=dhcp --device=link --hostname=phyllome --activate +# Firewall configuration +firewall --enabled --service=mdns +# Use network installation +url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch" +repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch +repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch +# System timezone +timezone Europe/Paris --utc +# SELinux configuration +selinux --enforcing +# System services +services --disabled="sshd" --enabled="NetworkManager" +# System bootloader configuration +bootloader --location=mbr --timeout=1 +# Clear the Master Boot Record +zerombr +# Partition clearing information +clearpart --all +# Disk partitioning information +part / --fstype="ext4" --size=5120 + +%post --logfile=/root/bl.log +# FIXME: it'd be better to get this installed from a package +cat > /etc/rc.d/init.d/livesys << EOF +#!/bin/bash +# +# live: Init script for live image +# +# chkconfig: 345 00 99 +# description: Init script for live image. +### BEGIN INIT INFO +# X-Start-Before: display-manager chronyd +### END INIT INFO + +. /etc/init.d/functions + +if ! strstr "\`cat /proc/cmdline\`" rd.live.image || [ "\$1" != "start" ]; then + exit 0 +fi + +if [ -e /.liveimg-configured ] ; then + configdone=1 +fi + +exists() { + which \$1 >/dev/null 2>&1 || return + \$* +} + +livedir="LiveOS" +for arg in \`cat /proc/cmdline\` ; do + if [ "\${arg##rd.live.dir=}" != "\${arg}" ]; then + livedir=\${arg##rd.live.dir=} + continue + fi + if [ "\${arg##live_dir=}" != "\${arg}" ]; then + livedir=\${arg##live_dir=} + fi +done + +# enable swapfile if it exists +if ! strstr "\`cat /proc/cmdline\`" noswap && [ -f /run/initramfs/live/\${livedir}/swap.img ] ; then + action "Enabling swap file" swapon /run/initramfs/live/\${livedir}/swap.img +fi + +mountPersistentHome() { + # support label/uuid + if [ "\${homedev##LABEL=}" != "\${homedev}" -o "\${homedev##UUID=}" != "\${homedev}" ]; then + homedev=\`/sbin/blkid -o device -t "\$homedev"\` + fi + + # if we're given a file rather than a blockdev, loopback it + if [ "\${homedev##mtd}" != "\${homedev}" ]; then + # mtd devs don't have a block device but get magic-mounted with -t jffs2 + mountopts="-t jffs2" + elif [ ! -b "\$homedev" ]; then + loopdev=\`losetup -f\` + if [ "\${homedev##/run/initramfs/live}" != "\${homedev}" ]; then + action "Remounting live store r/w" mount -o remount,rw /run/initramfs/live + fi + losetup \$loopdev \$homedev + homedev=\$loopdev + fi + + # if it's encrypted, we need to unlock it + if [ "\$(/sbin/blkid -s TYPE -o value \$homedev 2>/dev/null)" = "crypto_LUKS" ]; then + echo + echo "Setting up encrypted /home device" + plymouth ask-for-password --command="cryptsetup luksOpen \$homedev EncHome" + homedev=/dev/mapper/EncHome + fi + + # and finally do the mount + mount \$mountopts \$homedev /home + # if we have /home under what's passed for persistent home, then + # we should make that the real /home. useful for mtd device on olpc + if [ -d /home/home ]; then mount --bind /home/home /home ; fi + [ -x /sbin/restorecon ] && /sbin/restorecon /home + if [ -d /home/liveuser ]; then USERADDARGS="-M" ; fi +} + +findPersistentHome() { + for arg in \`cat /proc/cmdline\` ; do + if [ "\${arg##persistenthome=}" != "\${arg}" ]; then + homedev=\${arg##persistenthome=} + fi + done +} + +if strstr "\`cat /proc/cmdline\`" persistenthome= ; then + findPersistentHome +elif [ -e /run/initramfs/live/\${livedir}/home.img ]; then + homedev=/run/initramfs/live/\${livedir}/home.img +fi + +# if we have a persistent /home, then we want to go ahead and mount it +if ! strstr "\`cat /proc/cmdline\`" nopersistenthome && [ -n "\$homedev" ] ; then + action "Mounting persistent /home" mountPersistentHome +fi + +if [ -n "\$configdone" ]; then + exit 0 +fi + +# add liveuser user with no passwd +action "Adding live user" useradd \$USERADDARGS -c "Live System User" liveuser +passwd -d liveuser > /dev/null +usermod -aG wheel liveuser > /dev/null + +# Remove root password lock +passwd -d root > /dev/null + +# turn off firstboot for livecd boots +systemctl --no-reload disable firstboot-text.service 2> /dev/null || : +systemctl --no-reload disable firstboot-graphical.service 2> /dev/null || : +systemctl stop firstboot-text.service 2> /dev/null || : +systemctl stop firstboot-graphical.service 2> /dev/null || : + +# don't use prelink on a running live image +sed -i 's/PRELINKING=yes/PRELINKING=no/' /etc/sysconfig/prelink &>/dev/null || : + +# turn off mdmonitor by default +systemctl --no-reload disable mdmonitor.service 2> /dev/null || : +systemctl --no-reload disable mdmonitor-takeover.service 2> /dev/null || : +systemctl stop mdmonitor.service 2> /dev/null || : +systemctl stop mdmonitor-takeover.service 2> /dev/null || : + +# don't start cron/at as they tend to spawn things which are +# disk intensive that are painful on a live image +systemctl --no-reload disable crond.service 2> /dev/null || : +systemctl --no-reload disable atd.service 2> /dev/null || : +systemctl stop crond.service 2> /dev/null || : +systemctl stop atd.service 2> /dev/null || : + +# turn off abrtd on a live image +systemctl --no-reload disable abrtd.service 2> /dev/null || : +systemctl stop abrtd.service 2> /dev/null || : + +# Don't sync the system clock when running live (RHBZ #1018162) +sed -i 's/rtcsync//' /etc/chrony.conf + +# Mark things as configured +touch /.liveimg-configured + +# add static hostname to work around xauth bug +# https://bugzilla.redhat.com/show_bug.cgi?id=679486 +# the hostname must be something else than 'localhost' +# https://bugzilla.redhat.com/show_bug.cgi?id=1370222 +# hostnamectl set-hostname "localhost-live" + +EOF + +# bah, hal starts way too late +cat > /etc/rc.d/init.d/livesys-late << EOF +#!/bin/bash +# +# live: Late init script for live image +# +# chkconfig: 345 99 01 +# description: Late init script for live image. + +. /etc/init.d/functions + +if ! strstr "\`cat /proc/cmdline\`" rd.live.image || [ "\$1" != "start" ] || [ -e /.liveimg-late-configured ] ; then + exit 0 +fi + +exists() { + which \$1 >/dev/null 2>&1 || return + \$* +} + +touch /.liveimg-late-configured + +# read some variables out of /proc/cmdline +for o in \`cat /proc/cmdline\` ; do + case \$o in + ks=*) + ks="--kickstart=\${o#ks=}" + ;; + xdriver=*) + xdriver="\${o#xdriver=}" + ;; + esac +done + +# if liveinst or textinst is given, start anaconda +#if strstr "\`cat /proc/cmdline\`" liveinst ; then +# plymouth --quit +# /usr/sbin/liveinst \$ks +#fi +#if strstr "\`cat /proc/cmdline\`" textinst ; then +# plymouth --quit +# /usr/sbin/liveinst --text \$ks +#fi + +# configure X, allowing user to override xdriver +#if [ -n "\$xdriver" ]; then +# cat > /etc/X11/xorg.conf.d/00-xdriver.conf <> /etc/fstab << EOF +vartmp /var/tmp tmpfs defaults 0 0 +EOF + +# work around for poor key import UI in PackageKit +rm -f /var/lib/rpm/__db* +echo "Packages within this LiveCD" +rpm -qa --qf '%{size}\t%{name}-%{version}-%{release}.%{arch}\n' |sort -rn +# Note that running rpm recreates the rpm db files which aren't needed or wanted +rm -f /var/lib/rpm/__db* + +# go ahead and pre-make the man -k cache (#455968) +/usr/bin/mandb + +# make sure there aren't core files lying around +rm -f /core* + +# remove random seed, the newly installed instance should make it's own +rm -f /var/lib/systemd/random-seed + +# convince readahead not to collect +# FIXME: for systemd + +echo 'File created by kickstart. See systemd-update-done.service(8).' \ + | tee /etc/.updated >/var/.updated + +# Drop the rescue kernel and initramfs, we don't need them on the live media itself. +# See bug 1317709 +rm -f /boot/*-rescue* + +# Disable network service here, as doing it in the services line +# fails due to RHBZ #1369794 +/sbin/chkconfig network off + +# Remove machine-id on pre generated images +rm -f /etc/machine-id +touch /etc/machine-id + +%end + +%post --nochroot +# For livecd-creator builds only (lorax/livemedia-creator handles this directly) +if [ -n "$LIVE_ROOT" ]; then + cp "$INSTALL_ROOT"/usr/share/licenses/*-release-common/* "$LIVE_ROOT/" + + # only installed on x86, x86_64 + if [ -f /usr/bin/livecd-iso-to-disk ]; then + mkdir -p "$LIVE_ROOT/LiveOS" + cp /usr/bin/livecd-iso-to-disk "$LIVE_ROOT/LiveOS" + fi +fi + +%end + +%post --logfile=/root/ld.log + +cat >> /etc/rc.d/init.d/livesys << EOF + +# disable gnome-software automatically downloading updates +# cat >> /usr/share/glib-2.0/schemas/org.gnome.software.gschema.override << FOE +# [org.gnome.software] +# download-updates=false +# FOE + +# don't autostart gnome-software session service +# rm -f /etc/xdg/autostart/gnome-software-service.desktop + +# disable the gnome-software shell search provider +# FOE + +# don't run gnome-initial-setup +mkdir ~liveuser/.config +touch ~liveuser/.config/gnome-initial-setup-done + +# suppress anaconda spokes redundant with gnome-initial-setup +# cat >> /etc/sysconfig/anaconda << FOE +# [NetworkSpoke] +# visited=1 + +# [PasswordSpoke] +# visited=1 + +# [UserSpoke] +# visited=1 +# FOE + +# make the installer show up +#if [ -f /usr/share/applications/liveinst.desktop ]; then + # Show harddisk install in shell dash +# sed -i -e 's/NoDisplay=true/NoDisplay=false/' /usr/share/applications/liveinst.desktop "" + # need to move it to anaconda.desktop to make shell happy +# mv /usr/share/applications/liveinst.desktop /usr/share/applications/anaconda.desktop + +# cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE +#[org.gnome.shell] +#favorite-apps=['firefox.desktop', 'org.gnome.Calendar.desktop', 'rhythmbox.desktop', 'org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop', 'anaconda.desktop'] +#FOE + + # Make the welcome screen show up +# if [ -f /usr/share/anaconda/gnome/fedora-welcome.desktop ]; then +# mkdir -p ~liveuser/.config/autostart +# cp /usr/share/anaconda/gnome/fedora-welcome.desktop /usr/share/applications/ +# cp /usr/share/anaconda/gnome/fedora-welcome.desktop ~liveuser/.config/autostart/ +# fi + + # Disable GNOME welcome tour so it doesn't overlap with Fedora welcome screen +# cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE +#welcome-dialog-last-shown-version='4294967295' +#FOE + + # Copy Anaconda branding in place +# if [ -d /usr/share/lorax/product/usr/share/anaconda ]; then +# cp -a /usr/share/lorax/product/* / +# fi +#fi + +# rebuild schema cache with any overrides we installed +glib-compile-schemas /usr/share/glib-2.0/schemas + +# set up auto-login +cat > /etc/gdm/custom.conf << FOE +[daemon] +AutomaticLoginEnable=True +AutomaticLogin=liveuser +FOE + +# Turn off PackageKit-command-not-found while uninstalled +if [ -f /etc/PackageKit/CommandNotFound.conf ]; then + sed -i -e 's/^SoftwareSourceSearch=true/SoftwareSourceSearch=false/' /etc/PackageKit/CommandNotFound.conf +fi + +# make sure to set the right permissions and selinux contexts +chown -R liveuser:liveuser /home/liveuser/ +restorecon -R /home/liveuser/ + +EOF + +%end + +%post --nochroot --logfile=/mnt/sysimage/root/bh.log + +mkdir /mnt/sysimage/var/lib/libvirt/iso # Create a directory to store iso images + +wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/iso/ + +virsh pool-define-as iso dir /mnt/sysimage/var/lib/libvirt/iso/ # Make libvirt aware of this new directory by creating a so-called 'pool' +virsh pool-build iso # Build the pool +virsh pool-start iso # Start it +virsh pool-autostart iso # Set-it to autostart + +# Add a network bridge. Still need to declare it to libvirt/virt-manager +nmcli con add ifname br0 type bridge con-name br0 +nmcli con add type bridge-slave ifname enp1s0 master br0 # to-do : generalize this command +nmcli con up br0 + +%end + +%post --nochroot --logfile=/mnt/sysimage/root/bhi.log + +sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci i915.enable_gvt=1/i' /mnt/sysimage/etc/default/grub # Load kernel modules in grub. + +# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd +echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf +echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf +echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf +echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf +echo "kvmgt" > /mnt/sysimage/etc/modules-load.d/kvmgt.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm) +echo "vfio-mdev" > /mnt/sysimage/etc/modules-load.d/vfio-mdev.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm) + +echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization + +dracut --add-drivers " vfio vfio-pci vfio_iommu_type1 vfio_virqfd vfio-mdev kvmgt " --force # Instruct dracut to load the vfio drivers +dracut --force # Regenerate initramfs +# Doesn't seem to work +# dracut: Cannot find /usr/lib/dracut/dracut-init.sh. +# dracut: Are you running from a git checkout? +# dracut: Try passing -l as an argument to /mnt/sysimage/usr/bin/dracut + +grub2-mkconfig -o /mnt/sysimage/boot/grub2/grub.cfg # Update grub. Does it fail ? /usr/sbin/grub2-probe: error: failed to get canonical path of `LiveOS_rootfs'. + +%end + +%post --nochroot --logfile=/mnt/sysimage/root/ldhi.log + +usermod -a -G libvirt liveuser # Make user "liveuser" part of the existing libvirt group to allow it to interact with the guest-hypervisor. +chown liveuser:liveuser /mnt/sysimage/var/lib/libvirt/iso # Make the user "liveuser" the owner of this directory +chown liveuser:liveuser /mnt/sysimage/var/lib/libvirt/images # Make the user "test" the owner of this directory + +# Create a file to autostart virt-manager +cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF +[Desktop Entry] +Type=Application +Name=Virtual Machine Manager +Exec=virt-manager +EOF + +%end + +%packages --exclude-weakdeps +@core +chkconfig +dejavu-sans-mono-fonts +dracut-config-generic +dracut-live +efibootmgr +elementary-wallpapers-gnome.noarch +fedora-remix-logos +generic-logos +generic-release +generic-release-common +generic-release-notes +glibc-all-langpacks +gnome-shell +gnome-terminal +grub2 +grub2-efi +grub2-efi-*-cdboot +grub2-efi-ia32 +guestfs-tools +initscripts +kernel +kernel-modules +kernel-modules-extra +libguestfs-tools +libvirt +libvirt-daemon-config-network +libvirt-daemon-kvm +nano +pciutils +python3-libguestfs +qemu-guest-agent +qemu-kvm +shim +shim-ia32 +spice-vdagent +virt-install +virt-manager +virt-top +wpa_supplicant +-fedora-logos +-fedora-release +-fedora-release-common +-fedora-release-identity-basic +-fedora-release-notes +-gnome-tour + +%end diff --git a/flat/flat-s.cfg b/flat/flat-s.cfg new file mode 100644 index 0000000..bf9dba2 --- /dev/null +++ b/flat/flat-s.cfg @@ -0,0 +1,73 @@ +# Generated by pykickstart v3.32 +#version=DEVEL +# Keyboard layouts +keyboard --xlayouts='ch (fr)' +# Root password +rootpw --iscrypted --lock locked +# System language +lang en_US.UTF-8 +# Reboot after installation +reboot --kexec +# Use text mode install +text +# Network information +network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate +# Firewall configuration +firewall --enabled --service=mdns +# Use network installation +url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch" +repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch +repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch +# System timezone +timezone Europe/Paris --utc +# Run the Setup Agent on first boot +firstboot --reconfig +# SELinux configuration +selinux --enforcing +# System services +services --disabled="sshd" --enabled="NetworkManager" +# System bootloader configuration +bootloader --location=mbr --timeout=1 +# Clear the Master Boot Record +zerombr +# Partition clearing information +clearpart --all --initlabel +# Disk partitioning information +part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi +part /boot --fstype="ext4" --size=384 --label=boot +part / --fstype="ext4" --grow --label=root + +%post --logfile=/root/b.log + +localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked. +dnf update -y # Update the system +grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub otherwise the system won't boot properly + +# In the %post section of the kickstart file, add the following as the first line. Probably useless : leaving this uncommented for the moment +# See : https://www.opensourceforu.com/2010/01/roll-out-a-fedora-remix/ +# sed -i -e 's/Generic release/LFY Fedora Remix/g' /etc/fedora-release /etc/issue + +%end + +%packages --exclude-weakdeps +@core +@hardware-support +fedora-remix-logos +generic-logos +generic-release +generic-release-common +generic-release-notes +initial-setup +nano +neofetch +pciutils +qemu-guest-agent +spice-vdagent +wget +-fedora-logos +-fedora-release +-fedora-release-common +-fedora-release-identity-basic +-fedora-release-notes + +%end diff --git a/flat/flat-sh.cfg b/flat/flat-sh.cfg new file mode 100644 index 0000000..7a4edb8 --- /dev/null +++ b/flat/flat-sh.cfg @@ -0,0 +1,100 @@ +# Generated by pykickstart v3.32 +#version=DEVEL +# Keyboard layouts +keyboard --xlayouts='ch (fr)' +# Root password +rootpw --iscrypted --lock locked +# System language +lang en_US.UTF-8 +# Reboot after installation +reboot --kexec +# Use text mode install +text +# Network information +network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate +# Firewall configuration +firewall --enabled --service=mdns +# Use network installation +url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch" +repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch +repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch +# System timezone +timezone Europe/Paris --utc +# Run the Setup Agent on first boot +firstboot --reconfig +# SELinux configuration +selinux --enforcing +# System services +services --disabled="sshd" --enabled="NetworkManager" +# System bootloader configuration +bootloader --location=mbr --timeout=1 +# Clear the Master Boot Record +zerombr +# Partition clearing information +clearpart --all --initlabel +# Disk partitioning information +part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi +part /boot --fstype="ext4" --size=384 --label=boot +part / --fstype="ext4" --grow --label=root + +%post --logfile=/root/b.log + +localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked. +dnf update -y # Update the system +grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub otherwise the system won't boot properly + +# In the %post section of the kickstart file, add the following as the first line. Probably useless : leaving this uncommented for the moment +# See : https://www.opensourceforu.com/2010/01/roll-out-a-fedora-remix/ +# sed -i -e 's/Generic release/LFY Fedora Remix/g' /etc/fedora-release /etc/issue + +%end + +%post --nochroot --logfile=/mnt/sysimage/root/bh.log + +mkdir /mnt/sysimage/var/lib/libvirt/iso # Create a directory to store iso images + +wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/iso/ + +virsh pool-define-as iso dir /mnt/sysimage/var/lib/libvirt/iso/ # Make libvirt aware of this new directory by creating a so-called 'pool' +virsh pool-build iso # Build the pool +virsh pool-start iso # Start it +virsh pool-autostart iso # Set-it to autostart + +# Add a network bridge. Still need to declare it to libvirt/virt-manager +nmcli con add ifname br0 type bridge con-name br0 +nmcli con add type bridge-slave ifname enp1s0 master br0 # to-do : generalize this command +nmcli con up br0 + +%end + +%packages --exclude-weakdeps +@core +@hardware-support +fedora-remix-logos +generic-logos +generic-release +generic-release-common +generic-release-notes +guestfs-tools +initial-setup +libguestfs-tools +libvirt +libvirt-daemon-config-network +libvirt-daemon-kvm +nano +neofetch +pciutils +python3-libguestfs +qemu-guest-agent +qemu-kvm +spice-vdagent +virt-install +virt-top +wget +-fedora-logos +-fedora-release +-fedora-release-common +-fedora-release-identity-basic +-fedora-release-notes + +%end diff --git a/flat/flat-shi.cfg b/flat/flat-shi.cfg new file mode 100644 index 0000000..99c7a21 --- /dev/null +++ b/flat/flat-shi.cfg @@ -0,0 +1,119 @@ +# Generated by pykickstart v3.32 +#version=DEVEL +# Keyboard layouts +keyboard --xlayouts='ch (fr)' +# Root password +rootpw --iscrypted --lock locked +# System language +lang en_US.UTF-8 +# Reboot after installation +reboot --kexec +# Use text mode install +text +# Network information +network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate +# Firewall configuration +firewall --enabled +# Use network installation +url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch" +repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch +repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch +# System timezone +timezone Europe/Paris --utc +# Run the Setup Agent on first boot +firstboot --reconfig +# SELinux configuration +selinux --enforcing +# System services +services --disabled="sshd" --enabled="NetworkManager" +# System bootloader configuration +bootloader --location=mbr --timeout=1 +# Clear the Master Boot Record +zerombr +# Partition clearing information +clearpart --all --initlabel +# Disk partitioning information +part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi +part /boot --fstype="ext4" --size=384 --label=boot +part / --fstype="ext4" --grow --label=root + +%post --logfile=/root/b.log + +localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked. +dnf update -y # Update the system +grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub otherwise the system won't boot properly + +# In the %post section of the kickstart file, add the following as the first line. Probably useless : leaving this uncommented for the moment +# See : https://www.opensourceforu.com/2010/01/roll-out-a-fedora-remix/ +# sed -i -e 's/Generic release/LFY Fedora Remix/g' /etc/fedora-release /etc/issue + +%end + +%post --nochroot --logfile=/mnt/sysimage/root/bh.log + +mkdir /mnt/sysimage/var/lib/libvirt/iso # Create a directory to store iso images +# virsh pool-create-as --name iso --type dir --target /mnt/sysimage/var/lib/libvirt/iso # Make libvirt aware of this new directory by creating a so-called 'pool' +# doesn't work + +# Add a network bridge. Still need to declare it to libvirt/virt-manager +nmcli con add ifname br0 type bridge con-name br0 +nmcli con add type bridge-slave ifname enp1s0 master br0 +nmcli con up br0 + +%end + +%post --nochroot --logfile=/mnt/sysimage/root/bhi.log + +sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci i915.enable_gvt=1/i' /mnt/sysimage/etc/default/grub # Load kernel modules in grub. + +# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd +echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf +echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf +echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf +echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf +echo "kvmgt" > /mnt/sysimage/etc/modules-load.d/kvmgt.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm) +echo "vfio-mdev" > /mnt/sysimage/etc/modules-load.d/vfio-mdev.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm) + +echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization + +dracut --add-drivers " vfio vfio-pci vfio_iommu_type1 vfio_virqfd vfio-mdev kvmgt " --force # Instruct dracut to load the vfio drivers +dracut --force # Regenerate initramfs +# Doesn't seem to work +# dracut: Cannot find /usr/lib/dracut/dracut-init.sh. +# dracut: Are you running from a git checkout? +# dracut: Try passing -l as an argument to /mnt/sysimage/usr/bin/dracut + +grub2-mkconfig -o /mnt/sysimage/boot/grub2/grub.cfg # Update grub. Does it fail ? /usr/sbin/grub2-probe: error: failed to get canonical path of `LiveOS_rootfs'. + +%end + +%packages --exclude-weakdeps +@core +fedora-remix-logos +generic-logos +generic-release +generic-release-common +generic-release-notes +guestfs-tools +initial-setup +libguestfs-tools +libvirt +libvirt-daemon-config-network +libvirt-daemon-kvm +nano +neofetch +pciutils +python3-libguestfs +qemu-guest-agent +qemu-kvm +spice-vdagent +virt-install +virt-top +wget +-fedora-logos +-fedora-release +-fedora-release-common +-fedora-release-identity-basic +-fedora-release-notes + +%end diff --git a/img/desktop.png b/img/desktop.png new file mode 100644 index 0000000..5a62300 Binary files /dev/null and b/img/desktop.png differ diff --git a/img/greetings.png b/img/greetings.png new file mode 100644 index 0000000..1675f11 Binary files /dev/null and b/img/greetings.png differ diff --git a/leaves/bmd.cfg b/leaves/b.cfg similarity index 60% rename from leaves/bmd.cfg rename to leaves/b.cfg index 2d1ed3c..ccb4727 100644 --- a/leaves/bmd.cfg +++ b/leaves/b.cfg @@ -6,9 +6,11 @@ # /_/ /____/ # # What ? This kickstart file provides a basic block to build a minimal operating system. -# 'b' for basic building block, 'm' for minimal, 'd' for development only. +# 'b' for basic building block -# Known bug: Cannot resolve host name +# This is NOT a standalone kickstart file + +# Known bug: Cannot resolve hostnames text # Perform installation in text mode @@ -18,50 +20,51 @@ repo --name=updates --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?re # #repo --name=updates-testing --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f$releasever&arch=$basearch url --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch # Official Fedora updates mirror -keyboard --xlayouts='ch (fr)' # set keyboard layouts for Romandie # Unnecessary if using inital-setup -lang en_US.UTF-8 # Set system language to American English # Unnecessary if using inital-setup -timezone Europe/Paris --utc # Set System timezone to Paris # Unnecessary if using inital-setup +keyboard --xlayouts='ch (fr)' # set keyboard layouts for Romandie +lang en_US.UTF-8 # Set system language to American English. More languages could be supported: --addsupport=cs_CZ,de_DE,en_UK +timezone Europe/Paris --utc # Set system timezone to Paris rootpw --lock --iscrypted locked # Lock the root account selinux --enforcing # Make sure SELinux is in enforced mode -firewall --enabled # Make sure the firewall is enabled +firewall --enabled --service=mdns # Make sure the firewall is enabled services --enabled=NetworkManager --disabled=sshd -network --onboot=yes --bootproto=dhcp --device=link --activate --hostname=phyllome # Configure network interfaces and set hostname +network --onboot=yes --bootproto=dhcp --device=link --activate --hostname=phyllome-alpha # Configure network interfaces and set hostname. "link" selects the first device reaching an up state zerombr # WARNING : Dangerous command ! Will clear the Master Boot Record clearpart --all --initlabel # Partition clearing information. This setup uses GPT by default. part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi # Will create an efi partitition of 128 MiB (vda1) part /boot --fstype="ext4" --size=384 --label=boot # Create a boot partition of 384 MiB using the ext4 filesystem (vda2). part / --fstype="ext4" --grow --label=root # The remaining space will be used for root (vda3). -bootloader --timeout=1 # Set the Grub bootloader timeout to 1 +bootloader --timeout=1 # Set the GNU GRUB bootloader timeout to 1. # poweroff # Power off the system after a sucessfull installation # reboot --kexec # Reboot straight into the system after a successfull installation -%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies. +%packages --exclude-weakdeps # Beginning of the package section. Does not include weak dependencies. @core # minimal installation -pciutils # Pciutils provides lspci commandline tool and is not installed by default -qemu-guest-agent # "QEMU guest agent" -spice-vdagent # "Agent for Spice guests" -wget # "The non-interactive network downloader. " Used to fetch file during installation -neofetch # a simple tool to show hardware related-informations within a terminal -# @fonts # Add quite a few fonts. Otherwise there is a bug with the terminal. Doesn't solve the bug. Uncomment it. --fedora-logos # Fedora logos --fedora-release # Fedora release-notes --fedora-release-notes --fedora-release-common # Fedora release files +@hardware-support # Provides extended hardware support, and especially extra wireless drivers +pciutils # Pciutils provides lspci commandline tool, which is not installed by default +wget # "The non-interactive network downloader. " Used to fetch files during installation +neofetch # a simple tool to show hardware-related informations inside a terminal +nano # The nano text editor +qemu-guest-agent # "QEMU guest agent" The qemu-guest agent is unnecessary for a bare-metal system. However, it is included here to cover cases where this kickstart file is used to deploy a virtual machine +spice-vdagent # "Agent for Spice guests" The spice agent is unnecessary for a bare-metal system. However, it is included here to cover cases where this kickstart file is used to deploy a virtual machine +-fedora-logos # Remove Fedora logos to comply with [Fedora Remix legal guidelines](https://fedoraproject.org/wiki/Remix) +-fedora-release # Remove Fedora release-notes +-fedora-release-notes # Remove Fedora release-notes +-fedora-release-common # Remove Fedora release files -fedora-release-identity-basic # ??? -fedora-remix-logos # Install Fedora remix logos -generic-release -generic-logos +fedora-remix-logos # Add Fedora Remix logos +generic-release # Add Fedora Remix logos +generic-logos # Add Fedora Remix logos generic-release-common # "Generic release files" generic-release-notes # "Release Notes" %end # End of the packages section -%post --log=/root/bmd.log # Beginning of the post-installation section. Add logging. +%post --log=/root/b.log # Beginning of the post-installation section. Add logging. localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked. dnf update -y # Update the system diff --git a/leaves/bd.cfg b/leaves/bd.cfg new file mode 100644 index 0000000..d0892a3 --- /dev/null +++ b/leaves/bd.cfg @@ -0,0 +1,29 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# What ? This kickstart file provides a basic block to build a minimal, desktop-oriented operating system using GNOME Shell. +# 'b' for basic building block, 'd' for desktop + +# This is NOT a standalone kickstart file + +xconfig --startxonboot --defaultdesktop=GNOME # Start the display session on boot. Although it says --startx, which seems to imply xorg, it is actually generic and thus works also with Wayland. + +%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies + +gnome-shell # the version 3 of the GNOME desktop environment, without any presintalled applications +gnome-terminal # install the default terminal for GNOME Shell +-gnome-tour # delete GNOME Tour so it doesn't automatically launch on boot +dejavu-sans-mono-fonts # the gnome-shell package doesn't include much fonts by default, resulting in weird spacings in GNOME Terminal. GNOME Terminal unfortunately doesn't automatically pick this font +elementary-wallpapers-gnome.noarch # Gorgeous wallpapers from the elementary OS project +wpa_supplicant # WPA Supplicant for Linux. It is not packaged by default in gnome-shell, but necessary to configure wireless networks using the Network Manager +nano # The nano text editor + +%end + +# %post --nochroot --log=/mnt/sysimage/root/bd.log # Beginning of %post section. Those commands are executed outside the chroot environment +# +# %end # End of the %post section \ No newline at end of file diff --git a/leaves/bdmd.cfg b/leaves/bdmd.cfg deleted file mode 100644 index e65e321..0000000 --- a/leaves/bdmd.cfg +++ /dev/null @@ -1,28 +0,0 @@ -# __ ____ ____ _____ -# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ -# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ -# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / -# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ -# /_/ /____/ - -# What ? This kickstart file provides a basic block to build a minimal, gnome-shell based (desktop-oriented), operating system. -# 'b' for basic building block, 'd' for desktop, 'm' for minimal, 'd' for development only. - -xconfig --startxonboot --defaultdesktop=GNOME # Start GNOME on boot. Although says --startx, it works as well with Wayland. - -%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies - -dejavu-sans-mono-fonts # the gnome-shell package doesn't include much fonts by default, resulting in weird spacings in the gnome-terminal. -elementary-wallpapers-gnome.noarch # Gorgeous wallpapers -wpa_supplicant # WPA Supplicant for Linux. Not integrated by default in gnome-shell, but necessary to configure wireless networks through the Network Manager. -gnome-shell # the GNOME-3 desktop environment, without any presintalled applications -gnome-terminal # add the default terminal for gnome-shelle --gnome-tour # We don't want GNOME-tour to open at launch so we delete it -nano # Minimal GNOME shell or desktop environment plus the nano text editor -virt-manager # install virt-manager to interact with remote or local hypervisors, without including KVM/QEMU - -%end - -# %post --nochroot --log=/mnt/sysimage/root/bdmd.log # Beginning of %post section. Those commands are executed outside the chroot environment -# -# %end # End of the %post section \ No newline at end of file diff --git a/leaves/bh.cfg b/leaves/bh.cfg new file mode 100644 index 0000000..057090b --- /dev/null +++ b/leaves/bh.cfg @@ -0,0 +1,43 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# What ? This kickstart file provides a basic, generic building block to build a virtualization host. +# 'b' for basic building block, 'h' for hypervisor' + +# This is NOT a standalone kickstart file + +%packages --exclude-weakdeps # Beginning of the packages section. Does not include weak dependencies. + +qemu-kvm +libvirt +libvirt-daemon-config-network +libvirt-daemon-kvm +virt-install +virt-top +libguestfs-tools +python3-libguestfs +guestfs-tools # Complementary tools useful for interacting with vith guest systems + +%end # End of the packages section + +%post --nochroot --log=/mnt/sysimage/root/bh.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting + +mkdir /mnt/sysimage/var/lib/libvirt/iso # Create a directory to store iso images + +wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/iso/ + +virsh pool-define-as iso dir /mnt/sysimage/var/lib/libvirt/iso/ # Make libvirt aware of this new directory by creating a so-called 'pool' +virsh pool-build iso # Build the pool +virsh pool-start iso # Start it +virsh pool-autostart iso # Set-it to autostart + +# Add a network bridge. Still need to declare it to libvirt/virt-manager +nmcli con add ifname br0 type bridge con-name br0 +nmcli con add type bridge-slave ifname enp1s0 master br0 # to-do : generalize this command +nmcli con up br0 + +%end # End of the %post section \ No newline at end of file diff --git a/leaves/bhamd.cfg b/leaves/bha.cfg similarity index 78% rename from leaves/bhamd.cfg rename to leaves/bha.cfg index 11a1fd4..04219d0 100644 --- a/leaves/bhamd.cfg +++ b/leaves/bha.cfg @@ -6,11 +6,13 @@ # /_/ /____/ # What ? This kickstart file configures an hypervisor for AMD (tm) CPUs -# 'b' for basic building block, 'a' for amd, 'm' for minimal, 'd' for development only. +# 'b' for basic building block, 'h' for hypervisor', 'a' for amd -%post --nochroot --log=/mnt/sysimage/root/bhamd.log # Beginning of %post section. Those commands are executed outside the chroot environment +# This is NOT a standalone kickstart file -sed -i 's/\(quiet\)/\1 amd_iommu=on amd_iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in grub. +%post --nochroot --log=/mnt/sysimage/root/bha.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting + +sed -i 's/\(quiet\)/\1 amd_iommu=on amd_iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB. # Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf diff --git a/leaves/bhimd.cfg b/leaves/bhi.cfg similarity index 87% rename from leaves/bhimd.cfg rename to leaves/bhi.cfg index 0082137..0b86b91 100644 --- a/leaves/bhimd.cfg +++ b/leaves/bhi.cfg @@ -6,9 +6,11 @@ # /_/ /____/ # What ? This kickstart file configures an hypervisor for Intel(tm) CPUs and Intel(tm) graphic cards -# 'b' for basic building block, 'h' for hypervisor', 'i' for intel, 'm' for minimal, 'd' for development only. +# 'b' for basic building block, 'h' for hypervisor', 'i' for intel -%post --nochroot --log=/mnt/sysimage/root/bhimd.log # Beginning of %post section. Those commands are executed outside the chroot environment +# This is NOT a standalone kickstart file + +%post --nochroot --log=/mnt/sysimage/root/bhi.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installtion troubleshooting sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci i915.enable_gvt=1/i' /mnt/sysimage/etc/default/grub # Load kernel modules in grub. diff --git a/leaves/bhmd.cfg b/leaves/bhmd.cfg deleted file mode 100644 index 09c6565..0000000 --- a/leaves/bhmd.cfg +++ /dev/null @@ -1,36 +0,0 @@ -# __ ____ ____ _____ -# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ -# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ -# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / -# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ -# /_/ /____/ - -# What ? This kickstart file provides a basic block to build a hypervisor. -# 'b' for basic building block, 'h' for hypervisor', 'm' for minimal, 'd' for development only. - -%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies. - -qemu-kvm -libvirt -libvirt-daemon-config-network -libvirt-daemon-kvm # Install minimal tools dedicated to virtualization. -virt-install -virt-top -libguestfs-tools -python3-libguestfs -guestfs-tools # Complementary tools useful for interacting with vith guest systems - -%end # End of the packages section - -%post --nochroot --log=/mnt/sysimage/root/bhmd.log # Beginning of %post section. Those commands are executed outside the chroot environment - -mkdir /mnt/sysimage/var/lib/libvirt/iso # Create a directory to store iso images -# virsh pool-create-as --name iso --type dir --target /mnt/sysimage/var/lib/libvirt/iso # Make libvirt aware of this new directory by creating a so-called 'pool' -# doesn't work - -# Add a network bridge. Still need to declare it to virt-manager -nmcli con add ifname br0 type bridge con-name br0 -nmcli con add type bridge-slave ifname enp1s0 master br0 -nmcli con up br0 - -%end # End of the %post section \ No newline at end of file diff --git a/leaves/blmd.cfg b/leaves/bl.cfg similarity index 97% rename from leaves/blmd.cfg rename to leaves/bl.cfg index b0736b8..80bdbc6 100644 --- a/leaves/blmd.cfg +++ b/leaves/bl.cfg @@ -5,8 +5,10 @@ # / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ # /_/ /____/ -# What ? This kickstart file provides a basic block to build a minimal, live, gnome-shell based (desktop-oriented), operating system. -# 'b' for basic building block, 'l' for live, 'm' for minimal, 'd' for development only. +# What ? This kickstart file provides a basic block to build a minimal, live system +# 'b' for basic building block, 'l' for live + +# This is NOT a standalone kickstart file # This kickstart file in particular would not have been possible without the hard work of the following people, # which are the current and former maintainers of the official fedora kickstart files : @@ -37,7 +39,7 @@ clearpart --all part / --size 5120 --fstype ext4 bootloader --timeout=1 -services --enabled=NetworkManager --disabled=sshd +services --enabled=NetworkManager --disabled=sshd network --bootproto=dhcp --device=link --activate --hostname=phyllome rootpw --lock --iscrypted locked @@ -111,7 +113,7 @@ generic-release-notes # "Release Notes" %end # End of the packages section -%post --log=/root/blmd.log # Beginning of the post-installation section. Add logging. +%post --log=/root/bl.log # Beginning of the post-installation section. Add logging. # FIXME: it'd be better to get this installed from a package cat > /etc/rc.d/init.d/livesys << EOF #!/bin/bash diff --git a/leaves/bnd.cfg b/leaves/bnd.cfg index 27b0b5d..06f7d3e 100644 --- a/leaves/bnd.cfg +++ b/leaves/bnd.cfg @@ -5,10 +5,11 @@ # / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ # /_/ /____/ -# What ? This kickstart file provides a basic block beyond the minimal operating system. -# It tries to go beyond what the minimal machine offers. +# What ? This kickstart file itents to provide a basic block small than the minimal operating system. # 'b' for basic building block, 'n' for nano, 'd' for development only. +# This is NOT a standalone kickstart file. + # known issue : name resolution doesn't work as of now # ATTENTION : this kickstart file will automatically DESTROY the main disk and all of its contents. diff --git a/leaves/dmd.cfg b/leaves/d.cfg similarity index 68% rename from leaves/dmd.cfg rename to leaves/d.cfg index e1c3aef..bd8199b 100644 --- a/leaves/dmd.cfg +++ b/leaves/d.cfg @@ -6,39 +6,31 @@ # /_/ /____/ # What ? This kickstart file bootstraps a desktop machine. -# 'd' for desktop, 'm' for minimal, 'd' for development only. +# 'd' for desktop # ATTENTION : this kickstart file will automatically DESTROY the main disk and all of its contents. # Bye bye! # In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one. # Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora : -# ksflatten -c dmd.cfg -o flat-dmd.cfg +# ksflatten -c d.cfg -o ../flat/flat-d.cfg -%include bmd.cfg # A base system -%include bdmd.cfg # A desktop environment +%include b.cfg # A base system +%include bd.cfg # A desktop environment reboot --kexec # Reboot straight into the system after a successfull installation %packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies. -gnome-initial-setup # Add GNOME initial setup too. Does work. +gnome-initial-setup # Add GNOME initial setup too. %end # End of the %post section -%post --nochroot --log=/mnt/sysimage/root/dmd.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging. +%post --nochroot --log=/mnt/sysimage/root/d.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging. truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available # set new default background (doesn't work. Would have to call a script on first boot or something) # gsettings set org.gnome.desktop.background picture-uri file://mnt/sysimage/usr/share/backgrounds/elementary/default -# Autostart virt-manager -cat << EOF > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop -[Desktop Entry] -Type=Application -Name=Virtual Machine Manager -Exec=virt-manager -EOF - %end # End of the %post section \ No newline at end of file diff --git a/leaves/dhmd.cfg b/leaves/dh.cfg similarity index 70% rename from leaves/dhmd.cfg rename to leaves/dh.cfg index 40976ce..d60574a 100644 --- a/leaves/dhmd.cfg +++ b/leaves/dh.cfg @@ -6,18 +6,18 @@ # /_/ /____/ # What ? This kickstart file bootstraps a desktop hypervisor. -# 'd' for desktop, 'h' for hypervisor, 'm' for minimal, 'd' for development only. +# 'd' for desktop, 'h' for hypervisor # ATTENTION : this kickstart file will automatically DESTROY the main disk and all of its contents. # Bye bye! # In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one. # Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora : -# ksflatten -c dhmd.cfg -o flat-dhmd.cfg +# ksflatten -c dh.cfg -o ../flat/flat-dh.cfg -%include bmd.cfg # A minimal machine -%include bdmd.cfg # A desktop environment -%include bhmd.cfg # A base hypervisor +%include b.cfg # A minimal machine +%include bd.cfg # A desktop environment +%include bh.cfg # A base hypervisor reboot --kexec # Reboot straight into the system after a successfull installation @@ -28,7 +28,9 @@ gnome-initial-setup # Add GNOME initial setup too to let user create local accou %end # End of the packages section -%post --nochroot --log=/mnt/sysimage/root/dhmd.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging. +%post --nochroot --log=/mnt/sysimage/root/dh.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging. + +truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available # Create a file to autostart virt-manager cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF @@ -38,7 +40,4 @@ Name=Virtual Machine Manager Exec=virt-manager EOF -# Download netboot.xyz # cannot resolve hostname -# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /var/lib/libvirt/iso/ - %end # End of the %post section \ No newline at end of file diff --git a/leaves/dhamd.cfg b/leaves/dha.cfg similarity index 67% rename from leaves/dhamd.cfg rename to leaves/dha.cfg index 5897b09..9a9eac0 100644 --- a/leaves/dhamd.cfg +++ b/leaves/dha.cfg @@ -6,19 +6,19 @@ # /_/ /____/ # What ? This kickstart file bootstraps a desktop hypervisor configured for AMD (tm) CPUs. -# 'd' for desktop, 'h' for hypervisor', 'a' for amd, 'm' for minimal, 'd' for development only. +# 'd' for desktop, 'h' for hypervisor', 'a' for amd # ATTENTION : this kickstart file will automatically DESTROY the main disk and all of its contents. # Bye bye! # In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one. # Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora : -# ksflatten -c dhamd.cfg -o flat-dhamd.cfg +# ksflatten -c dha.cfg -o ../flat/flat-dha.cfg -%include bmd.cfg # A minimal machine -%include bdmd.cfg # A desktop environment -%include bhmd.cfg # A base hypervisor -%include bhamd.cfg # Specific virtualization configuration for AMD (tm) CPUs +%include b.cfg # A minimal machine +%include bd.cfg # A desktop environment +%include bh.cfg # A base hypervisor +%include bha.cfg # Specific virtualization configuration for AMD (tm) CPUs reboot --kexec # Reboot straight into the system after a successfull installation @@ -29,7 +29,9 @@ gnome-initial-setup # Add GNOME initial setup too to let user create local accou %end # End of the packages section -%post --nochroot --log=/mnt/sysimage/root/dhimd.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging. +%post --nochroot --log=/mnt/sysimage/root/dha.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging. + +truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available # Create a file to autostart virt-manager cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF @@ -39,7 +41,4 @@ Name=Virtual Machine Manager Exec=virt-manager EOF -# Download netboot.xyz # cannot resolve hostname -# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /var/lib/libvirt/iso/ - %end # End of the %post section \ No newline at end of file diff --git a/leaves/dhimd.cfg b/leaves/dhi.cfg similarity index 67% rename from leaves/dhimd.cfg rename to leaves/dhi.cfg index d7b5f4c..7c16337 100644 --- a/leaves/dhimd.cfg +++ b/leaves/dhi.cfg @@ -6,19 +6,19 @@ # /_/ /____/ # What ? This kickstart file bootstraps a desktop hypervisor configured for Intel(tm) CPU and Intel(tm) graphic cards. -# 'd' for desktop, 'h' for hypervisor', 'i' for intel, 'm' for minimal, 'd' for development only. +# 'd' for desktop, 'h' for hypervisor', 'i' for intel # ATTENTION : this kickstart file will automatically DESTROY the main disk and all of its contents. # Bye bye! # In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one. # Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora : -# ksflatten -c dhimd.cfg -o flat-dhimd.cfg +# ksflatten -c dhi.cfg -o ../flat/flat-dhi.cfg -%include bmd.cfg # A minimal machine -%include bdmd.cfg # A desktop environment -%include bhmd.cfg # A base hypervisor -%include bhimd.cfg # Specific virtualization configuration for Intel(tm) CPU and Intel(tm) graphic cards +%include b.cfg # A minimal machine +%include bd.cfg # A desktop environment +%include bh.cfg # A base hypervisor +%include bhi.cfg # Specific virtualization configuration for Intel(tm) CPU and Intel(tm) graphic cards reboot --kexec # Reboot straight into the system after a successfull installation @@ -29,7 +29,9 @@ gnome-initial-setup # Add GNOME initial setup too to let user create local accou %end # End of the packages section -%post --nochroot --log=/mnt/sysimage/root/dhimd.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging. +%post --nochroot --log=/mnt/sysimage/root/dhi.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging. + +truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available # Create a file to autostart virt-manager cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF @@ -39,7 +41,4 @@ Name=Virtual Machine Manager Exec=virt-manager EOF -# Download netboot.xyz # cannot resolve hostname -# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /var/lib/libvirt/iso/ - %end # End of the %post section \ No newline at end of file diff --git a/leaves/lmd.cfg b/leaves/l.cfg similarity index 91% rename from leaves/lmd.cfg rename to leaves/l.cfg index 528ff3e..346db62 100644 --- a/leaves/lmd.cfg +++ b/leaves/l.cfg @@ -6,7 +6,7 @@ # /_/ /____/ # # What ? This kickstart file bootstraps a live machine. -# 'l' for live, 'm' for minimal, 'd' for development only. +# 'l' for live # Know bug: Cannot resolve host name @@ -15,15 +15,15 @@ # In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one. # Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora : -# ksflatten -c lmd.cfg -o flat-lmd.cfg +# ksflatten -c l.cfg -o ../flat/flat-l.cfg -%include blmd.cfg # A base for a minimal live machine +%include bl.cfg # A base for a minimal live machine %packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies. %end # End of the packages section -%post --log=/root/lmd.log # Beginning of %post section. The following commands are executed inside a chroot environment. Add logging. +%post --log=/root/l.log # Beginning of %post section. The following commands are executed inside a chroot environment. Add logging. cat >> /etc/rc.d/init.d/livesys << EOF diff --git a/leaves/ldmd.cfg b/leaves/ld.cfg similarity index 76% rename from leaves/ldmd.cfg rename to leaves/ld.cfg index a03cd5b..db0bb23 100644 --- a/leaves/ldmd.cfg +++ b/leaves/ld.cfg @@ -6,35 +6,26 @@ # /_/ /____/ # What ? This kickstart file bootstraps a live desktop machine. -# 'l' for live, 'd' for desktop, 'm' for minimal, 'd' for development only. +# 'l' for live, 'd' for desktop # ATTENTION : this kickstart file will automatically DESTROY the main disk and all of its contents. # Bye bye -# This kickstart file in particular would not have been possible without the hard work of the following people, -# which are the current and former maintainers of the official fedora kickstart files : -# Adam Miller, Bastien Nocera, Bruno Wolff III, Bryan Kearney, Chitlesh Goorah, Christoph Wickert, -# Colin Walters, Fabian Affolter, Igor Pires Soares, Jens Petersen, Jeremy Katz, Jeroen van Meeuwen -# Jesse Keating, Luya Tshimbalanga, Matthias Clasen, Pedro Silva, Rahul Sundaram, Sebastian Dziallas -# Sebastian Vahl, wart. More information here : https://pagure.io/fedora-kickstarts -# -# Thank you! - # In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one. # Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora : -# ksflatten -c ldmd.cfg -o flat-ldmd.cfg +# ksflatten -c ld.cfg -o ../flat/flat-ld.cfg # An ISO file can be created using the following command as *root*: -# livecd-creator -c flat-ldmd.cfg --fslabel=ldmd +# livecd-creator -c flat-ld.cfg --fslabel=ld # livecd-creator is part of the livecd-tools package # The resulting ISO can be tested with qemu-kvm, using the following command as *root*: -# qemu-kvm -m 2048 -vga virtio -display gtk,gl=on ldmd.iso +# qemu-kvm -bios /usr/share/edk2/ovmf/OVMF_CODE.fd -m 2048 -vga virtio -display gtk,gl=on ld.iso -%include blmd.cfg # A base for a minimal live machine -%include bdmd.cfg # A base for a desktop environment +%include bl.cfg # A base for a minimal live machine +%include bd.cfg # A base for a desktop environment -%post --log=/root/ldmd.log # Beginning of %post section. The following commands are executed inside a chroot environment. Add logging +%post --log=/root/ld.log # Beginning of %post section. The following commands are executed inside a chroot environment. Add logging cat >> /etc/rc.d/init.d/livesys << EOF diff --git a/leaves/ldhmd.cfg b/leaves/ldh.cfg similarity index 76% rename from leaves/ldhmd.cfg rename to leaves/ldh.cfg index 5c5c960..27bb45b 100644 --- a/leaves/ldhmd.cfg +++ b/leaves/ldh.cfg @@ -6,24 +6,24 @@ # /_/ /____/ # What ? This kickstart file bootstraps a live desktop hypervisor machine. -# 'l' for live, 'h' for hypervisor, 'd' for desktop, 'm' for minimal, 'd' for development only. +# 'l' for live, 'h' for hypervisor, 'd' for desktop # ATTENTION : this kickstart file will automatically DESTROY the main disk and all of its contents. # Bye bye # In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one. # Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora : -# ksflatten -c ldhmd.cfg -o flat-ldhmd.cfg +# ksflatten -c ldh.cfg -o ../flat/flat-ldh.cfg # An ISO file can be created using the following command as *root*: -# livecd-creator -c flat-ldhmd.cfg --fslabel=ldhmd +# livecd-creator -c ../flat/flat-ldh.cfg --fslabel=ldh # livecd-creator is part of the livecd-tools package # The resulting ISO can be tested with qemu-kvm, using the following command as *root*: -# qemu-kvm -m 2048 -vga virtio -display gtk,gl=on ldhmd.iso +# qemu-kvm -bios /usr/share/edk2/ovmf/OVMF_CODE.fd -m 2048 -vga virtio -display gtk,gl=on ldh.iso -%include ldmd.cfg # A base for a live desktop minimal machine -%include bhmd.cfg # A base hypervisor +%include ld.cfg # A base for a live desktop minimal machine +%include bh.cfg # A base hypervisor %packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies. @@ -31,7 +31,7 @@ virt-manager # Install virt-manager, the graphical front-end for QEMU/KVM %end # End of the packages section -%post --nochroot --log=/mnt/sysimage/root/ldhmd.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging. +%post --nochroot --log=/mnt/sysimage/root/ldh.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging. usermod -a -G libvirt liveuser # Make user "liveuser" part of the existing libvirt group to allow it to interact with the guest-hypervisor. chown liveuser:liveuser /mnt/sysimage/var/lib/libvirt/iso # Make the user "liveuser" the owner of this directory diff --git a/leaves/ldhamd.cfg b/leaves/ldha.cfg similarity index 77% rename from leaves/ldhamd.cfg rename to leaves/ldha.cfg index 86eaa3a..0302735 100644 --- a/leaves/ldhamd.cfg +++ b/leaves/ldha.cfg @@ -6,25 +6,25 @@ # /_/ /____/ # What ? This kickstart file bootstraps a live desktop hypervisor configured for AMD (tm) CPUs. -# 'l' for live, 'd' for desktop, 'h' for hypervisor', 'a' for amd, 'm' for minimal, 'd' for development only. +# 'l' for live, 'd' for desktop, 'h' for hypervisor', 'a' for amd # ATTENTION : this kickstart file will automatically DESTROY the main disk and all of its contents. # Bye bye! # In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one. # Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora : -# ksflatten -c ldhamd.cfg -o flat-ldhamd.cfg +# ksflatten -c ldha.cfg -o ../flat/flat-ldha.cfg # An ISO file can be created using the following command as *root*: -# livecd-creator -c flat-ldhamd.cfg --fslabel=ldhamd +# livecd-creator -c ../flat/flat-ldha.cfg --fslabel=ldha # livecd-creator is part of the livecd-tools package # The resulting ISO can be tested with qemu-kvm, using the following command as *root*: -# qemu-kvm -m 2048 -vga virtio -display gtk,gl=on ldhamd.iso +# qemu-kvm -bios /usr/share/edk2/ovmf/OVMF_CODE.fd -m 2048 -vga virtio -display gtk,gl=on ldha.iso -%include ldmd.cfg # A base for a live desktop minimal machine -%include bhmd.cfg # A base hypervisor -%include bhamd.cfg # Specific virtualization configuration for AMD (tm) CPUs +%include ld.cfg # A base for a live desktop minimal machine +%include bh.cfg # A base hypervisor +%include bha.cfg # Specific virtualization configuration for AMD (tm) CPUs %packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies. @@ -32,7 +32,7 @@ virt-manager # Install virt-manager, the graphical front-end for QEMU/KVM %end # End of the packages section -%post --nochroot --log=/mnt/sysimage/root/ldhamd.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging. +%post --nochroot --log=/mnt/sysimage/root/ldha.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging. usermod -a -G libvirt liveuser # Make user "liveuser" part of the existing libvirt group to allow it to interact with the guest-hypervisor. chown liveuser:liveuser /mnt/sysimage/var/lib/libvirt/iso # Make the user "liveuser" the owner of this directory diff --git a/leaves/ldhimd.cfg b/leaves/ldhi.cfg similarity index 73% rename from leaves/ldhimd.cfg rename to leaves/ldhi.cfg index e2e7c8d..ae8dc02 100644 --- a/leaves/ldhimd.cfg +++ b/leaves/ldhi.cfg @@ -6,25 +6,25 @@ # /_/ /____/ # What ? This kickstart file bootstraps a live desktop hypervisor configured for Intel(tm) CPU and Intel(tm) graphic cards. -# 'l' for live, 'd' for desktop, 'h' for hypervisor, 'i' for intel, 'm' for minimal, 'd' for development only. +# 'l' for live, 'd' for desktop, 'h' for hypervisor, 'i' for intel # ATTENTION : this kickstart file will automatically DESTROY the main disk and all of its contents. # Bye bye! # In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one. # Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora : -# ksflatten -c ldhimd.cfg -o flat-ldhimd.cfg +# ksflatten -c ldhi.cfg -o ../flat/flat-ldhi.cfg # An ISO file can be created using the following command as *root*: -# livecd-creator -c flat-ldhimd.cfg --fslabel=ldhimd -# livecd-creator is part of the livecd-tools package +# livecd-creator -c ../flat/flat-ldhi.cfg --fslabel=ldhi +# on Fedora, livecd-creator is part of the livecd-tools package # The resulting ISO can be tested with qemu-kvm, using the following command as *root*: -# qemu-kvm -m 2048 -vga virtio -display gtk,gl=on ldhimd.iso +# qemu-kvm -bios /usr/share/edk2/ovmf/OVMF_CODE.fd -m 2048 -vga virtio -display gtk,gl=on ldhi.iso -%include ldmd.cfg # A base for a live desktop minimal machine -%include bhmd.cfg # A base hypervisor -%include bhimd.cfg # Specific virtualization configuration for Intel(tm) CPU and Intel(tm) graphic cards +%include ld.cfg # A base for a live desktop minimal machine +%include bh.cfg # A base hypervisor +%include bhi.cfg # Specific virtualization configuration for Intel(tm) CPU and Intel(tm) graphic cards %packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies. @@ -32,7 +32,7 @@ virt-manager # Install virt-manager, the graphical front-end for QEMU/KVM %end # End of the packages section -%post --nochroot --log=/mnt/sysimage/root/ldhimd.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging. +%post --nochroot --log=/mnt/sysimage/root/ldhi.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging. usermod -a -G libvirt liveuser # Make user "liveuser" part of the existing libvirt group to allow it to interact with the guest-hypervisor. chown liveuser:liveuser /mnt/sysimage/var/lib/libvirt/iso # Make the user "liveuser" the owner of this directory diff --git a/leaves/ls.cfg b/leaves/ls.cfg new file mode 100644 index 0000000..061a9c7 --- /dev/null +++ b/leaves/ls.cfg @@ -0,0 +1,9 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# What ? When flattened, this file will result in a stand-alone kickstart file that can be automatically deploy into a server-oriented live system. +# 'l' for live, 's' for server \ No newline at end of file diff --git a/leaves/lsh.cfg b/leaves/lsh.cfg new file mode 100644 index 0000000..83adb82 --- /dev/null +++ b/leaves/lsh.cfg @@ -0,0 +1,9 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# What ? When flattened, this file will result in a stand-alone kickstart file that can be automatically deploy into a server-oriented live system with a hypervisor +# 'l' for live, 's' for server, 'h' for hypervisor' \ No newline at end of file diff --git a/leaves/lsha.cfg b/leaves/lsha.cfg new file mode 100644 index 0000000..ca5cc28 --- /dev/null +++ b/leaves/lsha.cfg @@ -0,0 +1,9 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# What ? When flattened, this file will result in a stand-alone kickstart file that can be automatically deploy into a server-oriented live system with a hypervisor optimized for AMD (tm) CPUs +# 'l' for live, 's' for server, 'h' for hypervisor', 'a' for amd \ No newline at end of file diff --git a/leaves/lshi.cfg b/leaves/lshi.cfg new file mode 100644 index 0000000..dacc3f7 --- /dev/null +++ b/leaves/lshi.cfg @@ -0,0 +1,9 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# What ? When flattened, this file will result in a stand-alone kickstart file that can be automatically deploy into a server-oriented live system with a hypervisor optimized for Intel (tm) CPUs +# 'l' for live, 's' for server, 'h' for hypervisor', 'i' for intel \ No newline at end of file diff --git a/leaves/md.cfg b/leaves/s.cfg similarity index 73% rename from leaves/md.cfg rename to leaves/s.cfg index 6ad3d72..83d54fe 100644 --- a/leaves/md.cfg +++ b/leaves/s.cfg @@ -5,19 +5,16 @@ # / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ # /_/ /____/ # -# What ? This kickstart file automatically deploys a minimal system. -# 'm' for minimal, 'd' for development only. +# What ? When flattened, this file will result in a stand-alone kickstart file that can be automatically deploy into a server-oriented system. +# 's' for server # Know bug: Cannot resolve host name -# ATTENTION : this kickstart file will automatically DESTROY the main disk and all of its contents. -# Bye bye! - # In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one. # Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora : -# ksflatten -c bmd.cfg -o flat-bmd.cfg +# ksflatten -c s.cfg -o ../flat/flat-s.cfg -%include bmd.cfg # A base system +%include b.cfg # A base system firstboot --enable --reconfig # Initial Setup will start after the first reboot reboot --kexec # Reboot straight into the system after a successfull installation @@ -26,4 +23,6 @@ reboot --kexec # Reboot straight into the system after a successfull installatio initial-setup # Install the initial setup package. +# Download netboot.xyz # cannot resolve hostname + %end # End of the packages section \ No newline at end of file diff --git a/leaves/sh.cfg b/leaves/sh.cfg new file mode 100644 index 0000000..1ec5ef8 --- /dev/null +++ b/leaves/sh.cfg @@ -0,0 +1,27 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ +# +# What ? When flattened, this file will result in a stand-alone kickstart file that can be automatically deploy into a server-oriented system with a hypervisor. +# 's' for server, 'h' for hypervisor + +# Know bug: Cannot resolve host name + +# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one. +# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora : +# ksflatten -c sh.cfg -o ../flat/flat-sh.cfg + +%include b.cfg # A base system +%include bh.cfg # A base hypervisor + +firstboot --enable --reconfig # Initial Setup will start after the first reboot +reboot --kexec # Reboot straight into the system after a successfull installation + +%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies. + +initial-setup # Install the initial setup package. + +%end # End of the packages section \ No newline at end of file diff --git a/leaves/sha.cfg b/leaves/sha.cfg new file mode 100644 index 0000000..7f41237 --- /dev/null +++ b/leaves/sha.cfg @@ -0,0 +1,28 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ +# +# What ? When flattened, this file will result in a stand-alone kickstart file that can be automatically deploy into a server-oriented system with a hypervisor optimized for AMD (tm) CPUs +# 's' for server, 'h' for hypervisor', 'a' for amd + +# Know bug: Cannot resolve host name + +# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one. +# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora : +# ksflatten -c sha.cfg -o ../flat/flat-sha.cfg + +%include b.cfg # Include a base system +%include bh.cfg # A base hypervisor +%include bha.cfg # Specific virtualization tweaks for AMD (tm) CPUs + +firstboot --enable --reconfig # Initial Setup will start after the first reboot +reboot --kexec # Reboot straight into the system after a successfull installation + +%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies. + +initial-setup # Install the initial setup package. + +%end # End of the packages section \ No newline at end of file diff --git a/leaves/shi.cfg b/leaves/shi.cfg new file mode 100644 index 0000000..c8f9a99 --- /dev/null +++ b/leaves/shi.cfg @@ -0,0 +1,28 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ +# +# What ? When flattened, this file will result in a stand-alone kickstart file that can be automatically deploy into a server-oriented system with a hypervisor optimized for Intel (tm) CPUs +# 's' for server, 'h' for hypervisor', 'i' for intel + +# Know bug: Cannot resolve host name + +# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one. +# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora : +# ksflatten -c shi.cfg -o ../flat/flat-shi.cfg + +%include b.cfg # Include a base system +%include bh.cfg # A base hypervisor +%include bhi.cfg # Specific virtualization tweaks for Intel(tm) CPU and Intel(tm) graphic cards + +firstboot --enable --reconfig # Initial Setup will start after the first reboot +reboot --kexec # Reboot straight into the system after a successfull installation + +%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies. + +initial-setup # Install the initial setup package. + +%end # End of the packages section \ No newline at end of file