Improve the readme

Move the iso sub-directory to archive
This commit is contained in:
lukas 2021-11-04 13:09:12 +01:00
parent 62ec750a6f
commit b888f00454
39 changed files with 1542 additions and 221 deletions

139
README.md
View File

@ -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

87
flat/flat-d.cfg Normal file
View File

@ -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

96
flat/flat-dh.cfg Normal file
View File

@ -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

146
flat/flat-dhi.cfg Normal file
View File

@ -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

503
flat/flat-ldhi.cfg Normal file
View File

@ -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 <<FOE
#Section "Device"
# Identifier "Videocard0"
# Driver "\$xdriver"
#EndSection
#FOE
#fi
EOF
chmod 755 /etc/rc.d/init.d/livesys
/sbin/restorecon /etc/rc.d/init.d/livesys
/sbin/chkconfig --add livesys
chmod 755 /etc/rc.d/init.d/livesys-late
/sbin/restorecon /etc/rc.d/init.d/livesys-late
/sbin/chkconfig --add livesys-late
# enable tmpfs for /tmp
systemctl enable tmp.mount
# make it so that we don't do writing to the overlay for things which
# are just tmpdirs/caches
# note https://bugzilla.redhat.com/show_bug.cgi?id=1135475
cat >> /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

73
flat/flat-s.cfg Normal file
View File

@ -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

100
flat/flat-sh.cfg Normal file
View File

@ -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

119
flat/flat-shi.cfg Normal file
View File

@ -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

BIN
img/desktop.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
img/greetings.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

View File

@ -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

29
leaves/bd.cfg Normal file
View File

@ -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

View File

@ -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

43
leaves/bh.cfg Normal file
View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

9
leaves/ls.cfg Normal file
View File

@ -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

9
leaves/lsh.cfg Normal file
View File

@ -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'

9
leaves/lsha.cfg Normal file
View File

@ -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

9
leaves/lshi.cfg Normal file
View File

@ -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

View File

@ -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

27
leaves/sh.cfg Normal file
View File

@ -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

28
leaves/sha.cfg Normal file
View File

@ -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

28
leaves/shi.cfg Normal file
View File

@ -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