mirror of
https://github.com/PhyllomeOS/phyllomeos.git
synced 2024-12-21 20:55:18 +00:00
Improve the readme
Move the iso sub-directory to archive
This commit is contained in:
parent
62ec750a6f
commit
b888f00454
135
README.md
135
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
|
||||
|
||||
### 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
87
flat/flat-d.cfg
Normal 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
96
flat/flat-dh.cfg
Normal 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
146
flat/flat-dhi.cfg
Normal 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
503
flat/flat-ldhi.cfg
Normal 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
73
flat/flat-s.cfg
Normal 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
100
flat/flat-sh.cfg
Normal 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
119
flat/flat-shi.cfg
Normal 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
BIN
img/desktop.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
BIN
img/greetings.png
Normal file
BIN
img/greetings.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 66 KiB |
@ -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
29
leaves/bd.cfg
Normal 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
|
@ -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
43
leaves/bh.cfg
Normal 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
|
@ -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
|
@ -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.
|
||||
|
@ -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
|
@ -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 :
|
||||
@ -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
|
@ -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.
|
||||
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
@ -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
|
@ -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
9
leaves/ls.cfg
Normal 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
9
leaves/lsh.cfg
Normal 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
9
leaves/lsha.cfg
Normal 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
9
leaves/lshi.cfg
Normal 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
|
@ -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
27
leaves/sh.cfg
Normal 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
28
leaves/sha.cfg
Normal 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
28
leaves/shi.cfg
Normal 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
|
Loading…
Reference in New Issue
Block a user