Compare commits

..

165 Commits

Author SHA1 Message Date
luz
bd88c7ab0d Rewamped README 2025-04-22 16:03:14 -05:00
luz
8cfdc7547d Trim of the README.md. 2025-04-19 12:04:03 -05:00
luz
cf7f2c05e9 bump pykickstart version 2025-04-15 18:02:16 +02:00
Lukas Greve
b56f49f5d6 new versions of dishes
should fix name resolution issues, among other things
2025-01-09 15:52:57 +01:00
Lukas Greve
56c6b95a9a increase size of boot partition to 512MB 2025-01-09 15:52:13 +01:00
Lukas Greve
dcd8496069 remove neofetch, fix name resolution
explictly enabling systemd-resolved, to solve name resolution failure on new installations
remove neofetch and change some comments
2025-01-09 15:51:53 +01:00
lukas
3d5e2ab82d various spell checking fixes 2024-01-01 18:36:47 +01:00
lukas
d5ef3f1524 Fixe to solve the name resolution issue 2024-01-01 18:36:23 +01:00
lukas
99aec6f314 add rpm fusion free and non-free 2023-12-31 18:33:05 +01:00
lukas
5096522edb reverse some changes 2023-05-29 21:34:35 +02:00
lukas
edb503aef0 add instruction
add instruction to flatten all the files
2023-05-29 21:02:43 +02:00
lukas
f9822a5b96 fixes
remove deprecated background images
define /var/lib/libvirt/isos to store isos
correct isos paths
2023-05-29 20:56:17 +02:00
lukas
cdbc99abb8 increase minimal size
increase minimal size of vm and change kickstart file name
2023-05-27 16:38:14 +02:00
lukas
cadcce3f4c untested 2023-05-27 15:35:19 +02:00
lukas
20ed966ff2 refactor the base-live
rebase with upstream (fedora kickstarts). Add associated dishes
2023-05-27 15:35:08 +02:00
lukas
1d56725e17 simplify quirks 2023-05-27 15:33:09 +02:00
lukas
7c445f822b remove startup scripts 2023-05-27 15:32:55 +02:00
lukas
111cbf073f simplify recipes 2023-05-27 15:32:42 +02:00
lukas
e6f991d5dc few changes
untested
2023-05-27 15:31:41 +02:00
lukas
98df76dc73 remove useless script 2023-05-27 14:32:20 +02:00
lukas
11ccb45bf3 grammar fixes 2023-05-27 14:32:07 +02:00
lukas
1bb2375d79 add untested dish 2023-05-27 14:31:40 +02:00
lukas
c02a862262 add some storage
add some storage to match upstream
2023-05-27 14:30:43 +02:00
lukas
c56fbe0806 removing some useless script 2023-05-27 14:29:24 +02:00
lukas
a9012154fd cleaning some recipes 2023-05-27 14:28:54 +02:00
lukas
e5b2108210 mini fix 2023-05-23 23:20:44 +02:00
lukas
ea7ded1fe2 updated definition
updated definition without IOMMU kernel arguments for AMD
2023-05-23 23:18:57 +02:00
lukas
72009fe0b2 cleaning
remove old recipes and ingredients
2023-05-23 23:17:58 +02:00
lukas
dece0f19cd remove amd_iommu
on AMD, iommu groups are enabled by default if the bios detects them
https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF
2023-05-23 23:17:02 +02:00
lukas
b90360ea63 Updating definitions, including disabling SELinux
adding new dishes
2023-05-23 22:46:01 +02:00
lukas
1f2a0eea3d grammar fix 2023-05-23 22:42:43 +02:00
lukas
24020ddbae cleaning old dishes and ingredients 2023-05-23 22:42:20 +02:00
lukas
f0bfaf592f minor fixes 2023-05-21 20:12:23 +02:00
lukas
3781aeafef Refactor the README to make it easier to follow 2023-05-21 18:02:25 +02:00
lukas
1ec81597ba Refactor the README to make it easier to follow 2023-05-21 18:02:09 +02:00
59ba896198 remove vlc
vlc is not available by default in the main repo.
the installer will fail as a result.
it has been removed from the extended desktop.
2022-11-22 21:39:05 +01:00
c0bcfc4287 Replace elementary with gnome background
Elementary OS backgrounds are not yet available in Fedora 37.
They need to be replace with something else.
GNOME backgrounds were chosen
2022-11-22 21:27:51 +01:00
850d44f002 trying out a new repository 2022-05-20 23:02:04 +02:00
cf4d69ce19 add new dish and new recipe
bare-metal encrypted desktop
2022-05-20 21:34:00 +02:00
Lukas
6a7f48c47e new dish: live desktop 2022-02-20 10:21:18 +01:00
Lukas
c637167990 new live dish tweaked for intelcpu 2022-02-19 22:56:48 +01:00
Lukas
9cd3f351b1 new live-related recipes 2022-02-19 22:56:17 +01:00
Lukas
9207be1082 add new system workstation model 2022-02-13 19:04:51 +01:00
Lukas
a775b55095 Modify description 2022-02-13 19:04:37 +01:00
Lukas
3a7b0ccc65 correct paths for session version 2022-02-13 19:04:13 +01:00
Lukas
fb424ef12d modify comment 2022-02-13 19:03:14 +01:00
Lukas
7f450ad2da test 2022-01-28 16:39:55 +01:00
41907c4d89 new dish 2022-01-27 10:57:05 +01:00
9faf7ba0d0 add NetworkManager-wifi module 2022-01-27 10:56:47 +01:00
059929749a new recipe 2022-01-27 10:55:45 +01:00
b4f004c21c new extended desktop ingredients 2022-01-27 10:55:14 +01:00
750aa50f5a update paths for post-install scripts
change from kexec to shutdown
2022-01-27 10:05:56 +01:00
67cb44ed7a fixes names 2022-01-27 10:02:46 +01:00
6787ab2bff fixes in comment section 2022-01-27 10:02:22 +01:00
39fd963f30 update license year 2022-01-27 10:01:40 +01:00
95dd2f5f83 minor fixes in names 2022-01-27 10:01:19 +01:00
99d35b98fe add psutils 2022-01-24 21:42:13 +01:00
a0c1ff5e6f Merge branch 'main' of github.com:PhyllomeOS/phyllomeos 2022-01-24 21:19:59 +01:00
da49f4023f add devel base ingredient 2022-01-24 21:19:55 +01:00
Lukas
fc598467b9
Update README.md
Add most needed ingredients emoticons
2022-01-24 20:36:47 +01:00
e12f5dd72b Poweroff instead of kexec 2022-01-24 20:10:40 +01:00
8095b269d7 new live and up-to-date version of phyllome 2022-01-24 20:10:14 +01:00
c816fd92ff minor fixes on scripts (wrong cpu host model) 2022-01-24 20:05:52 +01:00
ec1499d2e8 Code refactor and update of the live system image 2022-01-24 20:05:22 +01:00
bfc2abc3d1 new ingredients for quirks related to live image 2022-01-24 20:04:32 +01:00
2e353d35b9 refactor of base-live 2022-01-24 20:04:01 +01:00
24326e10a2 poweroff instead of kexec 2022-01-24 20:03:15 +01:00
ef84a6f432 correct path for files under GPLv3 license 2022-01-24 20:02:26 +01:00
93863761b1 poweroff instead of kexec 2022-01-24 20:01:53 +01:00
f89e73b38e various fixes in comments 2022-01-24 20:01:27 +01:00
8f99a07773 add paths to new scripts 2022-01-24 15:41:56 +01:00
53389f76c8 tiny fix 2022-01-24 15:39:21 +01:00
bd3c8e934e add new post-install scripts 2022-01-24 15:38:44 +01:00
e247b72659 add virtio-win paravirtualized drivers 2022-01-24 14:47:43 +01:00
2f24524ad5 preliminary "support" for OpenCore bootloader 2022-01-24 14:47:01 +01:00
b28694caa0 latest changes
logs path set to /opt; fix script path; fix amd_iommut=pt; fix USB 3.0
2022-01-11 15:15:45 +01:00
7f3c5d9f30 renaming 2022-01-11 15:12:40 +01:00
8c09f046f1 remove dish 2022-01-11 15:07:37 +01:00
1a4b1604bb new dish for bare-metal desktop 2022-01-11 15:07:04 +01:00
9c5a1de5a2 support USB 3.0 and fix log path 2022-01-11 15:05:38 +01:00
b464725ee2 fix USB 3.0
fix logs path
add new scripts
change amd_iommu=pt to iommu=pt
2022-01-11 15:05:02 +01:00
2f9a79478b no used or working for now 2022-01-11 15:01:23 +01:00
d9441b4ab3 new dish, desktop for bare-metal 2022-01-11 14:53:27 +01:00
473c66f345 logs under /opt add USB 3.0 support 2022-01-11 14:52:57 +01:00
5e727e93f0 correct mistake
iommu=pt allows for the system
not to passthrough stuff that can be passed through
2022-01-11 14:51:09 +01:00
40be769d79 improve comments 2022-01-11 14:49:58 +01:00
a29701201f add usb-related tools and drivesrs 2022-01-11 14:49:42 +01:00
35b2691875 unused recipe 2022-01-11 14:48:34 +01:00
0fae876bc3 update license to track change in file names 2022-01-03 22:22:37 +01:00
f6b518ca2a update README to reflect change in the directory 2022-01-03 22:22:08 +01:00
b2dc2b6b43 remove outdated dishes 2022-01-03 22:14:05 +01:00
f0aa553e04 create new directories
it follows a cuisine analogy,
with dishes made followed a recipe,
using ingredients
2022-01-03 21:21:23 +01:00
1b6f725861 rename files and correct paths 2022-01-03 18:03:56 +01:00
5ea024e2c2 change path for debug logs 2022-01-03 18:03:12 +01:00
2aaeeb4d32 updated file 2022-01-03 18:02:31 +01:00
26fd2b834c fix comment 2022-01-03 18:01:52 +01:00
4682f2c01b remove comments 2022-01-03 18:01:34 +01:00
71a694b997 rename files and separate functions 2022-01-03 18:01:12 +01:00
c0ef9c7105 rename file and remove comment 2022-01-03 18:00:35 +01:00
6c9110a9d3 improve comment 2022-01-03 17:59:31 +01:00
3f3fed8acf rename files 2022-01-03 17:59:14 +01:00
d38f5fd489 fix comment 2022-01-03 17:58:31 +01:00
8d2fbf0dbf fix comment 2022-01-03 17:58:18 +01:00
e9ddf9b5f9 remove libvirtd service autostart 2021-12-16 14:47:43 +01:00
2becc66328 latest version of virtual-desktop 2021-12-16 11:46:11 +01:00
b6af4d7aca latest version of phyllome desktop kickstarts 2021-12-16 11:45:06 +01:00
f728cf7a0f create new vm models 2021-12-12 18:27:19 +01:00
215fd06ed0 remove now useless script 2021-12-12 18:27:03 +01:00
1ba41887bb newer version of virtual-desktop &
phyllome
2021-12-12 18:25:21 +01:00
8c97aed689 first attempt to craft cdrom-based kickstart 2021-12-12 18:24:20 +01:00
6506283b36 add reboot --kexec 2021-12-12 18:23:39 +01:00
93323709d1 add generic virtualization tweaks to the base
hypervisor file
2021-12-12 18:23:28 +01:00
67649f9c37 explicitly add libvirt service 2021-12-12 18:22:28 +01:00
fd2dbbe00b add virt-manager-related customizations 2021-12-12 18:21:58 +01:00
f477aa881a add GNOME related-customizations 2021-12-12 18:21:07 +01:00
44cbbaa289 correct a typo 2021-12-12 18:20:40 +01:00
66ff0c5771 erase file 2021-12-12 18:20:24 +01:00
3dbf80bcd3 make sure libvirtd starts when needed 2021-11-28 18:17:05 +01:00
7277fe262c newer end-products version 2021-11-28 18:15:06 +01:00
0313011cf4 two new recipes
virtual encrypted server
virtual desktop, install from a CD
2021-11-28 18:13:54 +01:00
96e09ed84e dev-base created 2021-11-28 18:13:12 +01:00
dadb1a05be refactoring of the codebase
create new ks ingredients including for vmm, initial-setup, and else
2021-11-28 18:12:50 +01:00
f12d83b04d new dev vm
harcoded root password, no firewall, no encryption, no SELinux.
carpe-diem
2021-11-28 18:08:35 +01:00
3c3f420217 base destkop inherit mesa-dri 2021-11-28 18:06:44 +01:00
2aad7d9988 regen the grb is back
but is it useful?
2021-11-28 18:06:05 +01:00
483f4f31a3 reg the grub is back 2021-11-28 18:05:22 +01:00
1561be2dc3 create new end-product
doesn't yet work, cannot find the repo
2021-11-28 18:05:00 +01:00
b3f1c389fb create new end-product
virtual server with LUKS encryption
2021-11-28 18:04:19 +01:00
3ed2548b6d tiny comment fix 2021-11-28 18:03:31 +01:00
f384f264e1 put the bootloader timeout in separate kickstart 2021-11-28 18:02:41 +01:00
f1c8280316 put the bootloader timeout in base ks 2021-11-28 18:02:18 +01:00
157ceb9ab1 new ks for LUKS encryption 2021-11-28 18:01:53 +01:00
6aa2a6db4f specific ks for initial-setup 2021-11-28 18:01:32 +01:00
60c2fe867e specific ks for gnome initial-setup 2021-11-28 18:01:22 +01:00
2ff4fe251e new ks for cdrom installation
doesn't work yet as intended
2021-11-28 18:00:01 +01:00
3c1b1227b3 specific ks for virt-manager 2021-11-28 17:59:20 +01:00
b8018cf11f add mesa drivers
to avoid blank screen on newly created virtual machines
2021-11-28 17:57:12 +01:00
24cf78e420 add a link to a guide 2021-11-27 15:46:56 +01:00
761d2cab6b improve the README
Switch to qemu session for the example.
Target Phyllome OS Desktop instead of a specialized edition
2021-11-27 15:40:35 +01:00
8eda17ef1a add activation of libvirt services 2021-11-27 15:32:02 +01:00
f5844a1866 broken as of now, don't use 2021-11-27 15:31:37 +01:00
dfebe0f30c reinstate grub rebuilding at the beginning 2021-11-27 15:30:24 +01:00
ce56c92d7c add libvirt as fix 2021-11-27 15:29:48 +01:00
9da992ed8f change comment 2021-11-27 14:09:55 +01:00
9ae0cd228f add fedora-rawhide repo 2021-11-27 14:09:42 +01:00
2eb9a95ce6 make sure services are enabled 2021-11-27 14:09:02 +01:00
4a87957654 possible fixes 2021-11-27 14:08:33 +01:00
e14f5376a1 add virtual server model 2021-11-27 10:52:58 +01:00
b84c4ebab4 rebuild grub on the main, base-image 2021-11-27 09:38:27 +01:00
b429fc6114 add guest-agents to virtual-desktop 2021-11-26 22:44:07 +01:00
194a8fcb98 remove iommu, add qemu-guest-channel 2021-11-26 21:21:53 +01:00
1bf082856c fix package 2021-11-26 21:21:28 +01:00
ea52dd017b add ks for virtual machines 2021-11-26 21:19:40 +01:00
a29819a5ae nano works
350 packages
2021-11-26 16:36:25 +01:00
97285a853f rewrite URLs content 2021-11-26 16:26:12 +01:00
5ea07a45f2 improve over defaults VMs 2021-11-26 16:23:26 +01:00
141cb2335a change vmm console size 2021-11-26 16:22:58 +01:00
a8813c1715 add updated kickstart files 2021-11-26 16:22:36 +01:00
c2c4e83321 correct links
rewrite the comment section
2021-11-26 16:21:00 +01:00
4aed83c7ad remove libvirtd service activation
correct a mistake. Clearpart was removed
remove grub regeneration, as it doesn't seem to be necessary
2021-11-26 16:19:02 +01:00
20d698943e trim nano further 2021-11-26 16:17:58 +01:00
4cf7a11d5f rewrite URLs to point to github
add libvirtd service activation for  hypervisor-based machines only
2021-11-26 16:17:13 +01:00
f6b286e3ff implement late grub regeneration 2021-11-26 16:15:14 +01:00
dc73b8b67c add grub regeneration
If the GRUB is not regenerated at the end,
then kernel arguments  are not taken into account
2021-11-26 16:14:28 +01:00
de556053c3 rename files 2021-11-26 16:13:00 +01:00
94 changed files with 6392 additions and 2336 deletions

View File

@ -1,6 +1,6 @@
# MIT License # MIT License
Copyright (c) 2021 Lukas Greve Copyright (c) 2022 Lukas Greve
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

297
README.md
View File

@ -1,182 +1,235 @@
# Phyllome OS # Phyllome OS
> Virtualization for the rest of us Phyllome OS is a [Fedora Remix](https://fedoraproject.org/wiki/Remix) designed to leverage [hardware-assisted virtualization](https://wiki.phyllo.me/virt/lexicon#hardware-assisted-virtualization) and [paravirtualization](https://wiki.phyllo.me/virt/lexicon#paravirtualization) to make it easier to run virtualized operating systems locally.
*Phyllome OS is a [Fedora Remix](https://fedoraproject.org/wiki/Remix) based on [Fedora Server 35](https://getfedora.org/en/server/) designed to leverage hardware-assisted virtualization and paravirtualization to make it easier to run modern guest operating systems locally.* Phyllome OS uses the [automated kickstart installation](https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#chapter-1-introduction) method to deploy itself to a specific target computer or virtual machine.
> This is the **alpha version** of Phyllome OS. Expect bugs and disappointment. > Phyllome OS is in its ***alpha*** stage of development. Expect bugs and disappointment
> External contributions to Phyllome OS are welcome. Have a look [here](https://kanboard.phyllo.me/b/CH7qd98J2v7egmodk/development) for some ideas on what to do next, or feel free to create an issue and suggest an idea you wish to work on. Also, it might be good to skim through the [white-paper](https://files.phyllo.me/s/oYwfxYpZcbppwr6) to understand what it is about and what the project is trying to achieve. ## The content of this repository
> The Phyllome OS Project is **looking for core contributors**, willing to contribute regularly to the project. If you are interested in making cutting-edge open-source virtualization more accessible, please send an email to contact@phyllo.me. Each version of Phyllome OS is like a `dish` that is based on a `recipe` that lists `ingredients`, or basic building blocks for assembling Phyllome OS and other derivatives.
## What * `ingredients`🥑 🥥 🥭 🥝 🥦 🥬 🥒 🧄: Each ingredient represents a feature or a set of integrated features, such as a specific Desktop Environment
This repository contains the basic building blocks required to deploy [Phyllome OS](https://phyllo.me/) in a virtual machine, using kickstart files. Example for the base storage ingredient used by Phyllome OS.
Kickstart files are used to automate the installation and configuration of RPM-based operating systems. `cat ingredients/base-storage.cfg`
> If you would like to install Phyllome OS on your computer, please follow [this guide](https://wiki.phyllo.me/deploy/install) instead.
### Structure of the repository
* `blocks` : this directory contains the basic building blocks for assembling Phyllome OS Desktop and Phyllome OS Server.
* This is where most of the development happens.
* `blocks-live` : this directory contains the basic building blocks for creating a live medium for Phyllome OS.
* The code in this directory usually lags behind what is found in the `blocks` directory.
* The `blocks` and `blocks-live` repository will eventually be merged, and the number of blocks will be reduced to avoid code duplication.
* `leaves` : this directory contains the end product in the form of stand-alone and ready-to-use kickstart files.
* For instance, the Phyllome OS Desktop version optimized for Intel(tm) CPUs and Intel(tm) graphics cards, referred to internally as `flat-dhi`, is stored there (*d* stands for desktop, *h* for hypervisor and *i* for intel).
* `post` : this directory contains scripts that are meant to be run after a successful installation, after Phyllome OS has started.
* Ideally, these code snippets will be merged with existing building blocks, or summoned as a systemd unit.
## How to hack Phyllome OS
> Only Linux-based development is possible at the moment, sorry. Support for macOS and Windows-based development will follow.
As of now, hacking kickstart files is the main way to develop Phyllome OS.
Have a look [here](https://docs.fedoraproject.org/en-US/fedora/rawhide/install-guide/appendixes/Kickstart_Syntax_Reference/) to learn the kickstart syntax.
### Requirements
* A Linux distribution, with a recent Linux Kernel (> 5.X)
* A x86_64 platform with hardware-assisted virtualization [enabled](https://wiki.phyllo.me/deploy/prepare)
* Nested-virtualization enabled
* `virt-install` and `virt-manager`, as well as `libvirt` and `qemu-kvm` up and running
**Enable** nested-virtualization on **AMD-based systems**, then reboot:
``` ```
sudo echo "options kvm_amd nested=1" >> /etc/modprobe.d/kvm.conf [...]
# What ? This kickstart file provides a basic ext4 unencrypted partition layout for UEFI-based systems
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi # Will create an EFI system partitition of 128 MiB (vda1)
part /boot --fstype="ext4" --size=512 --label=boot # Create a boot partition of 512 MiB using the ext4 filesystem (vda2)
part / --fstype="ext4" --grow --label=root # The remaining space will be used for root (vda3)
``` ```
**Enable** nested-virtualization on **Intel-based systems**, then reboot: * `recipes`🧾 🧩: this directory contains recipes for deploying operating system artifacts on bare-metal, as a live system, or inside a virtual machine.
Let's take a look at the recipe to deploy Phyllome OS Desktop.
`cat recipes/desktop-hypervisor.cfg`
``` ```
sudo echo "options kvm_intel nested=1" >> /etc/modprobe.d/kvm.conf` # What ? This kickstart file bootstraps a desktop hypervisor.
[...]
%include ../ingredients/base-fedora-repo.cfg # offical repositories for Fedora
%include ../ingredients/base-storage.cfg # base storage
%include ../ingredients/base.cfg # A minimal machine
%include ../ingredients/base-desktop-gnome.cfg # A desktop environment based on GNOME Shell
%include ../ingredients/base-desktop-virtual-machine-manager.cfg # the virtual machine manager
%include ../ingredients/base-hypervisor.cfg # A base hypervisor
%include ../ingredients/base-initial-setup-gnome.cfg # Includes initial-setup for GNOME Shell, allowing for the creation of a user after the first boot, as well as some basic configuration
``` ```
**Install the prerequisites on Fedora 35** * `dishes`🥨 🥐 🥖 🥧 🥞 🥯 🧆 🧁...: the end-product in the form of stand-alone and ready-to-consume kickstart file
Let's take a look at the final Phyllome OS Desktop dish.
`cat dishes/desktop-hypervisor.cfg`
``` ```
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 pykickstart # Generated by pykickstart v3.58
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled --service=mdns
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
[...]
%end
%packages --exclude-weakdeps
@core
@hardware-support
NetworkManager-wifi
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-initial-setup
gnome-shell
gnome-terminal
guestfs-tools
libguestfs-tools
libusb
libvirt
libvirt-daemon-config-network
libvirt-daemon-kvm
mesa-dri-drivers
mozilla-ublock-origin.noarch
nano
pciutils
python3-libguestfs
qemu-kvm
usbutils
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
``` ```
**Install the prerequisites on Ubuntu 20.4 or Debian 11** ## Development
```To be done``` Let's assume you wish to add [Luanti](https://www.luanti.org/), a free and open-source sandbox video game engine, as an ingredient to a dish.
### Hack around * Clone this repository and move inside:
Clone this repository:
``` ```
git clone https://github.com/PhyllomeOS/PhyllomeOS.git $ git clone https://git.phyllo.me/roots/phyllomeos && cd phyllomeos
``` ```
Modify some files, typically inside the `blocks` directory. * Make a copy of the `template.cfg` file and rename it
When you are done, move to the `flat` directory:
``` ```
cd ./PhyllomeOS/flat/ $ cp ingredients/template.cfg ingredients/extra-luanti.cfg
``` ```
Then, merge the kickstart basic building blocks into a single file, a process called 'flattening'. * Add software `luanti` to your file:
``` ```
ksflatten -c ../blocks/dhi.cfg -o flat-dhi.cfg $ nano ingredients/extra-luanti.cfg
``` ```
If any errors are detected, go back and fix them.
### Fire it up!
For testing purposes, Phyllome OS can be deployed inside a virtual machine, as a guest hypervisor.
The following command will automatically deploy the alpha version of Phyllome OS, tuned for Intel CPUs and Intel graphics cards.
It uses 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 needs.
When ready, copy and paste it to your terminal.
``` ```
virt-install \ # What ? This partial kickstart file provides the video game Luanti
%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies
luanti # a free and open-source sandbox video game
%end
```
* Navigate inside the `recipes` folder:
```
$ cd recipes
```
* Pick a suitable recipe to add your ingredient to it. As luanti is a GUI application, `virtual-desktop.cfg` is a fitting candidate. Make a copy of it.
```
$ cp virtual-desktop.cfg virtual-desktop-lunanti.cfg
```
* Edit the file and add the newly defined ingredient:
```
$ nano virtual-desktop-luanti.cfg
```
```
%include ../ingredients/base-fedora-repo.cfg # offical repositories for Fedora
%include ../ingredients/base-storage.cfg # base storage
%include ../ingredients/base.cfg # A minimal machine
%include ../ingredients/base-desktop-gnome.cfg # A desktop environment
%include ../ingredients/base-guest-agents.cfg # Guest agents
%include ../ingredients/base-initial-setup-gnome.cfg # Includes initial-setup for GNOME Shell, allowing for the creation of a user after the first boot, as well as some basic configuration
%include ../ingredients/extra-luanti.cfg # A free and open-source sandbox video game
poweroff # Shut down the system after a successful installation
```
* Merge the kickstart basic building blocks a single file, or dish. This process is called 'flattening'.
```
$ ksflatten -c virtual-desktop-lunanti.cfg -o ../dishes/virtual-desktop-luanti.cfg
```
> If any errors are detected, go back and fix them.
If multiple dishes are affected by your ingredients, flatten them all while in the `recipes` folder.
```
for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
```
* Navigate inside the `dishes` folder:
```
$ cd ../dishes/
```
* You can then kickstart your own installation:
```
# virt-install \
--connect qemu:///system \ --connect qemu:///system \
--metadata description="Phyllome OS Desktop, virtual edition, with Luanti" \
--os-variant fedora41 \
--virt-type kvm \ --virt-type kvm \
--arch x86_64 \ --arch x86_64 \
--machine q35 \ --machine q35 \
--name phyllome-alpha \ --name virtual-desktop-luanti \
--boot uefi \ --boot uefi \
--cpu host-model,topology.sockets=1,topology.cores=2,topology.threads=1 \ --cpu host-model,topology.sockets=1,topology.cores=2,topology.threads=1 \
--vcpus 2 \ --vcpus 2 \
--memory 4096 \ --memory 4096 \
--video virtio \ --video virtio \
--graphics spice,listen=none \
--channel spicevmc \ --channel spicevmc \
--autoconsole none \ --autoconsole none \
--console pty,target.type=virtio \
--sound none \ --sound none \
--network type=user,model=virtio \
--controller type=virtio-serial \ --controller type=virtio-serial \
--controller type=usb,model=none \ --controller type=usb,model=none \
--controller type=scsi,model=virtio-scsi \ --controller type=scsi,model=virtio-scsi \
--network network=default,model=virtio \
--input type=keyboard,bus=virtio \ --input type=keyboard,bus=virtio \
--input type=tablet,bus=virtio \ --input type=tablet,bus=virtio \
--rng /dev/urandom,model=virtio \ --rng /dev/urandom,model=virtio \
--disk path=/var/lib/libvirt/images/flat-dhi.img,format=raw,bus=virtio,cache=writeback,size=5 \ --disk path=/var/lib/libvirt/images/virtual-phyllome-desktop.img,format=raw,bus=virtio,cache=writeback,size=5 \
--location=https://download.fedoraproject.org/pub/fedora/linux/releases/35/Everything/x86_64/os/ \ --location=https://download.fedoraproject.org/pub/fedora/linux/releases/42/Everything/x86_64/os/ \
--initrd-inject flat-dhi.cfg --extra-args "inst.ks=file:flat-dhi.cfg" --initrd-inject virtual-desktop-luanti.cfg --extra-args "inst.ks=file:virtual-desktop-luanti.cfg"
``` ```
You should see the following message:
```
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 installation process will be launched behind the scenes. You can open `virt-manager` and connect to the virtual machine console to follow the process. Eventually, you will be greeted with this screen:
![greetings](./img/greetings.png)
After you are done setting up your user account, `virt-manager` will automatically start:
![greetings](./img/desktop.png)
If the installation is successful and your feature is working as intended, you are welcome to create a pull request. Thank you!
## Phyllome OS
Phyllome OS goal is to maximize ease-of-use and compatibility. As such, it intends to become the easiest way to use modern operating systems locally, in a virtual machine, by integrating pertinent open-source software such as `libvirt`, `qemu-kvm` (and eventually `Cloud Hypervisor`), as well as `virt-manager`.
Users should not have to manage Phyllome OS: they should be able to pick their favorite operating system and Phyllome OS should run it, no questions asked.
> Note : with the exception of open-source [Darwin derivatives](https://en.wikipedia.org/wiki/Darwin_(operating_system)#Derived_projects), Phyllome OS **strongly** discourages users from running proprietary, darwin-based derivatives on non-Apple hardware.
### The Phyllome OS Project
The Phyllome OS Project relies on multiple tools, including the following public-facing tools:
* **Wiki**: Take a look at the [wiki repository](https://github.com/PhyllomeOS/wiki) for more information on how you can contribute to improving the documentation.
* **Issues tracker**: a public, read-only issue tracking is [available online](https://kanboard.phyllo.me/b/CH7qd98J2v7egmodk/development). From now on, GitHub issue tracking will be used to track development-only issues.
* **Code repository**: GitHub is used to host the code, with a mirror pointing to git.phyllo.me
## License
* [MIT](./LICENSE.md) for the most part, with some [GPL](./blocks-live/LICENSE.md) code.
## Acknowledgement ## Acknowledgement
Thanks to 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, > 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
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

View File

@ -1,70 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# 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 --log=/root/bhl.log # Beginning of %post section. Those commands are executed inside the chroot environment. Logging is enabled to help with post-installation troubleshooting
mkdir /var/lib/libvirt/iso # Create a directory to store iso images
wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /var/lib/libvirt/iso/ # fetch netboot.xyz iso
# fetch custom script and make it executable
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/configure-vmm-and-desktop.sh -P /usr/sbin/
chmod +x /usr/sbin/configure-vmm-and-desktop.sh
# fetch custom script and make it executable
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/create-live-vm.sh -P /usr/sbin/
chmod +x /usr/sbin/create-live-vm.sh
# fetch custom script and make it executable
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/virtualization-tweaks-root-needed.sh -P /usr/sbin/
chmod +x /usr/sbin/virtualization-tweaks-root-needed.sh
# # Create new file /etc/systemd/system/postinstall.service using cat:
# cat > /etc/systemd/system/post-install.service<< EOF
# [Unit]
# Description=Post-installation configuration for Phyllome OS
# After=gdm.service
# Requires=gdm.service
#
# [Service]
# Type=oneshot
# ExecStart=/bin/bash /usr/sbin/post-install.sh
# RemainAfterExit=yes
#
# [Install]
# WantedBy=multi-user.target
# EOF
#
# systemctl enable /etc/systemd/system/post-install.service # Enable systemd unit
# 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 so that it could regardless of the name of the ethernet device
# nmcli con up br0
%end # End of the %post section

View File

@ -1,36 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file configures an hypervisor for AMD (tm) CPUs
# 'b' for basic building block, 'h' for hypervisor', 'a' for amd
# This is NOT a standalone kickstart file
%post --log=/root/bhla.log # Beginning of %post section. Those commands are executed inside 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' /etc/default/grub # Load kernel modules in GRUB.
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
echo "vfio" > /etc/modules-load.d/vfio.conf
echo "vfio-pci" > /etc/modules-load.d/vfio-pci.conf
echo "vfio_iommu_type1" > /etc/modules-load.d/vfio_iommu_type1.conf
echo "vfio_virqfd" > /etc/modules-load.d/vfio_virqfd.conf
echo "options kvm_amd nested=1" >> /etc/modprobe.d/kvm.conf # Add support for nested-virtualization
# The following part seems useless
# dracut --add-drivers " vfio vfio-pci vfio_iommu_type1 vfio_virqfd " --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 /usr/bin/dracut
# The following part seems useless too. No need to regenerate grub
# grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub. Does it fail ? /usr/sbin/grub2-probe: error: failed to get canonical path of `LiveOS_rootfs'.
%end # End of the %post section

View File

@ -1,38 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# 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
# This is NOT a standalone kickstart file
%post --log=/root/blhi.log # Beginning of %post section. Those commands are executed inside 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' /etc/default/grub # Load kernel modules in grub.
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
echo "vfio" > /etc/modules-load.d/vfio.conf
echo "vfio-pci" > /etc/modules-load.d/vfio-pci.conf
echo "vfio_iommu_type1" > /etc/modules-load.d/vfio_iommu_type1.conf
echo "vfio_virqfd" > /etc/modules-load.d/vfio_virqfd.conf
echo "kvmgt" > /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" > /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" >> /etc/modprobe.d/kvm.conf # Add support for nested-virtualization
# The following part seems useless
# 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 /usr/bin/dracut
# The following part seems useless too. No need to regenerate grub
# grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub. Does it fail ? /usr/sbin/grub2-probe: error: failed to get canonical path of `LiveOS_rootfs'.
%end # End of the %post sectionsud

View File

@ -1,437 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# 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
# text # Perform installation in text mode
repo --name=fedora --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch # Official Fedora mirror
repo --name=updates --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch # Official Fedora updates mirror
# #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
# lang en_US.UTF-8
# keyboard us
# timezone US/Eastern
selinux --enforcing # Make sure SELinux is in enforced mode
firewall --enabled --service=mdns
# selinux --enforcing
# firewall --enabled --service=mdns
# xconfig --startxonboot
zerombr
clearpart --all
part / --size 5120
# bootloader --timeout=2
# services --enabled=NetworkManager --disabled=sshd
# network --bootproto=dhcp --device=link --activate --hostname=phyllome
#
# rootpw --lock --iscrypted locked
#
# # shutdown
# zerombr
# clearpart --all
# part / --size 5120 --fstype ext4
# services --enabled=NetworkManager,ModemManager --disabled=sshd
network --bootproto=dhcp --device=link --activate
rootpw --lock --iscrypted locked
shutdown
#
# %packages # Beginning of the packages section.
#
# # Explicitly specified here:
# # <notting> walters: because otherwise dependency loops cause yum issues.
# kernel
# kernel-modules
# kernel-modules-extra
#
# # This was added a while ago, I think it falls into the category of
# # "Diagnosis/recovery tool useful from a Live OS image". Leaving this untouched
# # for now.
# #memtest86+
# #@x86-baremetal-tools # memtest86+ is included
#
# # The point of a live image is to install
# # anaconda
# # anaconda-install-env-deps
# # anaconda-live
# # @anaconda-tools
# # Anaconda has a weak dep on this and we don't want it on livecds, see
# # https://fedoraproject.org/wiki/Changes/RemoveDeviceMapperMultipathFromWorkstationLiveCD
# # -fcoe-utils
# # -device-mapper-multipath
#
# # Need aajohan-comfortaa-fonts for the SVG rnotes images
# # aajohan-comfortaa-fonts
#
# # Without this, initramfs generation during live image creation fails: #1242586
# dracut-live
# dracut-config-generic # add that as sugested here : https://www.brianlane.com/post/creating-live-isos-with-livemedia-creator/
#
# # For UEFI-boot, see https://github.com/weldr/lorax/blob/master/docs/fedora-livemedia.ks
# shim
# shim-ia32
# grub2
# grub2-efi
# grub2-efi-*-cdboot
# grub2-efi-ia32
# efibootmgr
#
# # syslinux is in @x86-baremetal-tools
#
# # anaconda needs the locales available to run for different locales
# glibc-all-langpacks
#
# # no longer in @core since 2018-10, but needed for livesys script
# initscripts
# chkconfig
#
# @core # minimal installation
# pciutils # Pciutils provides lspci commandline tool and is not installed by default
# # initial-setup # Install the initial setup package. For the GUI version, use initial-setup-gui instead.
# qemu-guest-agent # "QEMU guest agent"
# spice-vdagent # "Agent for Spice guests"
# -fedora-logos # Fedora logos
# -fedora-release # Fedora release-notes
# -fedora-release-notes
# -fedora-release-common # Fedora release files
# -fedora-release-identity-basic # ???
# fedora-remix-logos # Install Fedora remix logos
# generic-release
# generic-logos
# generic-release-common # "Generic release files"
# generic-release-notes # "Release Notes"
# %end # End of the packages section
%packages
# Explicitly specified here:
# <notting> walters: because otherwise dependency loops cause yum issues.
kernel
kernel-modules
kernel-modules-extra
# This was added a while ago, I think it falls into the category of
# "Diagnosis/recovery tool useful from a Live OS image". Leaving this untouched
# for now.
#memtest86+
@x86-baremetal-tools # memtest86+ is included
# The point of a live image is to install
anaconda
anaconda-install-env-deps
anaconda-live
@anaconda-tools
# Anaconda has a weak dep on this and we don't want it on livecds, see
# https://fedoraproject.org/wiki/Changes/RemoveDeviceMapperMultipathFromWorkstationLiveCD
-fcoe-utils
-device-mapper-multipath
# Need aajohan-comfortaa-fonts for the SVG rnotes images
aajohan-comfortaa-fonts
# Without this, initramfs generation during live image creation fails: #1242586
dracut-live
# syslinux is in @x86-baremetal-tools
# anaconda needs the locales available to run for different locales
glibc-all-langpacks
# no longer in @core since 2018-10, but needed for livesys script
initscripts
chkconfig
%end # End of the packages section
%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
#
# 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

View File

@ -1,119 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file bootstraps a live desktop machine.
# 'l' for live, 'd' for desktop
# 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 ld.cfg -o ../leaves/flat-ld.cfg
# IMPORTANT : Weak dependencies to be destroyed in the resulting ks
# Instructions for livecd-creator (about to be deprecated)
# An ISO file can be created using the following command as *root*:
# livecd-creator -c ../leaves/flat-ld.cfg --fslabel=ld
# livecd-creator is part of the livecd-tools package
# Instructions for livemedia-creator
# An ISO file can be created using the following command as *root*:
# livemedia-creator --make-iso --ks flat-ld.cfg --no-virt --iso-only --iso-name phyllome-live-d-x86_64.iso --releasever 35
# The resulting ISO can be tested with qemu-kvm, using the following these two commands, as *root*:
# UEFI test:
# qemu-kvm -bios /usr/share/edk2/ovmf/OVMF_CODE.fd -m 2048 -vga qxl phyllome-live-d-x86_64.iso
# BIOS test:
# qemu-kvm -m 2048 -vga qxl phyllome-live-d-x86_64.iso
%include bl.cfg # A base for a minimal live machine
%include "../blocks/bd.cfg" # A base for a desktop environment
%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
# # 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
# cat >> /usr/share/gnome-shell/search-providers/org.gnome.Software-search-provider.ini << FOE
# DefaultDisabled=true
# 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 # End of the %post section

View File

@ -1,54 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file bootstraps a live desktop hypervisor machine.
# 'l' for live, 'h' for hypervisor, 'd' for desktop
# 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 ldh.cfg -o ../leaves/flat-ldh.cfg
# IMPORTANT : Weak dependencies to be destroyed in the resulting ks
# Instructions for livecd-creator (about to be deprecated)
# An ISO file can be created using the following command as *root*:
# livecd-creator -c ../leaves/flat-ldh.cfg --fslabel=ldh
# livecd-creator is part of the livecd-tools package
# Instructions for livemedia-creator
# An ISO file can be created using the following command as *root*:
# livemedia-creator --make-iso --ks flat-ldh.cfg --no-virt --iso-only --iso-name phyllome-live-dh-x86_64.iso --releasever 35
# The resulting ISO can be tested with qemu-kvm, using the following these two commands, as *root*:
# UEFI test:
# qemu-kvm -bios /usr/share/edk2/ovmf/OVMF_CODE.fd -m 2048 -vga qxl phyllome-live-dh-x86_64.iso
# BIOS test:
# qemu-kvm -m 2048 -vga qxl phyllome-live-dh-x86_64.iso
%include ld.cfg # A base for a live desktop minimal machine
%include bhl.cfg # A base hypervisor
%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies.
virt-manager # Install virt-manager, the graphical front-end for QEMU/KVM
%end # End of the packages section
%post --log=/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 /var/lib/libvirt/iso # Make the user "liveuser" the owner of this directory
chown liveuser:liveuser /var/lib/libvirt/images # Make the user "test" the owner of this directory
# Create a file to autostart virt-manager
cat > /etc/xdg/autostart/virt-manager.desktop << EOF
[Desktop Entry]
Type=Application
Name=Virtual Machine Manager
Exec=virt-manager
EOF
%end # End of the %post section

View File

@ -1,55 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# 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
# 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 ldha.cfg -o ../leaves/flat-ldha.cfg
# IMPORTANT : Weak dependencies to be destroyed in the resulting ks
# Instructions for livecd-creator (about to be deprecated)
# An ISO file can be created using the following command as *root*:
# livecd-creator -c ../leaves/flat-ldha.cfg --fslabel=ldha
# livecd-creator is part of the livecd-tools package
# Instructions for livemedia-creator
# An ISO file can be created using the following command as *root*:
# livemedia-creator --make-iso --ks flat-ldha.cfg --no-virt --iso-only --iso-name phyllome-live-dha-x86_64.iso --releasever 35
# The resulting ISO can be tested with qemu-kvm, using the following these two commands, as *root*:
# UEFI test:
# qemu-kvm -bios /usr/share/edk2/ovmf/OVMF_CODE.fd -m 2048 -vga qxl phyllome-live-dha-x86_64.iso
# BIOS test:
# qemu-kvm -m 2048 -vga qxl phyllome-live-dha-x86_64.iso
%include ld.cfg # A base for a live desktop minimal machine
%include bhl.cfg # A base hypervisor
%include bhla.cfg # Specific virtualization configuration for AMD (tm) CPUs
%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies.
virt-manager # Install virt-manager, the graphical front-end for QEMU/KVM
%end # End of the packages section
%post --log=/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 /var/lib/libvirt/iso # Make the user "liveuser" the owner of this directory
chown liveuser:liveuser /var/lib/libvirt/images # Make the user "test" the owner of this directory
# Create a file to autostart virt-manager
cat > /etc/xdg/autostart/virt-manager.desktop << EOF
[Desktop Entry]
Type=Application
Name=Virtual Machine Manager
Exec=virt-manager
EOF
%end # End of the %post section

View File

@ -1,55 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# 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
# 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 ldhi.cfg -o ../leaves/flat-ldhi.cfg
# IMPORTANT : Weak dependencies to be destroyed in the resulting ks
# Instructions for livecd-creator (about to be deprecated)
# An ISO file can be created using the following command as *root*:
# livecd-creator -c ../leaves/flat-ldhi.cfg --fslabel=ldhi
# livecd-creator is part of the livecd-tools package
# Instructions for livemedia-creator
# An ISO file can be created using the following command as *root*:
# livemedia-creator --make-iso --ks flat-ldhi.cfg --no-virt --iso-only --iso-name phyllome-live-dhi-x86_64.iso --releasever 35
# The resulting ISO can be tested with qemu-kvm, using the following these two commands, as *root*:
# UEFI test:
# qemu-kvm -bios /usr/share/edk2/ovmf/OVMF_CODE.fd -m 2048 -vga qxl phyllome-live-ldhi-x86_64.iso
# BIOS test:
# qemu-kvm -m 2048 -vga qxl phyllome-live-ldhi-x86_64.iso
%include ld.cfg # A base for a live desktop minimal machine
%include bhl.cfg # A base hypervisor
%include bhli.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.
virt-manager # Install virt-manager, the graphical front-end for QEMU/KVM
%end # End of the packages section
%post --log=/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 /var/lib/libvirt/iso # Make the user "liveuser" the owner of this directory
chown liveuser:liveuser /var/lib/libvirt/images # Make the user "test" the owner of this directory
# Create a file to autostart virt-manager
cat > /etc/xdg/autostart/virt-manager.desktop << EOF
[Desktop Entry]
Type=Application
Name=Virtual Machine Manager
Exec=virt-manager
EOF
%end # End of the %post section

View File

@ -1,29 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file provides a basic block to build a minimal, desktop-oriented operating system using GNOME Shell.
# 'b' for basic building block, 'd' for desktop
# This is NOT a standalone kickstart file
xconfig --startxonboot --defaultdesktop=GNOME # Start the display session on boot. Although it says --startx, which seems to imply xorg, it is actually generic and thus works also with Wayland.
%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies
gnome-shell # the version 3 of the GNOME desktop environment, without any presintalled applications
gnome-terminal # install the default terminal for GNOME Shell
-gnome-tour # delete GNOME Tour so it doesn't automatically launch on boot
dejavu-sans-mono-fonts # the gnome-shell package doesn't include much fonts by default, resulting in weird spacings in GNOME Terminal. GNOME Terminal unfortunately doesn't automatically pick this font
elementary-wallpapers-gnome.noarch # Gorgeous wallpapers from the elementary OS project
wpa_supplicant # WPA Supplicant for Linux. It is not packaged by default in gnome-shell, but necessary to configure wireless networks using the Network Manager
nano # The nano text editor
%end
# %post --nochroot --log=/mnt/sysimage/root/bd.log # Beginning of %post section. Those commands are executed outside the chroot environment
#
# %end # End of the %post section

View File

@ -1,73 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# 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
# %post --log=/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/ # fetch netboot.xyz iso
# fetch custom script and make it executable
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/configure-vmm-and-desktop.sh -P /mnt/sysimage/usr/sbin/
chmod +x /mnt/sysimage/usr/sbin/configure-vmm-and-desktop.sh
# fetch custom script and make it executable
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/create-live-vm.sh -P /mnt/sysimage/usr/sbin/
chmod +x /mnt/sysimage/usr/sbin/create-live-vm.sh
# fetch custom script and make it executable
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/sbin/
chmod +x /mnt/sysimage/usr/sbin/virtualization-tweaks-root-needed.sh
# # Create new file /etc/systemd/system/postinstall.service using cat:
# cat > /mnt/sysimage/etc/systemd/system/post-install.service<< EOF
# [Unit]
# Description=Post-installation configuration for Phyllome OS
# After=gdm.service
# Requires=gdm.service
#
# [Service]
# Type=oneshot
# ExecStart=/bin/bash /usr/sbin/post-install.sh
# RemainAfterExit=yes
#
# [Install]
# WantedBy=multi-user.target
# EOF
#
# systemctl enable /mnt/sysimage/etc/systemd/system/post-install.service # Enable systemd unit
# 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 so that it could regardless of the name of the ethernet device
# nmcli con up br0
%end # End of the %post section
# %post # Beginning of the post-installation section.
# %end # End of the %post section

View File

@ -1,36 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file configures an hypervisor for AMD (tm) CPUs
# 'b' for basic building block, 'h' for hypervisor', 'a' for amd
# This is NOT a standalone kickstart file
%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
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 "options kvm_amd nested=1" >> /etc/modprobe.d/kvm.conf # Add support for nested-virtualization
# The following part seems useless
# dracut --add-drivers " vfio vfio-pci vfio_iommu_type1 vfio_virqfd " --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
# The following part seems useless too. No need to regenerate grub
# 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 # End of the %post section

View File

@ -1,38 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# 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
# 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.
# 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
# The following part seems useless
# 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
# The following part seems useless too. No need to regenerate grub
# 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 # End of the %post sectionsud

View File

@ -1,36 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file bootstraps a desktop machine.
# '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 d.cfg -o ../leaves/flat-d.cfg
%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.
%end # End of the %post section
%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
%end # End of the %post section

View File

@ -1,43 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file bootstraps a desktop hypervisor.
# '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 dh.cfg -o ../leaves/flat-dh.cfg
%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
%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies.
virt-manager # Install virt-manager, the graphical front-end for QEMU/KVM
gnome-initial-setup # Add GNOME initial setup too to let user create local account.
%end # End of the packages section
%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
[Desktop Entry]
Type=Application
Name=Virtual Machine Manager
Exec=virt-manager
EOF
%end # End of the %post section

View File

@ -1,44 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file bootstraps a desktop hypervisor configured for AMD (tm) CPUs.
# '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 dha.cfg -o ../leaves/flat-dha.cfg
%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
%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies.
virt-manager # Install virt-manager, the graphical front-end for QEMU/KVM
gnome-initial-setup # Add GNOME initial setup too to let user create local account.
%end # End of the packages section
%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
[Desktop Entry]
Type=Application
Name=Virtual Machine Manager
Exec=virt-manager
EOF
%end # End of the %post section

View File

@ -1,52 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# 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
# 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 dhi.cfg -o ../leaves/flat-dhi.cfg
%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
%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies.
virt-manager # Install virt-manager, the graphical front-end for QEMU/KVM
gnome-initial-setup # Add GNOME initial setup too to let user create local account.
%end # End of the packages section
%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
[Desktop Entry]
Type=Application
Name=Virtual Machine Manager
Exec=virt-manager
EOF
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
[pages]
skip=privacy
[goa]
providers=local-first!
EOF
%end # End of the %post section

View File

@ -1,24 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
#
# 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
# 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 s.cfg -o ../leaves/flat-s.cfg
%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
%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

View File

@ -1,25 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
#
# 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
# 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 ../leaves/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

View File

@ -1,26 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
#
# 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
# 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 ../leaves/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

View File

@ -1,26 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
#
# 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
# 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 ../leaves/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

View File

@ -0,0 +1,288 @@
# Generated by pykickstart v3.58
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled --service=mdns
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
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
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
# Root password
rootpw --iscrypted --lock locked
# SELinux configuration
selinux --disabled
# System services
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# 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=512 --label=boot
part / --fstype="ext4" --grow --label=root
%post
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
echo "== RPM Fusion Nonfree: Base section =="
echo "Importing RPM Fusion keys"
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
echo "List of packages from RPM Fusion Nonfree:"
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
echo "List of incuded RPM Fusion packages with their size:"
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
echo
%end
%post --logfile=/opt/base.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 # Unsure it is actually useful
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
# [org.gnome.desktop.background]
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
# EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
audible-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-files=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
# 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
# Modify the default virt-manager behavior for misc. options
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
# Modify the default virt-manager behavior for misc. options
[org.virt-manager.virt-manager]
xmleditor-enabled=true
manager-window-height=600
manager-window-width=200
# Libvirt URIs listed in the manager window
[org.virt-manager.virt-manager.connections]
uris=['qemu:///system', 'qemu:///session']
autoconnect=['qemu:///session']
# Show usage in the domain list
[org.virt-manager.virt-manager.vmlist-fields]
cpu-usage=false
# Settings related to statistics
[org.virt-manager.virt-manager.stats]
update-interval=3
enable-disk-poll=true
enable-memory-poll=true
enable-net-poll=true
# Default behavior for the console
[org.virt-manager.virt-manager.console]
scaling=2
resize-guest=1
autoconnect=false
# Do not show toolbar
[org.virt-manager.virt-manager.details]
show-toolbar=false
# Modify default values for new VMs
[org.virt-manager.virt-manager.new-vm]
storage-format='raw'
cpu-default='host-model'
graphics-type='spice'
# Modify the default virt-manager behavior for confirmation dialogues
[org.virt-manager.virt-manager.confirm]
forcepoweroff=false
removedev=false
unapplied-dev=false
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
# 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
mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso images. SELinux is already taking this one into account.
# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/isos/ # fetch netboot.xyz iso and store it to the newly created iso directory
# # virsh commands fail in a kickstart environment (chroot or not it seems). would need to fetch a script and execute post-launch with a delay, for example using a systemd unit
# virsh pool-define-as isos dir - - - - /mnt/sysimage/var/lib/libvirt/isos/ # Make libvirt aware of this new directory by creating a so-called 'pool'.
# virsh pool-build isos # Build the pool
# virsh pool-start isos # Start it
# virsh pool-autostart isos # Set-it to autostart
# fetch custom script and make it executable
# wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
# chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/linux.xml
# virsh define linux.xml
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/windows.xml
# virsh define windows.xml
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-amdcpu.log
sed -i 's/\(quiet\)/\1 iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
echo "options kvm_amd nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-initial-setup-gnome.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
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
[pages]
skip=privacy
[goa]
providers=local-first!
EOF
%end
%packages --exclude-weakdeps
@core
@hardware-support
NetworkManager-wifi
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-initial-setup
gnome-shell
gnome-terminal
guestfs-tools
libguestfs-tools
libusb
libvirt
libvirt-daemon-config-network
libvirt-daemon-kvm
mesa-dri-drivers
mozilla-ublock-origin.noarch
nano
pciutils
python3-libguestfs
qemu-kvm
usbutils
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

View File

@ -0,0 +1,298 @@
# Generated by pykickstart v3.58
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled --service=mdns
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
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
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
# Root password
rootpw --iscrypted --lock locked
# SELinux configuration
selinux --disabled
# System services
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# 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=512 --label=boot
part / --fstype="ext4" --grow --label=root
%post
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
echo "== RPM Fusion Nonfree: Base section =="
echo "Importing RPM Fusion keys"
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
echo "List of packages from RPM Fusion Nonfree:"
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
echo "List of incuded RPM Fusion packages with their size:"
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
echo
%end
%post --logfile=/opt/base.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 # Unsure it is actually useful
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
# [org.gnome.desktop.background]
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
# EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
audible-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-files=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
# 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
# Modify the default virt-manager behavior for misc. options
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
# Modify the default virt-manager behavior for misc. options
[org.virt-manager.virt-manager]
xmleditor-enabled=true
manager-window-height=600
manager-window-width=200
# Libvirt URIs listed in the manager window
[org.virt-manager.virt-manager.connections]
uris=['qemu:///system', 'qemu:///session']
autoconnect=['qemu:///session']
# Show usage in the domain list
[org.virt-manager.virt-manager.vmlist-fields]
cpu-usage=false
# Settings related to statistics
[org.virt-manager.virt-manager.stats]
update-interval=3
enable-disk-poll=true
enable-memory-poll=true
enable-net-poll=true
# Default behavior for the console
[org.virt-manager.virt-manager.console]
scaling=2
resize-guest=1
autoconnect=false
# Do not show toolbar
[org.virt-manager.virt-manager.details]
show-toolbar=false
# Modify default values for new VMs
[org.virt-manager.virt-manager.new-vm]
storage-format='raw'
cpu-default='host-model'
graphics-type='spice'
# Modify the default virt-manager behavior for confirmation dialogues
[org.virt-manager.virt-manager.confirm]
forcepoweroff=false
removedev=false
unapplied-dev=false
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
# 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
mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso images. SELinux is already taking this one into account.
# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/isos/ # fetch netboot.xyz iso and store it to the newly created iso directory
# # virsh commands fail in a kickstart environment (chroot or not it seems). would need to fetch a script and execute post-launch with a delay, for example using a systemd unit
# virsh pool-define-as isos dir - - - - /mnt/sysimage/var/lib/libvirt/isos/ # Make libvirt aware of this new directory by creating a so-called 'pool'.
# virsh pool-build isos # Build the pool
# virsh pool-start isos # Start it
# virsh pool-autostart isos # Set-it to autostart
# fetch custom script and make it executable
# wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
# chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/linux.xml
# virsh define linux.xml
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/windows.xml
# virsh define windows.xml
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-intelcpu.log
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-intelgpu.log
sed -i 's/\(vfio-pci\)/\1 i915.enable_gvt=1/i' /mnt/sysimage/etc/default/grub # Load kernel modules in grub.
# Load extra kernel modules to enable vfio-mdev on selected hardware
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)
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-initial-setup-gnome.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
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
[pages]
skip=privacy
[goa]
providers=local-first!
EOF
%end
%packages --exclude-weakdeps
@core
@hardware-support
NetworkManager-wifi
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-initial-setup
gnome-shell
gnome-terminal
guestfs-tools
libguestfs-tools
libusb
libvirt
libvirt-daemon-config-network
libvirt-daemon-kvm
mesa-dri-drivers
mozilla-ublock-origin.noarch
nano
pciutils
python3-libguestfs
qemu-kvm
usbutils
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

View File

@ -0,0 +1,288 @@
# Generated by pykickstart v3.58
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled --service=mdns
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
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
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
# Root password
rootpw --iscrypted --lock locked
# SELinux configuration
selinux --disabled
# System services
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# 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=512 --label=boot
part / --fstype="ext4" --grow --label=root
%post
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
echo "== RPM Fusion Nonfree: Base section =="
echo "Importing RPM Fusion keys"
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
echo "List of packages from RPM Fusion Nonfree:"
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
echo "List of incuded RPM Fusion packages with their size:"
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
echo
%end
%post --logfile=/opt/base.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 # Unsure it is actually useful
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
# [org.gnome.desktop.background]
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
# EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
audible-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-files=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
# 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
# Modify the default virt-manager behavior for misc. options
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
# Modify the default virt-manager behavior for misc. options
[org.virt-manager.virt-manager]
xmleditor-enabled=true
manager-window-height=600
manager-window-width=200
# Libvirt URIs listed in the manager window
[org.virt-manager.virt-manager.connections]
uris=['qemu:///system', 'qemu:///session']
autoconnect=['qemu:///session']
# Show usage in the domain list
[org.virt-manager.virt-manager.vmlist-fields]
cpu-usage=false
# Settings related to statistics
[org.virt-manager.virt-manager.stats]
update-interval=3
enable-disk-poll=true
enable-memory-poll=true
enable-net-poll=true
# Default behavior for the console
[org.virt-manager.virt-manager.console]
scaling=2
resize-guest=1
autoconnect=false
# Do not show toolbar
[org.virt-manager.virt-manager.details]
show-toolbar=false
# Modify default values for new VMs
[org.virt-manager.virt-manager.new-vm]
storage-format='raw'
cpu-default='host-model'
graphics-type='spice'
# Modify the default virt-manager behavior for confirmation dialogues
[org.virt-manager.virt-manager.confirm]
forcepoweroff=false
removedev=false
unapplied-dev=false
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
# 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
mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso images. SELinux is already taking this one into account.
# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/isos/ # fetch netboot.xyz iso and store it to the newly created iso directory
# # virsh commands fail in a kickstart environment (chroot or not it seems). would need to fetch a script and execute post-launch with a delay, for example using a systemd unit
# virsh pool-define-as isos dir - - - - /mnt/sysimage/var/lib/libvirt/isos/ # Make libvirt aware of this new directory by creating a so-called 'pool'.
# virsh pool-build isos # Build the pool
# virsh pool-start isos # Start it
# virsh pool-autostart isos # Set-it to autostart
# fetch custom script and make it executable
# wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
# chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/linux.xml
# virsh define linux.xml
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/windows.xml
# virsh define windows.xml
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-intelcpu.log
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-initial-setup-gnome.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
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
[pages]
skip=privacy
[goa]
providers=local-first!
EOF
%end
%packages --exclude-weakdeps
@core
@hardware-support
NetworkManager-wifi
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-initial-setup
gnome-shell
gnome-terminal
guestfs-tools
libguestfs-tools
libusb
libvirt
libvirt-daemon-config-network
libvirt-daemon-kvm
mesa-dri-drivers
mozilla-ublock-origin.noarch
nano
pciutils
python3-libguestfs
qemu-kvm
usbutils
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

View File

@ -0,0 +1,280 @@
# Generated by pykickstart v3.58
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled --service=mdns
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
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
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
# Root password
rootpw --iscrypted --lock locked
# SELinux configuration
selinux --disabled
# System services
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# 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=512 --label=boot
part / --fstype="ext4" --grow --label=root
%post
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
echo "== RPM Fusion Nonfree: Base section =="
echo "Importing RPM Fusion keys"
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
echo "List of packages from RPM Fusion Nonfree:"
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
echo "List of incuded RPM Fusion packages with their size:"
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
echo
%end
%post --logfile=/opt/base.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 # Unsure it is actually useful
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
# [org.gnome.desktop.background]
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
# EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
audible-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-files=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
# 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
# Modify the default virt-manager behavior for misc. options
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
# Modify the default virt-manager behavior for misc. options
[org.virt-manager.virt-manager]
xmleditor-enabled=true
manager-window-height=600
manager-window-width=200
# Libvirt URIs listed in the manager window
[org.virt-manager.virt-manager.connections]
uris=['qemu:///system', 'qemu:///session']
autoconnect=['qemu:///session']
# Show usage in the domain list
[org.virt-manager.virt-manager.vmlist-fields]
cpu-usage=false
# Settings related to statistics
[org.virt-manager.virt-manager.stats]
update-interval=3
enable-disk-poll=true
enable-memory-poll=true
enable-net-poll=true
# Default behavior for the console
[org.virt-manager.virt-manager.console]
scaling=2
resize-guest=1
autoconnect=false
# Do not show toolbar
[org.virt-manager.virt-manager.details]
show-toolbar=false
# Modify default values for new VMs
[org.virt-manager.virt-manager.new-vm]
storage-format='raw'
cpu-default='host-model'
graphics-type='spice'
# Modify the default virt-manager behavior for confirmation dialogues
[org.virt-manager.virt-manager.confirm]
forcepoweroff=false
removedev=false
unapplied-dev=false
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
# 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
mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso images. SELinux is already taking this one into account.
# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/isos/ # fetch netboot.xyz iso and store it to the newly created iso directory
# # virsh commands fail in a kickstart environment (chroot or not it seems). would need to fetch a script and execute post-launch with a delay, for example using a systemd unit
# virsh pool-define-as isos dir - - - - /mnt/sysimage/var/lib/libvirt/isos/ # Make libvirt aware of this new directory by creating a so-called 'pool'.
# virsh pool-build isos # Build the pool
# virsh pool-start isos # Start it
# virsh pool-autostart isos # Set-it to autostart
# fetch custom script and make it executable
# wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
# chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/linux.xml
# virsh define linux.xml
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/windows.xml
# virsh define windows.xml
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-initial-setup-gnome.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
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
[pages]
skip=privacy
[goa]
providers=local-first!
EOF
%end
%packages --exclude-weakdeps
@core
@hardware-support
NetworkManager-wifi
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-initial-setup
gnome-shell
gnome-terminal
guestfs-tools
libguestfs-tools
libusb
libvirt
libvirt-daemon-config-network
libvirt-daemon-kvm
mesa-dri-drivers
mozilla-ublock-origin.noarch
nano
pciutils
python3-libguestfs
qemu-kvm
usbutils
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

177
dishes/desktop.cfg Normal file
View File

@ -0,0 +1,177 @@
# Generated by pykickstart v3.58
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled --service=mdns
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
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
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
# Root password
rootpw --iscrypted --lock locked
# SELinux configuration
selinux --disabled
# System services
services --disabled="sshd" --enabled="NetworkManager,chronyd,systemd-resolved"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# 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=512 --label=boot
part / --fstype="ext4" --grow --label=root
%post
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
echo "== RPM Fusion Nonfree: Base section =="
echo "Importing RPM Fusion keys"
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
echo "List of packages from RPM Fusion Nonfree:"
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
echo "List of incuded RPM Fusion packages with their size:"
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
echo
%end
%post --logfile=/opt/base.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 # Unsure it is actually useful
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
# [org.gnome.desktop.background]
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
# EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
audible-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-files=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-initial-setup-gnome.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
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
[pages]
skip=privacy
[goa]
providers=local-first!
EOF
%end
%packages --exclude-weakdeps
@core
@hardware-support
NetworkManager-wifi
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-initial-setup
gnome-shell
gnome-terminal
libusb
mesa-dri-drivers
mozilla-ublock-origin.noarch
nano
pciutils
usbutils
wget
wpa_supplicant
-fedora-logos
-fedora-release
-fedora-release-common
-fedora-release-identity-basic
-fedora-release-notes
-gnome-tour
%end

View File

@ -0,0 +1,147 @@
# Generated by pykickstart v3.47
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --disabled
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
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
# Root password
rootpw --plaintext carpediem
# SELinux configuration
selinux --disabled
# System services
services --disabled="sshd" --enabled="NetworkManager"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# 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 # Unsure it is actually useful
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
[org.gnome.desktop.background]
picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
audible-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-files=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@core
@hardware-support
NetworkManager-wifi
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-shell
gnome-terminal
mesa-dri-drivers
mozilla-ublock-origin.noarch
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

View File

@ -0,0 +1,66 @@
# Generated by pykickstart v3.47
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --disabled
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
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
# Root password
rootpw --plaintext carpediem
# SELinux configuration
selinux --disabled
# System services
services --disabled="sshd" --enabled="NetworkManager"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# 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 # Unsure it is actually useful
%end
%packages --exclude-weakdeps
@core
@hardware-support
fedora-remix-logos
generic-logos
generic-release
generic-release-common
generic-release-notes
nano
neofetch
pciutils
qemu-guest-agent
spice-vdagent
wget
-fedora-logos
-fedora-release
-fedora-release-common
-fedora-release-identity-basic
-fedora-release-notes
%end

View File

@ -0,0 +1,212 @@
# Generated by pykickstart v3.47
#version=DEVEL
# Firewall configuration
firewall --enabled --service=mdns
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
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
# Root password
rootpw --iscrypted --lock locked
# SELinux configuration
selinux --disabled
# System services
services --disabled="sshd" --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=none
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part / --fstype="ext4" --size=5120
part / --size=7750
%post
# Enable livesys services
systemctl enable livesys.service
systemctl enable livesys-late.service
# 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
systemctl disable network
# Remove machine-id on pre generated images
rm -f /etc/machine-id
touch /etc/machine-id
# set livesys session type
sed -i 's/^livesys_session=.*/livesys_session="gnome"/' /etc/sysconfig/livesys
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
[org.gnome.desktop.background]
picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
audible-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-files=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@anaconda-tools
@core
@hardware-support
NetworkManager-wifi
aajohan-comfortaa-fonts
dejavu-sans-mono-fonts
dracut-live
fedora-remix-logos
firefox
generic-logos
generic-release
generic-release-common
generic-release-notes
glibc-all-langpacks
gnome-backgrounds.noarch
gnome-shell
gnome-terminal
grub2-common.noarch
grub2-efi-ia32
grub2-efi-x64
grub2-efi-x64-cdboot
grub2-pc-modules.noarch
grub2-tools
grub2-tools-efi
grub2-tools-extra
grub2-tools-minimal
grubby
kernel
kernel-modules
kernel-modules-extra
libusb
livesys-scripts
mesa-dri-drivers
mozilla-ublock-origin.noarch
nano
neofetch
pciutils
usbutils
wget
wpa_supplicant
-device-mapper-multipath
-fcoe-utils
-fedora-logos
-fedora-release
-fedora-release-common
-fedora-release-identity-basic
-fedora-release-notes
-gnome-tour
%end

View File

@ -0,0 +1,326 @@
# Generated by pykickstart v3.47
#version=DEVEL
# Firewall configuration
firewall --enabled
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
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
# Root password
rootpw --iscrypted --lock locked
# SELinux configuration
selinux --disabled
# System services
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part / --size=5120
%post
# Enable livesys services
# systemctl enable livesys.service
# systemctl enable livesys-late.service
# 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
systemctl disable network
# Remove machine-id on pre generated images
rm -f /etc/machine-id
touch /etc/machine-id
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
[org.gnome.desktop.background]
picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
audible-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-files=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
# 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
# Modify the default virt-manager behavior for misc. options
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
# Modify the default virt-manager behavior for misc. options
[org.virt-manager.virt-manager]
xmleditor-enabled=true
manager-window-height=600
manager-window-width=200
# Libvirt URIs listed in the manager window
[org.virt-manager.virt-manager.connections]
uris=['qemu:///system', 'qemu:///session']
autoconnect=['qemu:///session']
# Show usage in the domain list
[org.virt-manager.virt-manager.vmlist-fields]
cpu-usage=false
# Settings related to statistics
[org.virt-manager.virt-manager.stats]
update-interval=3
enable-disk-poll=true
enable-memory-poll=true
enable-net-poll=true
# Default behavior for the console
[org.virt-manager.virt-manager.console]
scaling=2
resize-guest=1
autoconnect=false
# Do not show toolbar
[org.virt-manager.virt-manager.details]
show-toolbar=false
# Modify default values for new VMs
[org.virt-manager.virt-manager.new-vm]
storage-format='raw'
cpu-default='host-model'
graphics-type='spice'
# Modify the default virt-manager behavior for confirmation dialogues
[org.virt-manager.virt-manager.confirm]
forcepoweroff=false
removedev=false
unapplied-dev=false
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --logfile=/opt/live-desktop-quirks.log
cat >> /etc/rc.d/init.d/livesys << EOF
# set up auto-login
cat > /etc/gdm/custom.conf << FOE
[daemon]
AutomaticLoginEnable=True
AutomaticLogin=liveuser
FOE
# 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/opt/base-hypervisor.log
# 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
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/ # fetch netboot.xyz iso and store it to the newly created iso directory
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/create-generic-vm-virtio-spice.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/create-generic-vm-virtio-spice.sh
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-server.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-server.sh
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-workstation.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-workstation.sh
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-phyllome-desktop.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/deploy-phyllome-desktop.sh
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-amdcpu.log
sed -i 's/\(quiet\)/\1 iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
echo "options kvm_amd nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
%end
%packages --exclude-weakdeps
@core
@hardware-support
NetworkManager-wifi
aajohan-comfortaa-fonts
dejavu-sans-mono-fonts
dracut-live
fedora-remix-logos
firefox
generic-logos
generic-release
generic-release-common
generic-release-notes
glibc-all-langpacks
gnome-backgrounds.noarch
gnome-shell
gnome-terminal
guestfs-tools
kernel
kernel-modules
kernel-modules-extra
libguestfs-tools
libusb
libvirt
libvirt-daemon-config-network
libvirt-daemon-kvm
livesys-scripts
mesa-dri-drivers
mozilla-ublock-origin.noarch
nano
neofetch
pciutils
python3-libguestfs
qemu-kvm
usbutils
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

View File

@ -0,0 +1,343 @@
# Generated by pykickstart v3.58
#version=DEVEL
# Firewall configuration
firewall --enabled --service=mdns
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
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
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
# Root password
rootpw --iscrypted --lock locked
# SELinux configuration
selinux --disabled
# System services
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=none
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part / --size=7750
part / --fstype="ext4" --size=5120
%post
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
echo "== RPM Fusion Nonfree: Base section =="
echo "Importing RPM Fusion keys"
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
echo "List of packages from RPM Fusion Nonfree:"
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
echo "List of incuded RPM Fusion packages with their size:"
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
echo
%end
%post
# Enable livesys services
systemctl enable livesys.service
systemctl enable livesys-late.service
# 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
systemctl disable network
# Remove machine-id on pre generated images
rm -f /etc/machine-id
touch /etc/machine-id
# set livesys session type
sed -i 's/^livesys_session=.*/livesys_session="gnome"/' /etc/sysconfig/livesys
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
# [org.gnome.desktop.background]
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
# EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
audible-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-files=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
# 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
# Modify the default virt-manager behavior for misc. options
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
# Modify the default virt-manager behavior for misc. options
[org.virt-manager.virt-manager]
xmleditor-enabled=true
manager-window-height=600
manager-window-width=200
# Libvirt URIs listed in the manager window
[org.virt-manager.virt-manager.connections]
uris=['qemu:///system', 'qemu:///session']
autoconnect=['qemu:///session']
# Show usage in the domain list
[org.virt-manager.virt-manager.vmlist-fields]
cpu-usage=false
# Settings related to statistics
[org.virt-manager.virt-manager.stats]
update-interval=3
enable-disk-poll=true
enable-memory-poll=true
enable-net-poll=true
# Default behavior for the console
[org.virt-manager.virt-manager.console]
scaling=2
resize-guest=1
autoconnect=false
# Do not show toolbar
[org.virt-manager.virt-manager.details]
show-toolbar=false
# Modify default values for new VMs
[org.virt-manager.virt-manager.new-vm]
storage-format='raw'
cpu-default='host-model'
graphics-type='spice'
# Modify the default virt-manager behavior for confirmation dialogues
[org.virt-manager.virt-manager.confirm]
forcepoweroff=false
removedev=false
unapplied-dev=false
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
# 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
mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso images. SELinux is already taking this one into account.
# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/isos/ # fetch netboot.xyz iso and store it to the newly created iso directory
# # virsh commands fail in a kickstart environment (chroot or not it seems). would need to fetch a script and execute post-launch with a delay, for example using a systemd unit
# virsh pool-define-as isos dir - - - - /mnt/sysimage/var/lib/libvirt/isos/ # Make libvirt aware of this new directory by creating a so-called 'pool'.
# virsh pool-build isos # Build the pool
# virsh pool-start isos # Start it
# virsh pool-autostart isos # Set-it to autostart
# fetch custom script and make it executable
# wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
# chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/linux.xml
# virsh define linux.xml
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/windows.xml
# virsh define windows.xml
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-intelcpu.log
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-intelgpu.log
sed -i 's/\(vfio-pci\)/\1 i915.enable_gvt=1/i' /mnt/sysimage/etc/default/grub # Load kernel modules in grub.
# Load extra kernel modules to enable vfio-mdev on selected hardware
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)
%end
%packages --exclude-weakdeps
@core
@hardware-support
NetworkManager-wifi
aajohan-comfortaa-fonts
dejavu-sans-mono-fonts
dracut-live
fedora-remix-logos
firefox
generic-logos
generic-release
generic-release-common
generic-release-notes
glibc-all-langpacks
gnome-backgrounds.noarch
gnome-shell
gnome-terminal
grub2-common.noarch
grub2-efi-ia32
grub2-efi-x64
grub2-efi-x64-cdboot
grub2-pc-modules.noarch
grub2-tools
grub2-tools-efi
grub2-tools-extra
grub2-tools-minimal
grubby
guestfs-tools
kernel
kernel-modules
kernel-modules-extra
libguestfs-tools
libusb
libvirt
libvirt-daemon-config-network
libvirt-daemon-kvm
livesys-scripts
mesa-dri-drivers
mozilla-ublock-origin.noarch
nano
neofetch
pciutils
python3-libguestfs
qemu-kvm
usbutils
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

View File

@ -0,0 +1,333 @@
# Generated by pykickstart v3.58
#version=DEVEL
# Firewall configuration
firewall --enabled --service=mdns
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
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
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
# Root password
rootpw --iscrypted --lock locked
# SELinux configuration
selinux --disabled
# System services
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=none
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part / --size=7750
part / --fstype="ext4" --size=5120
%post
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
echo "== RPM Fusion Nonfree: Base section =="
echo "Importing RPM Fusion keys"
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
echo "List of packages from RPM Fusion Nonfree:"
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
echo "List of incuded RPM Fusion packages with their size:"
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
echo
%end
%post
# Enable livesys services
systemctl enable livesys.service
systemctl enable livesys-late.service
# 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
systemctl disable network
# Remove machine-id on pre generated images
rm -f /etc/machine-id
touch /etc/machine-id
# set livesys session type
sed -i 's/^livesys_session=.*/livesys_session="gnome"/' /etc/sysconfig/livesys
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
# [org.gnome.desktop.background]
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
# EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
audible-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-files=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
# 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
# Modify the default virt-manager behavior for misc. options
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
# Modify the default virt-manager behavior for misc. options
[org.virt-manager.virt-manager]
xmleditor-enabled=true
manager-window-height=600
manager-window-width=200
# Libvirt URIs listed in the manager window
[org.virt-manager.virt-manager.connections]
uris=['qemu:///system', 'qemu:///session']
autoconnect=['qemu:///session']
# Show usage in the domain list
[org.virt-manager.virt-manager.vmlist-fields]
cpu-usage=false
# Settings related to statistics
[org.virt-manager.virt-manager.stats]
update-interval=3
enable-disk-poll=true
enable-memory-poll=true
enable-net-poll=true
# Default behavior for the console
[org.virt-manager.virt-manager.console]
scaling=2
resize-guest=1
autoconnect=false
# Do not show toolbar
[org.virt-manager.virt-manager.details]
show-toolbar=false
# Modify default values for new VMs
[org.virt-manager.virt-manager.new-vm]
storage-format='raw'
cpu-default='host-model'
graphics-type='spice'
# Modify the default virt-manager behavior for confirmation dialogues
[org.virt-manager.virt-manager.confirm]
forcepoweroff=false
removedev=false
unapplied-dev=false
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
# 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
mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso images. SELinux is already taking this one into account.
# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/isos/ # fetch netboot.xyz iso and store it to the newly created iso directory
# # virsh commands fail in a kickstart environment (chroot or not it seems). would need to fetch a script and execute post-launch with a delay, for example using a systemd unit
# virsh pool-define-as isos dir - - - - /mnt/sysimage/var/lib/libvirt/isos/ # Make libvirt aware of this new directory by creating a so-called 'pool'.
# virsh pool-build isos # Build the pool
# virsh pool-start isos # Start it
# virsh pool-autostart isos # Set-it to autostart
# fetch custom script and make it executable
# wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
# chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/linux.xml
# virsh define linux.xml
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/windows.xml
# virsh define windows.xml
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-intelcpu.log
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
%end
%packages --exclude-weakdeps
@core
@hardware-support
NetworkManager-wifi
aajohan-comfortaa-fonts
dejavu-sans-mono-fonts
dracut-live
fedora-remix-logos
firefox
generic-logos
generic-release
generic-release-common
generic-release-notes
glibc-all-langpacks
gnome-backgrounds.noarch
gnome-shell
gnome-terminal
grub2-common.noarch
grub2-efi-ia32
grub2-efi-x64
grub2-efi-x64-cdboot
grub2-pc-modules.noarch
grub2-tools
grub2-tools-efi
grub2-tools-extra
grub2-tools-minimal
grubby
guestfs-tools
kernel
kernel-modules
kernel-modules-extra
libguestfs-tools
libusb
libvirt
libvirt-daemon-config-network
libvirt-daemon-kvm
livesys-scripts
mesa-dri-drivers
mozilla-ublock-origin.noarch
nano
neofetch
pciutils
python3-libguestfs
qemu-kvm
usbutils
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

View File

@ -0,0 +1,325 @@
# Generated by pykickstart v3.58
#version=DEVEL
# Firewall configuration
firewall --enabled --service=mdns
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
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
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
# Root password
rootpw --iscrypted --lock locked
# SELinux configuration
selinux --disabled
# System services
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=none
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part / --size=7750
part / --fstype="ext4" --size=5120
%post
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
echo "== RPM Fusion Nonfree: Base section =="
echo "Importing RPM Fusion keys"
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
echo "List of packages from RPM Fusion Nonfree:"
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
echo "List of incuded RPM Fusion packages with their size:"
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
echo
%end
%post
# Enable livesys services
systemctl enable livesys.service
systemctl enable livesys-late.service
# 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
systemctl disable network
# Remove machine-id on pre generated images
rm -f /etc/machine-id
touch /etc/machine-id
# set livesys session type
sed -i 's/^livesys_session=.*/livesys_session="gnome"/' /etc/sysconfig/livesys
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
# [org.gnome.desktop.background]
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
# EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
audible-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-files=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
# 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
# Modify the default virt-manager behavior for misc. options
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
# Modify the default virt-manager behavior for misc. options
[org.virt-manager.virt-manager]
xmleditor-enabled=true
manager-window-height=600
manager-window-width=200
# Libvirt URIs listed in the manager window
[org.virt-manager.virt-manager.connections]
uris=['qemu:///system', 'qemu:///session']
autoconnect=['qemu:///session']
# Show usage in the domain list
[org.virt-manager.virt-manager.vmlist-fields]
cpu-usage=false
# Settings related to statistics
[org.virt-manager.virt-manager.stats]
update-interval=3
enable-disk-poll=true
enable-memory-poll=true
enable-net-poll=true
# Default behavior for the console
[org.virt-manager.virt-manager.console]
scaling=2
resize-guest=1
autoconnect=false
# Do not show toolbar
[org.virt-manager.virt-manager.details]
show-toolbar=false
# Modify default values for new VMs
[org.virt-manager.virt-manager.new-vm]
storage-format='raw'
cpu-default='host-model'
graphics-type='spice'
# Modify the default virt-manager behavior for confirmation dialogues
[org.virt-manager.virt-manager.confirm]
forcepoweroff=false
removedev=false
unapplied-dev=false
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
# 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
mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso images. SELinux is already taking this one into account.
# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/isos/ # fetch netboot.xyz iso and store it to the newly created iso directory
# # virsh commands fail in a kickstart environment (chroot or not it seems). would need to fetch a script and execute post-launch with a delay, for example using a systemd unit
# virsh pool-define-as isos dir - - - - /mnt/sysimage/var/lib/libvirt/isos/ # Make libvirt aware of this new directory by creating a so-called 'pool'.
# virsh pool-build isos # Build the pool
# virsh pool-start isos # Start it
# virsh pool-autostart isos # Set-it to autostart
# fetch custom script and make it executable
# wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
# chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/linux.xml
# virsh define linux.xml
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/windows.xml
# virsh define windows.xml
%end
%packages --exclude-weakdeps
@core
@hardware-support
NetworkManager-wifi
aajohan-comfortaa-fonts
dejavu-sans-mono-fonts
dracut-live
fedora-remix-logos
firefox
generic-logos
generic-release
generic-release-common
generic-release-notes
glibc-all-langpacks
gnome-backgrounds.noarch
gnome-shell
gnome-terminal
grub2-common.noarch
grub2-efi-ia32
grub2-efi-x64
grub2-efi-x64-cdboot
grub2-pc-modules.noarch
grub2-tools
grub2-tools-efi
grub2-tools-extra
grub2-tools-minimal
grubby
guestfs-tools
kernel
kernel-modules
kernel-modules-extra
libguestfs-tools
libusb
libvirt
libvirt-daemon-config-network
libvirt-daemon-kvm
livesys-scripts
mesa-dri-drivers
mozilla-ublock-origin.noarch
nano
neofetch
pciutils
python3-libguestfs
qemu-kvm
usbutils
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

224
dishes/live-desktop.cfg Normal file
View File

@ -0,0 +1,224 @@
# Generated by pykickstart v3.58
#version=DEVEL
# Firewall configuration
firewall --enabled --service=mdns
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
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
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
# Root password
rootpw --iscrypted --lock locked
# SELinux configuration
selinux --disabled
# System services
services --disabled="sshd" --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=none
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part / --fstype="ext4" --size=5120
part / --size=7750
%post
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
echo "== RPM Fusion Nonfree: Base section =="
echo "Importing RPM Fusion keys"
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
echo "List of packages from RPM Fusion Nonfree:"
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
echo "List of incuded RPM Fusion packages with their size:"
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
echo
%end
%post
# Enable livesys services
systemctl enable livesys.service
systemctl enable livesys-late.service
# 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
systemctl disable network
# Remove machine-id on pre generated images
rm -f /etc/machine-id
touch /etc/machine-id
# set livesys session type
sed -i 's/^livesys_session=.*/livesys_session="gnome"/' /etc/sysconfig/livesys
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
# [org.gnome.desktop.background]
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
# EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
audible-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-files=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@core
@hardware-support
NetworkManager-wifi
aajohan-comfortaa-fonts
dejavu-sans-mono-fonts
dracut-live
fedora-remix-logos
firefox
generic-logos
generic-release
generic-release-common
generic-release-notes
glibc-all-langpacks
gnome-backgrounds.noarch
gnome-shell
gnome-terminal
grub2-common.noarch
grub2-efi-ia32
grub2-efi-x64
grub2-efi-x64-cdboot
grub2-pc-modules.noarch
grub2-tools
grub2-tools-efi
grub2-tools-extra
grub2-tools-minimal
grubby
kernel
kernel-modules
kernel-modules-extra
libusb
livesys-scripts
mesa-dri-drivers
mozilla-ublock-origin.noarch
nano
neofetch
pciutils
usbutils
wget
wpa_supplicant
-fedora-logos
-fedora-release
-fedora-release-common
-fedora-release-identity-basic
-fedora-release-notes
-gnome-tour
%end

View File

@ -22,6 +22,8 @@ repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?
timezone Europe/Paris --utc timezone Europe/Paris --utc
# SELinux configuration # SELinux configuration
selinux --enforcing selinux --enforcing
# System services
services --enabled="NetworkManager,libvirtd"
# System bootloader configuration # System bootloader configuration
bootloader --location=none bootloader --location=none
# Clear the Master Boot Record # Clear the Master Boot Record
@ -293,7 +295,7 @@ touch /etc/machine-id
%end %end
%post --nochroot %post --nochroot --logfile=/mnt/sysimage/opt/base-live.log
# For livecd-creator builds only (lorax/livemedia-creator handles this directly) # For livecd-creator builds only (lorax/livemedia-creator handles this directly)
if [ -n "$LIVE_ROOT" ]; then if [ -n "$LIVE_ROOT" ]; then
cp "$INSTALL_ROOT"/usr/share/licenses/*-release-common/* "$LIVE_ROOT/" cp "$INSTALL_ROOT"/usr/share/licenses/*-release-common/* "$LIVE_ROOT/"
@ -307,73 +309,142 @@ fi
%end %end
%post --logfile=/root/ld.log %post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
[org.gnome.desktop.background]
picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
audible-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-files=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
# 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
# Modify the default virt-manager behavior for misc. options
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
# Modify the default virt-manager behavior for misc. options
[org.virt-manager.virt-manager]
xmleditor-enabled=true
manager-window-height=600
manager-window-width=200
# Libvirt URIs listed in the manager window
[org.virt-manager.virt-manager.connections]
uris=['qemu:///system', 'qemu:///session']
autoconnect=['qemu:///session']
# Show usage in the domain list
[org.virt-manager.virt-manager.vmlist-fields]
cpu-usage=false
# Settings related to statistics
[org.virt-manager.virt-manager.stats]
update-interval=3
enable-disk-poll=true
enable-memory-poll=true
enable-net-poll=true
# Default behavior for the console
[org.virt-manager.virt-manager.console]
scaling=2
resize-guest=1
autoconnect=false
# Do not show toolbar
[org.virt-manager.virt-manager.details]
show-toolbar=false
# Modify default values for new VMs
[org.virt-manager.virt-manager.new-vm]
storage-format='raw'
cpu-default='host-model'
graphics-type='spice'
# Modify the default virt-manager behavior for confirmation dialogues
[org.virt-manager.virt-manager.confirm]
forcepoweroff=false
removedev=false
unapplied-dev=false
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --logfile=/opt/live-desktop-quirks.log
cat >> /etc/rc.d/init.d/livesys << EOF 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
# cat >> /usr/share/gnome-shell/search-providers/org.gnome.Software-search-provider.ini << FOE
# DefaultDisabled=true
# 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 # set up auto-login
cat > /etc/gdm/custom.conf << FOE cat > /etc/gdm/custom.conf << FOE
[daemon] [daemon]
@ -381,12 +452,7 @@ AutomaticLoginEnable=True
AutomaticLogin=liveuser AutomaticLogin=liveuser
FOE FOE
# Turn off PackageKit-command-not-found while uninstalled # Make sure to set the right permissions and selinux contexts
# 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/ chown -R liveuser:liveuser /home/liveuser/
restorecon -R /home/liveuser/ restorecon -R /home/liveuser/
@ -394,95 +460,44 @@ EOF
%end %end
%post --logfile=/root/bhl.log %post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
mkdir /var/lib/libvirt/iso # Create a directory to store iso images
wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /var/lib/libvirt/iso/ # fetch netboot.xyz iso
# fetch custom script and make it executable
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/configure-vmm-and-desktop.sh -P /usr/sbin/
chmod +x /usr/sbin/configure-vmm-and-desktop.sh
# fetch custom script and make it executable
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/create-live-vm.sh -P /usr/sbin/
chmod +x /usr/sbin/create-live-vm.sh
# fetch custom script and make it executable
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/virtualization-tweaks-root-needed.sh -P /usr/sbin/
chmod +x /usr/sbin/virtualization-tweaks-root-needed.sh
# # Create new file /etc/systemd/system/postinstall.service using cat:
# cat > /etc/systemd/system/post-install.service<< EOF
# [Unit]
# Description=Post-installation configuration for Phyllome OS
# After=gdm.service
# Requires=gdm.service
#
# [Service]
# Type=oneshot
# ExecStart=/bin/bash /usr/sbin/post-install.sh
# RemainAfterExit=yes
#
# [Install]
# WantedBy=multi-user.target
# EOF
#
# systemctl enable /etc/systemd/system/post-install.service # Enable systemd unit
# 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 so that it could regardless of the name of the ethernet device
# nmcli con up br0
%end
%post --logfile=/root/blhi.log
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci i915.enable_gvt=1/i' /etc/default/grub # Load kernel modules in grub.
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd # Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
echo "vfio" > /etc/modules-load.d/vfio.conf echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
echo "vfio-pci" > /etc/modules-load.d/vfio-pci.conf echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf
echo "vfio_iommu_type1" > /etc/modules-load.d/vfio_iommu_type1.conf echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf
echo "vfio_virqfd" > /etc/modules-load.d/vfio_virqfd.conf echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf
echo "kvmgt" > /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" > /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" >> /etc/modprobe.d/kvm.conf # Add support for nested-virtualization mkdir /mnt/sysimage/var/lib/libvirt/iso # Create a directory to store iso images
# The following part seems useless wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/iso/ # fetch netboot.xyz iso and store it to the newly created iso directory
# 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 /usr/bin/dracut
# The following part seems useless too. No need to regenerate grub # fetch custom script and make it executable
# grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub. Does it fail ? /usr/sbin/grub2-probe: error: failed to get canonical path of `LiveOS_rootfs'. wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/create-generic-vm-virtio-spice.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/create-generic-vm-virtio-spice.sh
%end # fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-server.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-server.sh
%post --logfile=/root/ldhi.log # fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-workstation.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-workstation.sh
usermod -a -G libvirt liveuser # Make user "liveuser" part of the existing libvirt group to allow it to interact with the guest-hypervisor. # fetch custom script and make it executable
chown liveuser:liveuser /var/lib/libvirt/iso # Make the user "liveuser" the owner of this directory wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-phyllome-desktop.sh -P /mnt/sysimage/usr/local/bin/
chown liveuser:liveuser /var/lib/libvirt/images # Make the user "test" the owner of this directory chmod +x /mnt/sysimage/usr/local/bin/deploy-phyllome-desktop.sh
# Create a file to autostart virt-manager # fetch custom script and make it executable
cat > /etc/xdg/autostart/virt-manager.desktop << EOF wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
[Desktop Entry] chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
Type=Application
Name=Virtual Machine Manager
Exec=virt-manager
EOF
%end %end
%packages --exclude-weakdeps %packages --exclude-weakdeps
@anaconda-tools @anaconda-tools
@x86-baremetal-tools @x86-baremetal-tools
NetworkManager-wifi
aajohan-comfortaa-fonts aajohan-comfortaa-fonts
anaconda anaconda
anaconda-install-env-deps anaconda-install-env-deps
@ -490,7 +505,7 @@ anaconda-live
chkconfig chkconfig
dejavu-sans-mono-fonts dejavu-sans-mono-fonts
dracut-live dracut-live
elementary-wallpapers-gnome.noarch gnome-backgrounds.noarch
glibc-all-langpacks glibc-all-langpacks
gnome-shell gnome-shell
gnome-terminal gnome-terminal
@ -503,6 +518,7 @@ libguestfs-tools
libvirt libvirt
libvirt-daemon-config-network libvirt-daemon-config-network
libvirt-daemon-kvm libvirt-daemon-kvm
mesa-dri-drivers
nano nano
python3-libguestfs python3-libguestfs
qemu-kvm qemu-kvm

View File

@ -22,6 +22,8 @@ repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?
timezone Europe/Paris --utc timezone Europe/Paris --utc
# SELinux configuration # SELinux configuration
selinux --enforcing selinux --enforcing
# System services
services --enabled="NetworkManager,libvirtd"
# System bootloader configuration # System bootloader configuration
bootloader --location=none bootloader --location=none
# Clear the Master Boot Record # Clear the Master Boot Record
@ -293,7 +295,7 @@ touch /etc/machine-id
%end %end
%post --nochroot %post --nochroot --logfile=/mnt/sysimage/opt/base-live.log
# For livecd-creator builds only (lorax/livemedia-creator handles this directly) # For livecd-creator builds only (lorax/livemedia-creator handles this directly)
if [ -n "$LIVE_ROOT" ]; then if [ -n "$LIVE_ROOT" ]; then
cp "$INSTALL_ROOT"/usr/share/licenses/*-release-common/* "$LIVE_ROOT/" cp "$INSTALL_ROOT"/usr/share/licenses/*-release-common/* "$LIVE_ROOT/"
@ -307,73 +309,142 @@ fi
%end %end
%post --logfile=/root/ld.log %post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
[org.gnome.desktop.background]
picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
audible-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-files=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
# 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
# Modify the default virt-manager behavior for misc. options
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
# Modify the default virt-manager behavior for misc. options
[org.virt-manager.virt-manager]
xmleditor-enabled=true
manager-window-height=600
manager-window-width=200
# Libvirt URIs listed in the manager window
[org.virt-manager.virt-manager.connections]
uris=['qemu:///system', 'qemu:///session']
autoconnect=['qemu:///session']
# Show usage in the domain list
[org.virt-manager.virt-manager.vmlist-fields]
cpu-usage=false
# Settings related to statistics
[org.virt-manager.virt-manager.stats]
update-interval=3
enable-disk-poll=true
enable-memory-poll=true
enable-net-poll=true
# Default behavior for the console
[org.virt-manager.virt-manager.console]
scaling=2
resize-guest=1
autoconnect=false
# Do not show toolbar
[org.virt-manager.virt-manager.details]
show-toolbar=false
# Modify default values for new VMs
[org.virt-manager.virt-manager.new-vm]
storage-format='raw'
cpu-default='host-model'
graphics-type='spice'
# Modify the default virt-manager behavior for confirmation dialogues
[org.virt-manager.virt-manager.confirm]
forcepoweroff=false
removedev=false
unapplied-dev=false
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --logfile=/opt/live-desktop-quirks.log
cat >> /etc/rc.d/init.d/livesys << EOF 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
# cat >> /usr/share/gnome-shell/search-providers/org.gnome.Software-search-provider.ini << FOE
# DefaultDisabled=true
# 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 # set up auto-login
cat > /etc/gdm/custom.conf << FOE cat > /etc/gdm/custom.conf << FOE
[daemon] [daemon]
@ -381,12 +452,7 @@ AutomaticLoginEnable=True
AutomaticLogin=liveuser AutomaticLogin=liveuser
FOE FOE
# Turn off PackageKit-command-not-found while uninstalled # Make sure to set the right permissions and selinux contexts
# 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/ chown -R liveuser:liveuser /home/liveuser/
restorecon -R /home/liveuser/ restorecon -R /home/liveuser/
@ -394,6 +460,40 @@ EOF
%end %end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
# 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
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/ # fetch netboot.xyz iso and store it to the newly created iso directory
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/create-generic-vm-virtio-spice.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/create-generic-vm-virtio-spice.sh
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-server_1vCPU_2GB-RAM_5GB-disk.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-server_1vCPU_2GB-RAM_5GB-disk.sh
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-workstation_2vCPU_4GB-RAM_10GB-disk.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-workstation_2vCPU_4GB-RAM_10GB-disk.sh
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-phyllome-desktop_4vCPU_8GB-RAM_20GB-disk.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/deploy-phyllome-desktop_4vCPU_8GB-RAM_20GB-disk.sh
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
%end
%packages --exclude-weakdeps %packages --exclude-weakdeps
@anaconda-tools @anaconda-tools
@x86-baremetal-tools @x86-baremetal-tools
@ -404,15 +504,26 @@ anaconda-live
chkconfig chkconfig
dejavu-sans-mono-fonts dejavu-sans-mono-fonts
dracut-live dracut-live
elementary-wallpapers-gnome.noarch gnome-backgrounds.noarch
glibc-all-langpacks glibc-all-langpacks
gnome-shell gnome-shell
gnome-terminal gnome-terminal
guestfs-tools
initscripts initscripts
kernel kernel
kernel-modules kernel-modules
kernel-modules-extra kernel-modules-extra
libguestfs-tools
libvirt
libvirt-daemon-config-network
libvirt-daemon-kvm
mesa-dri-drivers
nano nano
python3-libguestfs
qemu-kvm
virt-install
virt-manager
virt-top
wpa_supplicant wpa_supplicant
-device-mapper-multipath -device-mapper-multipath
-fcoe-utils -fcoe-utils

View File

@ -1,7 +1,5 @@
# Generated by pykickstart v3.34 # Generated by pykickstart v3.34
#version=DEVEL #version=DEVEL
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# Keyboard layouts # Keyboard layouts
keyboard --xlayouts='ch (fr)' keyboard --xlayouts='ch (fr)'
# Root password # Root password
@ -22,10 +20,12 @@ repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?r
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
# System timezone # System timezone
timezone Europe/Paris --utc timezone Europe/Paris --utc
# Run the Setup Agent on first boot
firstboot --reconfig
# SELinux configuration # SELinux configuration
selinux --enforcing selinux --enforcing
# System services # System services
services --disabled="sshd" --enabled="NetworkManager,libvirtd" services --disabled="sshd" --enabled="NetworkManager"
# System bootloader configuration # System bootloader configuration
bootloader --location=mbr --timeout=1 bootloader --location=mbr --timeout=1
# Clear the Master Boot Record # Clear the Master Boot Record
@ -37,7 +37,7 @@ part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt
part /boot --fstype="ext4" --size=384 --label=boot part /boot --fstype="ext4" --size=384 --label=boot
part / --fstype="ext4" --grow --label=root part / --fstype="ext4" --grow --label=root
%post --logfile=/root/b.log %post --logfile=/root/bnd.log
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked. localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
dnf update -y # Update the system dnf update -y # Update the system
@ -45,40 +45,58 @@ grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub otherwise the system won't
%end %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 %packages --exclude-weakdeps
@core NetworkManager
@hardware-support audit
dejavu-sans-mono-fonts basesystem
elementary-wallpapers-gnome.noarch bash
coreutils
curl
dhcp-client
dnf
dnf-plugins-core
dracut-config-rescue
e2fsprogs
efibootmgr
fedora-remix-logos fedora-remix-logos
generic-logos fedora-repos-modular
filesystem
firewalld
generic-release generic-release
generic-release-common generic-release-common
generic-release-notes generic-release-notes
gnome-initial-setup glibc
gnome-shell glibc-minimal-langpack
gnome-terminal hostname
nano initial-setup
neofetch iproute
iputils
kbd
kernel
less
man-db
ncurses
parted
passwd
pciutils pciutils
qemu-guest-agent plymouth
spice-vdagent policycoreutils
wget procps-ng
wpa_supplicant rootfiles
-fedora-logos rpm
selinux-policy-targeted
setup
shadow-utils
sudo
systemd
systemd-oomd-defaults
systemd-resolved
util-linux
vim-minimal
yum
zram-generator-defaults
-fedora-release -fedora-release
-fedora-release-common -fedora-release-common
-fedora-release-identity-basic -fedora-release-identity-basic
-fedora-release-notes
-gnome-tour
%end %end

118
dishes/nano.cfg Normal file
View File

@ -0,0 +1,118 @@
# Generated by pykickstart v3.58
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
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
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
# Root password
rootpw --iscrypted --lock locked
# SELinux configuration
selinux --disabled
# System services
services --disabled="sshd" --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# 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=512 --label=boot
part / --fstype="ext4" --grow --label=root
%post
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
echo "== RPM Fusion Nonfree: Base section =="
echo "Importing RPM Fusion keys"
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
echo "List of packages from RPM Fusion Nonfree:"
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
echo "List of incuded RPM Fusion packages with their size:"
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
echo
%end
%post --logfile=/root/bnd.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
%end
%packages --exclude-weakdeps
NetworkManager
audit
basesystem
bash
coreutils
curl
dhcp-client
dnf
dnf-plugins-core
dracut-config-rescue
e2fsprogs
efibootmgr
fedora-remix-logos
fedora-repos-modular
filesystem
firewalld
generic-release
generic-release-common
generic-release-notes
glibc
glibc-minimal-langpack
hostname
initial-setup
iproute
iputils
kbd
kernel
less
man-db
ncurses
parted
passwd
pciutils
plymouth
policycoreutils
procps-ng
rootfiles
rpm
selinux-policy-targeted
setup
shadow-utils
sudo
systemd
systemd-oomd-defaults
systemd-resolved
util-linux
vim-minimal
yum
zram-generator-defaults
-fedora-release
-fedora-release-common
-fedora-release-identity-basic
%end

View File

@ -0,0 +1,284 @@
# Generated by pykickstart v3.34
#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
# Shutdown after installation
shutdown
# 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,libvirtd"
# 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=/opt/base.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 # Unsure it is actually useful
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
[org.gnome.desktop.background]
picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
audible-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-files=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
# 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
# Modify the default virt-manager behavior for misc. options
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
# Modify the default virt-manager behavior for misc. options
[org.virt-manager.virt-manager]
xmleditor-enabled=true
manager-window-height=600
manager-window-width=200
# Libvirt URIs listed in the manager window
[org.virt-manager.virt-manager.connections]
uris=['qemu:///system', 'qemu:///session']
autoconnect=['qemu:///session']
# Show usage in the domain list
[org.virt-manager.virt-manager.vmlist-fields]
cpu-usage=false
# Settings related to statistics
[org.virt-manager.virt-manager.stats]
update-interval=3
enable-disk-poll=true
enable-memory-poll=true
enable-net-poll=true
# Default behavior for the console
[org.virt-manager.virt-manager.console]
scaling=2
resize-guest=1
autoconnect=false
# Do not show toolbar
[org.virt-manager.virt-manager.details]
show-toolbar=false
# Modify default values for new VMs
[org.virt-manager.virt-manager.new-vm]
storage-format='raw'
cpu-default='host-model'
graphics-type='spice'
# Modify the default virt-manager behavior for confirmation dialogues
[org.virt-manager.virt-manager.confirm]
forcepoweroff=false
removedev=false
unapplied-dev=false
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
# 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
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/ # fetch netboot.xyz iso and store it to the newly created iso directory
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/create-generic-vm-virtio-spice.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/create-generic-vm-virtio-spice.sh
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-server.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-server.sh
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-workstation.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-workstation.sh
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-phyllome-desktop.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/deploy-phyllome-desktop.sh
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-intelcpu.log
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-intelgpu.log
sed -i 's/\(vfio-pci\)/\1 i915.enable_gvt=1/i' /mnt/sysimage/etc/default/grub # Load kernel modules in grub.
# Load extra kernel modules to enable vfio-mdev on selected hardware
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)
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-initial-setup-gnome.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
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
[pages]
skip=privacy
[goa]
providers=local-first!
EOF
%end
%packages --exclude-weakdeps
@core
@hardware-support
dejavu-sans-mono-fonts
gnome-backgrounds.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
libusb
libvirt
libvirt-daemon-config-network
libvirt-daemon-kvm
mesa-dri-drivers
nano
neofetch
pciutils
python3-libguestfs
qemu-kvm
usbutils
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

View File

@ -0,0 +1,120 @@
# Generated by pykickstart v3.47
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
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
# Root password
rootpw --iscrypted --lock locked
# SELinux configuration
selinux --disabled
# System services
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# 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=/opt/base.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 # Unsure it is actually useful
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
# 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
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/ # fetch netboot.xyz iso and store it to the newly created iso directory
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/create-generic-vm-virtio-spice.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/create-generic-vm-virtio-spice.sh
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-server.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-server.sh
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-workstation.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-workstation.sh
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-phyllome-desktop.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/deploy-phyllome-desktop.sh
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-amdcpu.log
sed -i 's/\(quiet\)/\1 iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
echo "options kvm_amd nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
%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
libusb
libvirt
libvirt-daemon-config-network
libvirt-daemon-kvm
nano
neofetch
pciutils
python3-libguestfs
qemu-kvm
usbutils
virt-install
virt-top
wget
-fedora-logos
-fedora-release
-fedora-release-common
-fedora-release-identity-basic
-fedora-release-notes
%end

View File

@ -1,31 +1,31 @@
# Generated by pykickstart v3.34 # Generated by pykickstart v3.47
#version=DEVEL #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 # Use text mode install
text text
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Firewall configuration # Firewall configuration
firewall --enabled --service=mdns 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 # Run the Setup Agent on first boot
firstboot --reconfig firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
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
# Root password
rootpw --iscrypted --lock locked
# SELinux configuration # SELinux configuration
selinux --enforcing selinux --disabled
# System services # System services
services --disabled="sshd" --enabled="NetworkManager,libvirtd" services --disabled="sshd" --enabled="NetworkManager,libvirtd"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# System bootloader configuration # System bootloader configuration
bootloader --location=mbr --timeout=1 bootloader --location=mbr --timeout=1
# Clear the Master Boot Record # Clear the Master Boot Record
@ -37,82 +37,63 @@ part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt
part /boot --fstype="ext4" --size=384 --label=boot part /boot --fstype="ext4" --size=384 --label=boot
part / --fstype="ext4" --grow --label=root part / --fstype="ext4" --grow --label=root
%post --logfile=/root/b.log %post --logfile=/opt/base.log
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked. localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
dnf update -y # Update the system dnf update -y # Update the system
grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub otherwise the system won't boot properly grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
%end %end
%post --nochroot --logfile=/mnt/sysimage/root/bh.log %post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
# %post --log=/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/ # fetch netboot.xyz iso
# fetch custom script and make it executable
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/configure-vmm-and-desktop.sh -P /mnt/sysimage/usr/sbin/
chmod +x /mnt/sysimage/usr/sbin/configure-vmm-and-desktop.sh
# fetch custom script and make it executable
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/create-live-vm.sh -P /mnt/sysimage/usr/sbin/
chmod +x /mnt/sysimage/usr/sbin/create-live-vm.sh
# fetch custom script and make it executable
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/sbin/
chmod +x /mnt/sysimage/usr/sbin/virtualization-tweaks-root-needed.sh
# # Create new file /etc/systemd/system/postinstall.service using cat:
# cat > /mnt/sysimage/etc/systemd/system/post-install.service<< EOF
# [Unit]
# Description=Post-installation configuration for Phyllome OS
# After=gdm.service
# Requires=gdm.service
#
# [Service]
# Type=oneshot
# ExecStart=/bin/bash /usr/sbin/post-install.sh
# RemainAfterExit=yes
#
# [Install]
# WantedBy=multi-user.target
# EOF
#
# systemctl enable /mnt/sysimage/etc/systemd/system/post-install.service # Enable systemd unit
# 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 so that it could regardless of the name of the ethernet device
# 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 # 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" > /mnt/sysimage/etc/modules-load.d/vfio.conf
echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.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_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 "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) 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/ # fetch netboot.xyz iso and store it to the newly created iso directory
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/create-generic-vm-virtio-spice.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/create-generic-vm-virtio-spice.sh
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-server.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-server.sh
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-workstation.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-workstation.sh
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-phyllome-desktop.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/deploy-phyllome-desktop.sh
# fetch custom script and make it executable
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-intelcpu.log
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
# The following part seems useless %end
# 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
# The following part seems useless too. No need to regenerate grub %post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-intelgpu.log
# 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'.
sed -i 's/\(vfio-pci\)/\1 i915.enable_gvt=1/i' /mnt/sysimage/etc/default/grub # Load kernel modules in grub.
# Load extra kernel modules to enable vfio-mdev on selected hardware
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)
%end %end
@ -127,6 +108,7 @@ generic-release-notes
guestfs-tools guestfs-tools
initial-setup initial-setup
libguestfs-tools libguestfs-tools
libusb
libvirt libvirt
libvirt-daemon-config-network libvirt-daemon-config-network
libvirt-daemon-kvm libvirt-daemon-kvm
@ -134,9 +116,8 @@ nano
neofetch neofetch
pciutils pciutils
python3-libguestfs python3-libguestfs
qemu-guest-agent
qemu-kvm qemu-kvm
spice-vdagent usbutils
virt-install virt-install
virt-top virt-top
wget wget

View File

@ -1,31 +1,31 @@
# Generated by pykickstart v3.34 # Generated by pykickstart v3.47
#version=DEVEL #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 # Use text mode install
text text
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Firewall configuration # Firewall configuration
firewall --enabled --service=mdns 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 # Run the Setup Agent on first boot
firstboot --reconfig firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
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
# Root password
rootpw --iscrypted --lock locked
# SELinux configuration # SELinux configuration
selinux --enforcing selinux --disabled
# System services # System services
services --disabled="sshd" --enabled="NetworkManager,libvirtd" services --disabled="sshd" --enabled="NetworkManager,libvirtd"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# System bootloader configuration # System bootloader configuration
bootloader --location=mbr --timeout=1 bootloader --location=mbr --timeout=1
# Clear the Master Boot Record # Clear the Master Boot Record
@ -37,55 +37,45 @@ part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt
part /boot --fstype="ext4" --size=384 --label=boot part /boot --fstype="ext4" --size=384 --label=boot
part / --fstype="ext4" --grow --label=root part / --fstype="ext4" --grow --label=root
%post --logfile=/root/b.log %post --logfile=/opt/base.log
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked. localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
dnf update -y # Update the system dnf update -y # Update the system
grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub otherwise the system won't boot properly grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
%end %end
%post --nochroot --logfile=/mnt/sysimage/root/bh.log %post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
# %post --log=/root/bh.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting
# 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
mkdir /mnt/sysimage/var/lib/libvirt/iso # Create a directory to store iso images 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/ # fetch netboot.xyz iso wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/iso/ # fetch netboot.xyz iso and store it to the newly created iso directory
# fetch custom script and make it executable # fetch custom script and make it executable
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/configure-vmm-and-desktop.sh -P /mnt/sysimage/usr/sbin/ wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/create-generic-vm-virtio-spice.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/sbin/configure-vmm-and-desktop.sh chmod +x /mnt/sysimage/usr/local/bin/create-generic-vm-virtio-spice.sh
# fetch custom script and make it executable # fetch custom script and make it executable
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/create-live-vm.sh -P /mnt/sysimage/usr/sbin/ wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-server.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/sbin/create-live-vm.sh chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-server.sh
# fetch custom script and make it executable # fetch custom script and make it executable
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/sbin/ wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-workstation.sh -P /mnt/sysimage/usr/local/bin/
chmod +x /mnt/sysimage/usr/sbin/virtualization-tweaks-root-needed.sh chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-workstation.sh
# # Create new file /etc/systemd/system/postinstall.service using cat: # fetch custom script and make it executable
# cat > /mnt/sysimage/etc/systemd/system/post-install.service<< EOF wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-phyllome-desktop.sh -P /mnt/sysimage/usr/local/bin/
# [Unit] chmod +x /mnt/sysimage/usr/local/bin/deploy-phyllome-desktop.sh
# Description=Post-installation configuration for Phyllome OS
# After=gdm.service
# Requires=gdm.service
#
# [Service]
# Type=oneshot
# ExecStart=/bin/bash /usr/sbin/post-install.sh
# RemainAfterExit=yes
#
# [Install]
# WantedBy=multi-user.target
# EOF
#
# systemctl enable /mnt/sysimage/etc/systemd/system/post-install.service # Enable systemd unit
# Add a network bridge. Still need to declare it to libvirt/virt-manager # fetch custom script and make it executable
# nmcli con add ifname br0 type bridge con-name br0 wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
# nmcli con add type bridge-slave ifname enp1s0 master br0 # to-do : generalize this command so that it could regardless of the name of the ethernet device chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
# nmcli con up br0
%end %end
@ -100,6 +90,7 @@ generic-release-notes
guestfs-tools guestfs-tools
initial-setup initial-setup
libguestfs-tools libguestfs-tools
libusb
libvirt libvirt
libvirt-daemon-config-network libvirt-daemon-config-network
libvirt-daemon-kvm libvirt-daemon-kvm
@ -107,9 +98,8 @@ nano
neofetch neofetch
pciutils pciutils
python3-libguestfs python3-libguestfs
qemu-guest-agent
qemu-kvm qemu-kvm
spice-vdagent usbutils
virt-install virt-install
virt-top virt-top
wget wget

View File

@ -1,31 +1,31 @@
# Generated by pykickstart v3.34 # Generated by pykickstart v3.47
#version=DEVEL #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 # Use text mode install
text text
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Firewall configuration # Firewall configuration
firewall --enabled --service=mdns 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 # Run the Setup Agent on first boot
firstboot --reconfig firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
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
# Root password
rootpw --iscrypted --lock locked
# SELinux configuration # SELinux configuration
selinux --enforcing selinux --disabled
# System services # System services
services --disabled="sshd" --enabled="NetworkManager,libvirtd" services --disabled="sshd" --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# System bootloader configuration # System bootloader configuration
bootloader --location=mbr --timeout=1 bootloader --location=mbr --timeout=1
# Clear the Master Boot Record # Clear the Master Boot Record
@ -37,11 +37,11 @@ part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt
part /boot --fstype="ext4" --size=384 --label=boot part /boot --fstype="ext4" --size=384 --label=boot
part / --fstype="ext4" --grow --label=root part / --fstype="ext4" --grow --label=root
%post --logfile=/root/b.log %post --logfile=/opt/base.log
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked. localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
dnf update -y # Update the system dnf update -y # Update the system
grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub otherwise the system won't boot properly grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
%end %end
@ -54,11 +54,11 @@ generic-release
generic-release-common generic-release-common
generic-release-notes generic-release-notes
initial-setup initial-setup
libusb
nano nano
neofetch neofetch
pciutils pciutils
qemu-guest-agent usbutils
spice-vdagent
wget wget
-fedora-logos -fedora-logos
-fedora-release -fedora-release

View File

@ -0,0 +1,282 @@
# Generated by pykickstart v3.58
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled --service=mdns
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
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
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
# Root password
rootpw --iscrypted --lock locked
# SELinux configuration
selinux --disabled
# System services
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# 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=512 --label=boot
part / --fstype="ext4" --grow --label=root
%post
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
echo "== RPM Fusion Nonfree: Base section =="
echo "Importing RPM Fusion keys"
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
echo "List of packages from RPM Fusion Nonfree:"
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
echo "List of incuded RPM Fusion packages with their size:"
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
echo
%end
%post --logfile=/opt/base.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 # Unsure it is actually useful
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
# [org.gnome.desktop.background]
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
# EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
audible-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-files=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
# 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
# Modify the default virt-manager behavior for misc. options
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
# Modify the default virt-manager behavior for misc. options
[org.virt-manager.virt-manager]
xmleditor-enabled=true
manager-window-height=600
manager-window-width=200
# Libvirt URIs listed in the manager window
[org.virt-manager.virt-manager.connections]
uris=['qemu:///system', 'qemu:///session']
autoconnect=['qemu:///session']
# Show usage in the domain list
[org.virt-manager.virt-manager.vmlist-fields]
cpu-usage=false
# Settings related to statistics
[org.virt-manager.virt-manager.stats]
update-interval=3
enable-disk-poll=true
enable-memory-poll=true
enable-net-poll=true
# Default behavior for the console
[org.virt-manager.virt-manager.console]
scaling=2
resize-guest=1
autoconnect=false
# Do not show toolbar
[org.virt-manager.virt-manager.details]
show-toolbar=false
# Modify default values for new VMs
[org.virt-manager.virt-manager.new-vm]
storage-format='raw'
cpu-default='host-model'
graphics-type='spice'
# Modify the default virt-manager behavior for confirmation dialogues
[org.virt-manager.virt-manager.confirm]
forcepoweroff=false
removedev=false
unapplied-dev=false
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
# 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
mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso images. SELinux is already taking this one into account.
# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/isos/ # fetch netboot.xyz iso and store it to the newly created iso directory
# # virsh commands fail in a kickstart environment (chroot or not it seems). would need to fetch a script and execute post-launch with a delay, for example using a systemd unit
# virsh pool-define-as isos dir - - - - /mnt/sysimage/var/lib/libvirt/isos/ # Make libvirt aware of this new directory by creating a so-called 'pool'.
# virsh pool-build isos # Build the pool
# virsh pool-start isos # Start it
# virsh pool-autostart isos # Set-it to autostart
# fetch custom script and make it executable
# wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
# chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/linux.xml
# virsh define linux.xml
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/windows.xml
# virsh define windows.xml
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-initial-setup-gnome.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
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
[pages]
skip=privacy
[goa]
providers=local-first!
EOF
%end
%packages --exclude-weakdeps
@core
@hardware-support
NetworkManager-wifi
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-initial-setup
gnome-shell
gnome-terminal
guestfs-tools
libguestfs-tools
libusb
libvirt
libvirt-daemon-config-network
libvirt-daemon-kvm
mesa-dri-drivers
mozilla-ublock-origin.noarch
nano
pciutils
python3-libguestfs
qemu-guest-agent
qemu-kvm
spice-vdagent
usbutils
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

View File

@ -0,0 +1,94 @@
# Generated by pykickstart v3.47
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
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
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
# Root password
rootpw --iscrypted --lock locked
# SELinux configuration
selinux --disabled
# System services
services --disabled="sshd" --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# X Window System configuration information
xconfig --defaultdesktop=SWAY --startxonboot
# 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
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
echo "== RPM Fusion Nonfree: Base section =="
echo "Importing RPM Fusion keys"
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
echo "List of packages from RPM Fusion Nonfree:"
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
echo "List of incuded RPM Fusion packages with their size:"
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
echo
%end
%post --logfile=/opt/base.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 # Unsure it is actually useful
%end
%packages --exclude-weakdeps
@^sway-desktop-environment
@core
@hardware-support
@swaywm-extended
fedora-remix-logos
firefox
generic-logos
generic-release
generic-release-common
generic-release-notes
initial-setup
libusb
mesa-dri-drivers
mozilla-ublock-origin.noarch
nano
neofetch
pciutils
qemu-guest-agent
spice-vdagent
usbutils
wget
-fedora-logos
-fedora-release
-fedora-release-common
-fedora-release-identity-basic
-fedora-release-notes
%end

179
dishes/virtual-desktop.cfg Normal file
View File

@ -0,0 +1,179 @@
# Generated by pykickstart v3.62
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled --service=mdns
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
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
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
# Root password
rootpw --iscrypted --lock locked
# SELinux configuration
selinux --disabled
# System services
services --disabled="sshd" --enabled="NetworkManager,chronyd,systemd-resolved"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# 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=512 --label=boot
part / --fstype="ext4" --grow --label=root
%post
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
echo "== RPM Fusion Nonfree: Base section =="
echo "Importing RPM Fusion keys"
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
echo "List of packages from RPM Fusion Nonfree:"
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
echo "List of incuded RPM Fusion packages with their size:"
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
echo
%end
%post --logfile=/opt/base.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 # Unsure it is actually useful
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
# [org.gnome.desktop.background]
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
# EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
audible-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-files=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-initial-setup-gnome.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
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
[pages]
skip=privacy
[goa]
providers=local-first!
EOF
%end
%packages --exclude-weakdeps
@core
@hardware-support
NetworkManager-wifi
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-initial-setup
gnome-shell
gnome-terminal
libusb
mesa-dri-drivers
mozilla-ublock-origin.noarch
nano
pciutils
qemu-guest-agent
spice-vdagent
usbutils
wget
wpa_supplicant
-fedora-logos
-fedora-release
-fedora-release-common
-fedora-release-identity-basic
-fedora-release-notes
-gnome-tour
%end

View File

@ -0,0 +1,168 @@
# Generated by pykickstart v3.47
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
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
# Root password
rootpw --iscrypted --lock locked
# SELinux configuration
selinux --disabled
# System services
services --disabled="sshd" --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# 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 --encrypted --luks-version=luks2
%post --logfile=/opt/base.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 # Unsure it is actually useful
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
[org.gnome.desktop.background]
picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
audible-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-files=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-initial-setup-gnome.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
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
[pages]
skip=privacy
[goa]
providers=local-first!
EOF
%end
%packages --exclude-weakdeps
@core
@hardware-support
NetworkManager-wifi
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-initial-setup
gnome-shell
gnome-terminal
libusb
mesa-dri-drivers
mozilla-ublock-origin.noarch
nano
nautilus
neofetch
nextcloud
pciutils
qemu-guest-agent
spice-vdagent
thunderbird
usbutils
vlc
wget
wpa_supplicant
-fedora-logos
-fedora-release
-fedora-release-common
-fedora-release-identity-basic
-fedora-release-notes
-gnome-tour
%end

View File

@ -0,0 +1,71 @@
# Generated by pykickstart v3.47
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
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
# Root password
rootpw --iscrypted --lock locked
# SELinux configuration
selinux --disabled
# System services
services --disabled="sshd" --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# 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 --encrypted --luks-version=luks2
%post --logfile=/opt/base.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 # Unsure it is actually useful
%end
%packages --exclude-weakdeps
@core
@hardware-support
fedora-remix-logos
generic-logos
generic-release
generic-release-common
generic-release-notes
initial-setup
libusb
nano
neofetch
pciutils
qemu-guest-agent
spice-vdagent
usbutils
wget
-fedora-logos
-fedora-release
-fedora-release-common
-fedora-release-identity-basic
-fedora-release-notes
%end

86
dishes/virtual-server.cfg Normal file
View File

@ -0,0 +1,86 @@
# Generated by pykickstart v3.58
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled --service=mdns
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
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
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
# Root password
rootpw --iscrypted --lock locked
# SELinux configuration
selinux --disabled
# System services
services --disabled="sshd" --enabled="NetworkManager,chronyd,systemd-resolved"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# 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=512 --label=boot
part / --fstype="ext4" --grow --label=root
%post
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
echo "== RPM Fusion Nonfree: Base section =="
echo "Importing RPM Fusion keys"
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
echo "List of packages from RPM Fusion Nonfree:"
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
echo "List of incuded RPM Fusion packages with their size:"
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
echo
%end
%post --logfile=/opt/base.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 # Unsure it is actually useful
%end
%packages --exclude-weakdeps
@core
@hardware-support
fedora-remix-logos
generic-logos
generic-release
generic-release-common
generic-release-notes
initial-setup
libusb
nano
pciutils
qemu-guest-agent
spice-vdagent
usbutils
wget
-fedora-logos
-fedora-release
-fedora-release-common
-fedora-release-identity-basic
-fedora-release-notes
%end

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

View File

@ -0,0 +1,95 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file provides a basic block to build a minimal and customized desktop-oriented operating system using GNOME Shell.
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
mesa-dri-drivers # add mesa drivers otherwise there is a blank screen when first booting a desktop-based kickstart without virtualization tools
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
gnome-backgrounds.noarch # wallpapers from the GNOME 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
NetworkManager-wifi # Provides the plugin to manage Wireless networking within GNOME Shell
nano # The nano text editor
firefox # Internet browser
mozilla-ublock-origin.noarch # An efficient blocker for Firefox
%end
%post --nochroot --log=/mnt/sysimage/opt/base-desktop-gnome.log # Beginning of %post section. Those commands are executed outside the chroot environment
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
# [org.gnome.desktop.background]
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
# EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
audible-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-files=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end # End of the %post section

View File

@ -0,0 +1,77 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file provides a virtual machine manager, sets it to auto-launch and tweaked it.
%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies
virt-manager # Install virt-manager, a graphical front-end for QEMU/KVM
%end
%post --nochroot --log=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging.
# 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
# Modify the default virt-manager behavior for misc. options
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
# Modify the default virt-manager behavior for misc. options
[org.virt-manager.virt-manager]
xmleditor-enabled=true
manager-window-height=600
manager-window-width=200
# Libvirt URIs listed in the manager window
[org.virt-manager.virt-manager.connections]
uris=['qemu:///system', 'qemu:///session']
autoconnect=['qemu:///session']
# Show usage in the domain list
[org.virt-manager.virt-manager.vmlist-fields]
cpu-usage=false
# Settings related to statistics
[org.virt-manager.virt-manager.stats]
update-interval=3
enable-disk-poll=true
enable-memory-poll=true
enable-net-poll=true
# Default behavior for the console
[org.virt-manager.virt-manager.console]
scaling=2
resize-guest=1
autoconnect=false
# Do not show toolbar
[org.virt-manager.virt-manager.details]
show-toolbar=false
# Modify default values for new VMs
[org.virt-manager.virt-manager.new-vm]
storage-format='raw'
cpu-default='host-model'
graphics-type='spice'
# Modify the default virt-manager behavior for confirmation dialogues
[org.virt-manager.virt-manager.confirm]
forcepoweroff=false
removedev=false
unapplied-dev=false
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end # End of the %post section

View File

@ -0,0 +1,16 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file provides a the Fedora official repositories for free software
# Official Fedora repositories
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-36&arch=x86_64" # Official Fedora updates mirror
repo --name=fedora-updates --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f36&arch=x86_64" --cost=0 # Official Fedora updates mirror
repo --name=rpmfusion-free --mirrorlist="https://mirrors.rpmfusion.org/mirrorlist?repo=free-fedora-36&arch=x86_64"
repo --name=rpmfusion-free-updates --mirrorlist="https://mirrors.rpmfusion.org/mirrorlist?repo=free-fedora-updates-released-36&arch=x86_64" --cost=0
repo --name=rpmfusion-nonfree --mirrorlist="https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-36&arch=x86_64"
repo --name=rpmfusion-nonfree-updates --mirrorlist="https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-36&arch=x86_64" --cost=0

View File

@ -5,5 +5,6 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ # / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/ # /_/ /____/
# What ? When flattened, this file will result in a stand-alone kickstart file that can be automatically deploy into a server-oriented live system. # What ? This kickstart file allows you to use the cdrom as a source for packages
# 'l' for live, 's' for server # Use the cdrom
cdrom

View File

@ -5,5 +5,8 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ # / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/ # /_/ /____/
# 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 # What ? This kickstart file provides a the Fedora Rawhide official repositories
# 'l' for live, 's' for server, 'h' for hypervisor', 'i' for intel
# Official Fedora rawhide repositories
repo --name=rawhide --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=$basearch
url --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=$basearch

View File

@ -0,0 +1,33 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file provides a the Fedora official repositories for free software
# Official Fedora repositories
repo --name=fedora --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch # Official Fedora mirror
repo --name=updates --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch # Official Fedora updates mirror
url --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch # Official Fedora updates mirror
# RPM fusion repositories
# For the current release tree
repo --name=rpmfusion-nonfree --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs=rpmfusion-nonfree-release
# Updates for the current release tree
repo --name=rpmfusion-nonfree-updates --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs=rpmfusion-nonfree-release
%post
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
echo "== RPM Fusion Nonfree: Base section =="
echo "Importing RPM Fusion keys"
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
echo "List of packages from RPM Fusion Nonfree:"
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
echo "List of incuded RPM Fusion packages with their size:"
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
echo
%end

View File

@ -0,0 +1,15 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file provides guest-agents, which are useful for virtual machines
%packages --exclude-weakdeps # Beginning of the packages section. Does not include weak dependencies.
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
%end # End of the packages section

View File

@ -0,0 +1,16 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file preloads the vfio-pci driver for devices that are binded to it, activates IOMMU and enables nested-virtualization for AMD (tm) CPUs
%post --nochroot --log=/mnt/sysimage/opt/base-hypervisor-amdcpu.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 iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
echo "options kvm_amd nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
%end # End of the %post section

View File

@ -0,0 +1,16 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file preloads the vfio-pci driver for devices that are binded to it, activates IOMMU and enables nested-virtualization for Intel(tm) CPUs
%post --nochroot --log=/mnt/sysimage/opt/base-hypervisor-intelcpu.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 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
%end # End of the %post section

View File

@ -0,0 +1,19 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file enables vfio-mdev and KVMGT for compatible Intel(tm) graphic cards, allowing a host to create virtual GPUs.
# The fifth generation of Broadwell-based SoC are compatible, up to the ninth generation (Cannon Lake and Whiskey Lake). Tiger Lake and later SoC based on the new Xe GPU architecture are not compatible, as they use SR/IOV instead.
%post --nochroot --log=/mnt/sysimage/opt/base-hypervisor-intelgpu.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/\(vfio-pci\)/\1 i915.enable_gvt=1/i' /mnt/sysimage/etc/default/grub # Load kernel modules in grub.
# Load extra kernel modules to enable vfio-mdev on selected hardware
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)
%end # End of the %post section

View File

@ -0,0 +1,14 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This ingredient fetches the latest version of the OpenCore bootloader (https://github.com/acidanthera/OpenCorePkg) for Darwin-based guests, as built by the OSX-KVM project
%post --nochroot --log=/mnt/sysimage/opt/base-hypervisor-opencore.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting
wget https://github.com/kholia/OSX-KVM/raw/master/OpenCore/OpenCore.qcow2 -P /mnt/sysimage/var/lib/libvirt/isos/ # command to fetch the OpenCore file distributed by OSX-KVM project and store it under the iso directory
%end

View File

@ -0,0 +1,14 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This ingredient fetches the latest version of paravirtual drivers for Windows, as an ISO file.
%post --nochroot --log=/mnt/sysimage/opt/base-hypervisor-virtio-win.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting
wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso -P /mnt/sysimage/var/lib/libvirt/isos/ # command to fetch the latest iso and put it under a particular directory
%end

View File

@ -0,0 +1,55 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file provides a basic, generic building block to build a virtualization host.
services --enabled="NetworkManager,libvirtd" # Without libvirtd here, it appears the service won't automatically start
%packages --exclude-weakdeps # Beginning of the packages section. Does not include weak dependencies.
qemu-kvm
libvirt
libvirt-daemon-config-network
libvirt-daemon-kvm
# libvirt-daemon-driver-lxc
virt-install
virt-top
libguestfs-tools # Complementary tools useful for interacting with vith guest systems. Could probablby be removed
python3-libguestfs # Complementary tools useful for interacting with vith guest systems. Could probablby be removed
guestfs-tools # Complementary tools useful for interacting with vith guest systems. Could probablby be removed
%end # End of the packages section
%post --nochroot --log=/mnt/sysimage/opt/base-hypervisor.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting
# 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
mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso images. SELinux is already taking this one into account.
# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/isos/ # fetch netboot.xyz iso and store it to the newly created iso directory
# # virsh commands fail in a kickstart environment (chroot or not it seems). would need to fetch a script and execute post-launch with a delay, for example using a systemd unit
# virsh pool-define-as isos dir - - - - /mnt/sysimage/var/lib/libvirt/isos/ # Make libvirt aware of this new directory by creating a so-called 'pool'.
# virsh pool-build isos # Build the pool
# virsh pool-start isos # Start it
# virsh pool-autostart isos # Set-it to autostart
# fetch custom script and make it executable
# wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
# chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/linux.xml
# virsh define linux.xml
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/windows.xml
# virsh define windows.xml
%end # End of the %post section

View File

@ -0,0 +1,28 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file provides the basic plumbing for GNOME initial-setup to launch on the first system start-up.
%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies.
gnome-initial-setup # Add GNOME initial setup too to let user create local account.
%end # End of the packages section
%post --nochroot --log=/mnt/sysimage/opt/base-initial-setup-gnome.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
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
[pages]
skip=privacy
[goa]
providers=local-first!
EOF
%end # End of the %post section

View File

@ -5,13 +5,9 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ # / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/ # /_/ /____/
# What ? This kickstart file itents to provide a basic block small than the minimal operating system. # What ? This kickstart file provides the basic plumbing for initial-setup to launch on the first system start-up.
# 'n' for nano, 'd' for development only.
%include bnd.cfg # A base system
firstboot --enable --reconfig # Initial Setup will start after the first reboot 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. %packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies.

View File

@ -5,5 +5,8 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ # / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/ # /_/ /____/
# 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 part / --fstype="ext4" --size=5120
# 'l' for live, 's' for server, 'h' for hypervisor', 'a' for amd
# %post --log=/opt/live-desktop-quirks.log # Beginning of %post section. The following commands are executed inside a chroot environment. Add logging
# %end # End of the %post section

129
ingredients/base-live.cfg Normal file
View File

@ -0,0 +1,129 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file provides a basic block to build a minimal, live system
keyboard --xlayouts='ch (fr)' # set keyboard layouts for Romandy
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 --disabled # Make sure SELinux is disabled / Other option: --enforcing
firewall --enabled --service=mdns# Make sure the firewall is enabled
services --enabled=NetworkManager,systemd-resolved --disabled=sshd
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.
bootloader --location=none # Set the GNU GRUB bootloader
part / --fstype="ext4" --size=5120 # Create a root partition of around 7GB
%packages # Beginning of the package section. Does not include weak dependencies.
@core # minimal installation
@hardware-support # Provides extended hardware support, and especially extra wireless drivers
pciutils # Pciutils provides lspci commandline tool, which is not installed by default
libusb # add usb library (otherwise, USB 3.0 controllers seem to not work)
usbutils # add lsusb utility
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
-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 # 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"
grub2-common.noarch
grub2-efi-ia32
grub2-efi-x64
grub2-efi-x64-cdboot
grub2-pc-modules.noarch
grub2-tools
grub2-tools-efi
grub2-tools-extra
grub2-tools-minimal
grubby
# Explicitly specified here:
# <notting> walters: because otherwise dependency loops cause yum issues.
kernel
kernel-modules
kernel-modules-extra
# Need aajohan-comfortaa-fonts for the SVG rnotes images
aajohan-comfortaa-fonts
# Without this, initramfs generation during live image creation fails: #1242586
dracut-live
# anaconda needs the locales available to run for different locales
glibc-all-langpacks
# provide the livesys scripts
livesys-scripts
%end
%post
# Enable livesys services
systemctl enable livesys.service
systemctl enable livesys-late.service
# 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
systemctl disable network
# Remove machine-id on pre generated images
rm -f /etc/machine-id
touch /etc/machine-id
# set livesys session type
sed -i 's/^livesys_session=.*/livesys_session="gnome"/' /etc/sysconfig/livesys
%end

View File

@ -5,45 +5,25 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ # / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/ # /_/ /____/
# What ? This kickstart file itents to provide a basic block small than the minimal operating system. # What ? This kickstart file intends to provide a basic block smaller than the minimal operating system.
# 'b' for basic building block, 'n' for nano, 'd' for development only.
# This is NOT a standalone kickstart file.
# ATTENTION : this kickstart file will automatically DESTROY the main disk and all of its contents.
# Bye bye
# NOTE : it currently fails
# cmdline # Perform the full installation in real text mode see here https://wiki.centos.org/TipsAndTricks/KickStart
text # Perform installation in text mode text # Perform installation in text mode
# Installation method. For cdrom, replace repo and url with cdrom keyboard --xlayouts='ch (fr)' # set keyboard layouts for Romandy
repo --name=fedora --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch # Official Fedora mirror
repo --name=updates --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch # Official Fedora updates mirror
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
lang en_US.UTF-8 # Set system language to American English. More languages could be supported: --addsupport=cs_CZ,de_DE,en_UK 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 timezone Europe/Paris --utc # Set system timezone to Paris
rootpw --lock --iscrypted locked # Lock the root account rootpw --lock --iscrypted locked # Lock the root account
selinux --enforcing # Make sure SELinux is in enforced mode selinux --disabled # Make sure SELinux is disabled / Other option: --enforcing
firewall --enabled --service=mdns # Make sure the firewall is enabled firewall --enabled # Make sure the firewall is enabled
services --enabled=NetworkManager,libvirtd --disabled=sshd services --enabled=NetworkManager,systemd-resolved --disabled=sshd
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 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 zerombr # WARNING : Dangerous command ! Will clear the Master Boot Record
clearpart --all --initlabel # Partition clearing information. This setup uses GPT by default. 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 GNU GRUB bootloader timeout to 1. bootloader --timeout=1 # Set the GNU GRUB bootloader timeout to 1.
# reboot --kexec # Reboot the system after the installation is successfully completed
# firstboot --enable --reconfig # Initial Setup will start after the first reboot
%packages --excludedocs --nocore --exclude-weakdeps %packages --excludedocs --nocore --exclude-weakdeps
kernel # The Linux kernel kernel # The Linux kernel
@ -55,18 +35,14 @@ util-linux #
coreutils # Core GNU utilities coreutils # Core GNU utilities
systemd # System and Service Manager systemd # System and Service Manager
glibc-minimal-langpack # "Minimal language packs for glibc" glibc-minimal-langpack # "Minimal language packs for glibc"
grubby # "Command line tool for updating bootloader configs" glibc
grub2-efi-x64 # "GRUB for EFI systems" efibootmgr # "EFI Boot Manager"
qemu-guest-agent # "QEMU guest agent"
spice-vdagent # "Agent for Spice guests"
pciutils # Pciutils provides lspci commandline tool and is not installed by default pciutils # Pciutils provides lspci commandline tool and is not installed by default
audit
basesystem basesystem
curl curl
dhcp-client dhcp-client
dnf e2fsprogs
filesystem
glibc
grubby
hostname hostname
iproute iproute
iputils iputils
@ -74,19 +50,26 @@ kbd
less less
man-db man-db
ncurses ncurses
parted
passwd passwd
policycoreutils policycoreutils
procps-ng procps-ng
rootfiles rootfiles
rpm
selinux-policy-targeted selinux-policy-targeted
setup setup
shadow-utils shadow-utils
sudo sudo
systemd
util-linux
vim-minimal vim-minimal
yum yum
NetworkManager
dnf-plugins-core
dracut-config-rescue
fedora-repos-modular
firewalld
plymouth
systemd-oomd-defaults
systemd-resolved
zram-generator-defaults
-fedora-release # Fedora release-notes -fedora-release # Fedora release-notes
-fedora-release-common # Fedora release files -fedora-release-common # Fedora release files
-fedora-release-identity-basic # ??? -fedora-release-identity-basic # ???

View File

@ -0,0 +1,12 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file provides a basic EXT4 partition layout for EFI-based systems, with full-disk encryption. User input is necessary during deployment, as there is no hardcoded password.
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 --encrypted --luks-version=luks2 # The remaining space will be used for an encrypted root (vda3).

View File

@ -5,5 +5,6 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ # / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/ # /_/ /____/
# 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 # What ? This kickstart file provides a basic partition layout for live systems, without encryption.
# 'l' for live, 's' for server, 'h' for hypervisor'
part / --size=7750 # Create a root partition of around 7GB

View File

@ -0,0 +1,12 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file provides a basic ext4 partition layout for UEFI-based systems, without full-disk encryption
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi # Will create an EFI system partitition of 128 MiB (vda1)
part /boot --fstype="ext4" --size=512 --label=boot # Create a boot partition of 512 MiB using the ext4 filesystem (vda2)
part / --fstype="ext4" --grow --label=root # The remaining space will be used for root (vda3)

View File

@ -5,46 +5,34 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ # / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/ # /_/ /____/
# #
# What ? This kickstart file provides a basic block to build a minimal operating system. # What ? This kickstart file provides the basic block to build a minimal operating system based on Fedora
# 'b' for basic building block
# This is NOT a standalone kickstart file text # Perform the kickstart installation in text mode
text # Perform installation in text mode keyboard --xlayouts='ch (fr)' # Set keyboard layouts for Romandy
# Installation method. For cdrom, replace repo and url with cdrom
repo --name=fedora --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch # Official Fedora mirror
repo --name=updates --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch # Official Fedora updates mirror
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
lang en_US.UTF-8 # Set system language to American English. More languages could be supported: --addsupport=cs_CZ,de_DE,en_UK 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 timezone Europe/Paris --utc # Set system timezone to Paris
rootpw --lock --iscrypted locked # Lock the root account rootpw --lock --iscrypted locked # Lock the root account
selinux --enforcing # Make sure SELinux is in enforced mode selinux --disabled # Make sure SELinux is disabled ; other option: --enforcing
firewall --enabled --service=mdns # Make sure the firewall is enabled firewall --enabled --service=mdns # Make sure the firewall is enabled
services --enabled=NetworkManager,libvirtd --disabled=sshd services --enabled=NetworkManager,chronyd,systemd-resolved --disabled=sshd
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 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 zerombr # WARNING : Dangerous command ! Will clear the Master Boot Record
clearpart --all --initlabel # Partition clearing information. This setup uses GPT by default. 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) bootloader --timeout=1 # Set the GNU GRUB bootloader timeout to 1
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 GNU GRUB bootloader timeout to 1.
%packages --exclude-weakdeps # Beginning of the package section. Does not include weak dependencies. %packages --exclude-weakdeps # Beginning of the package section. Does not include weak dependencies
@core # minimal installation @core # minimal installation
@hardware-support # Provides extended hardware support, and especially extra wireless drivers @hardware-support # Provides extended hardware support, and especially extra wireless drivers
pciutils # Pciutils provides lspci commandline tool, which is not installed by default pciutils # Pciutils provides lspci commandline tool, which is not installed by default
libusb # add usb library (otherwise, USB 3.0 controllers seem to not work)
usbutils # add lsusb utility
wget # "The non-interactive network downloader. " Used to fetch files during installation 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 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-logos # Remove Fedora logos to comply with [Fedora Remix legal guidelines](https://fedoraproject.org/wiki/Remix)
-fedora-release # Remove Fedora release-notes -fedora-release # Remove Fedora release-notes
-fedora-release-notes # Remove Fedora release-notes -fedora-release-notes # Remove Fedora release-notes
@ -58,10 +46,10 @@ generic-release-notes # "Release Notes"
%end # End of the packages section %end # End of the packages section
%post --log=/root/b.log # Beginning of the post-installation section. Add logging. %post --log=/opt/base.log # Beginning of the post-installation section. Add logging.
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked. localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
dnf update -y # Update the system dnf update -y # Update the system
grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub otherwise the system won't boot properly grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
%end # End of the %post section %end # End of the %post section

25
ingredients/template.cfg Normal file
View File

@ -0,0 +1,25 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This partial kickstart file provides a template one can use to further extend an installation
# %packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies
# Any software in the official Fedora repository can be added [here](https://packages.fedoraproject.org/).
# gnome-shell # the version 3 of the GNOME desktop environment, without any presintalled applications
# %end
# %post --nochroot --log=/mnt/sysimage/opt/base-desktop-gnome.log # Beginning of %post section. Those commands are executed outside the chroot environment.
# Use this section to further extend the system
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
# [org.gnome.desktop.background]
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
# EOF
# %end # End of the %post section

View File

@ -1,143 +0,0 @@
# Generated by pykickstart v3.34
#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,libvirtd"
# 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
%end
%post --nochroot --logfile=/mnt/sysimage/root/bh.log
# %post --log=/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/ # fetch netboot.xyz iso
# fetch custom script and make it executable
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/configure-vmm-and-desktop.sh -P /mnt/sysimage/usr/sbin/
chmod +x /mnt/sysimage/usr/sbin/configure-vmm-and-desktop.sh
# fetch custom script and make it executable
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/create-live-vm.sh -P /mnt/sysimage/usr/sbin/
chmod +x /mnt/sysimage/usr/sbin/create-live-vm.sh
# fetch custom script and make it executable
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/sbin/
chmod +x /mnt/sysimage/usr/sbin/virtualization-tweaks-root-needed.sh
# # Create new file /etc/systemd/system/postinstall.service using cat:
# cat > /mnt/sysimage/etc/systemd/system/post-install.service<< EOF
# [Unit]
# Description=Post-installation configuration for Phyllome OS
# After=gdm.service
# Requires=gdm.service
#
# [Service]
# Type=oneshot
# ExecStart=/bin/bash /usr/sbin/post-install.sh
# RemainAfterExit=yes
#
# [Install]
# WantedBy=multi-user.target
# EOF
#
# systemctl enable /mnt/sysimage/etc/systemd/system/post-install.service # Enable systemd unit
# 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 so that it could regardless of the name of the ethernet device
# nmcli con up br0
%end
%post --nochroot --logfile=/mnt/sysimage/root/dh.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

View File

@ -1,178 +0,0 @@
# Generated by pykickstart v3.34
#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,libvirtd"
# 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
%end
%post --nochroot --logfile=/mnt/sysimage/root/bh.log
# %post --log=/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/ # fetch netboot.xyz iso
# fetch custom script and make it executable
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/configure-vmm-and-desktop.sh -P /mnt/sysimage/usr/sbin/
chmod +x /mnt/sysimage/usr/sbin/configure-vmm-and-desktop.sh
# fetch custom script and make it executable
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/create-live-vm.sh -P /mnt/sysimage/usr/sbin/
chmod +x /mnt/sysimage/usr/sbin/create-live-vm.sh
# fetch custom script and make it executable
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/sbin/
chmod +x /mnt/sysimage/usr/sbin/virtualization-tweaks-root-needed.sh
# # Create new file /etc/systemd/system/postinstall.service using cat:
# cat > /mnt/sysimage/etc/systemd/system/post-install.service<< EOF
# [Unit]
# Description=Post-installation configuration for Phyllome OS
# After=gdm.service
# Requires=gdm.service
#
# [Service]
# Type=oneshot
# ExecStart=/bin/bash /usr/sbin/post-install.sh
# RemainAfterExit=yes
#
# [Install]
# WantedBy=multi-user.target
# EOF
#
# systemctl enable /mnt/sysimage/etc/systemd/system/post-install.service # Enable systemd unit
# 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 so that it could regardless of the name of the ethernet device
# 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
# The following part seems useless
# 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
# The following part seems useless too. No need to regenerate grub
# 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
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
[pages]
skip=privacy
[goa]
providers=local-first!
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

View File

@ -1,61 +0,0 @@
#!/bin/bash
# This script is fetched during the kickstarted installation of machines shipping with a hypervisor.
# Ideally, this would happened during the installation process.
# Eventually, the elements within this script will be moved to a kickstart file
# It is then executed once upon first-boot as a systemd-unit
# Set the default wallpaper for Phyllome
gsettings set org.gnome.desktop.background picture-uri 'file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
# Virtual Machine Manager opionated configuration
# Options that aren't modified in comparaison to the default are commented out
# Modify the default virt-manager behavior for the console
gsettings set org.virt-manager.virt-manager.console resize-guest 1
gsettings set org.virt-manager.virt-manager.console scaling 2
gsettings set org.virt-manager.virt-manager.console autoconnect false
# gsettings set org.virt-manager.virt-manager.console grab-keys ''
# gsettings set org.virt-manager.virt-manager.console auto-redirect true
# Modify the default virt-manager behavior for confirmation dialogues
gsettings set org.virt-manager.virt-manager.confirm forcepoweroff false
# gsettings set org.virt-manager.virt-manager.confirm delete-storage true
gsettings set org.virt-manager.virt-manager.confirm removedev false
# gsettings set org.virt-manager.virt-manager.confirm pause false
# gsettings set org.virt-manager.virt-manager.confirm poweroff false
# Modify default values for new VMs
gsettings set org.virt-manager.virt-manager.new-vm storage-format 'raw'
gsettings set org.virt-manager.virt-manager.new-vm cpu-default 'host-model'
gsettings set org.virt-manager.virt-manager.new-vm graphics-type 'spice'
# Settings related to usage and statistics
# gsettings set org.virt-manager.virt-manager.vmlist-fields host-cpu-usage false
# gsettings set org.virt-manager.virt-manager.vmlist-fields memory-usage false
gsettings set org.virt-manager.virt-manager.vmlist-fields cpu-usage false
# gsettings set org.virt-manager.virt-manager.vmlist-fields disk-usage false
# gsettings set org.virt-manager.virt-manager.vmlist-fields network-traffic false
gsettings set org.virt-manager.virt-manager.stats enable-net-poll true
gsettings set org.virt-manager.virt-manager.stats update-interval 3
gsettings set org.virt-manager.virt-manager.stats enable-memory-poll true
gsettings set org.virt-manager.virt-manager.stats enable-disk-poll true
# gsettings set org.virt-manager.virt-manager.stats enable-cpu-poll true
# Modify the default virt-manager behavior for misc. options
gsettings set org.virt-manager.virt-manager manager-window-width 200
gsettings set org.virt-manager.virt-manager manager-window-height 500
# gsettings set org.virt-manager.virt-manager.details show-toolbar true
gsettings set org.virt-manager.virt-manager xmleditor-enabled true # enable xml edition
# gsettings set org.virt-manager.virt-manager.urls kickstarts @as []
# gsettings set org.virt-manager.virt-manager.urls containers @as []
# gsettings set org.virt-manager.virt-manager.urls isos @as []
# gsettings set org.virt-manager.virt-manager.urls urls @as []
# gsettings set org.virt-manager.virt-manager enable-libguestfs-vm-inspection true
gsettings set org.virt-manager.virt-manager.connections uris "['qemu:///system', 'qemu:///session']"
gsettings set org.virt-manager.virt-manager.connections autoconnect "['qemu:///system', 'qemu:///session']"
gsettings set org.virt-manager.virt-manager.confirm unapplied-dev false
# gsettings set org.virt-manager.virt-manager.paths screenshot-default ''
# gsettings set org.virt-manager.virt-manager.paths perms-fix-ignore @as []
# gsettings set org.virt-manager.virt-manager.paths media-default ''
# gsettings set org.virt-manager.virt-manager.paths image-default ''

View File

@ -1,27 +0,0 @@
#!/bin/bash
# Create and start a new diskless VM using virt-install, but do not launch any installation
virt-install \
--connect qemu:///system \
--virt-type kvm \
--arch x86_64 \
--machine q35 \
--name my-first-live-vm \
--boot uefi \
--cpu host-model,topology.sockets=1,topology.cores=1,topology.threads=1 \
--vcpus 1 \
--memory 2048 \
--video virtio \
--channel spicevmc \
--autoconsole none \
--sound none \
--controller type=virtio-serial \
--controller type=usb,model=none \
--controller type=scsi,model=virtio-scsi \
--network network=default,model=virtio \
--input type=keyboard,bus=virtio \
--input type=tablet,bus=virtio \
--rng /dev/urandom,model=virtio \
--disk none \
--cdrom=/var/lib/libvirt/iso/netboot.xyz.iso \
--install no_install=yes

View File

@ -1,9 +0,0 @@
#!/bin/bash
# usermod -a -G libvirt $(whoami) # add current user to the libvirt group
# virsh commands fail in a kickstart environment (chroot or not it seems). would need to fetch a script and execute post-launch with a delay, for example using a systemd unit
virsh pool-define-as iso dir - - - - /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

View File

@ -1,4 +1,4 @@
> This licence applies to chunks of code as found especially in the `bl.cfg` and `ld.cfg` files, as those files contain codes from the following GNU-licensed project: https://pagure.io/fedora-kickstarts. Standalone kickstart files that are based on the said code, such as `flat-ld.cfg`, are also released under this license. > This licence applies to chunks of code as found especially in the `../ingredients/base-live-desktop-quirks.cfg` and `../ingredients/base-live.cfg` files, as those files contain codes from the following GNU-licensed project: https://pagure.io/fedora-kickstarts. Standalone kickstart files that are based on the said code, such as `flat-ld.cfg`, are also released under this license.
> All new contributions are made under the parent MIT license. > All new contributions are made under the parent MIT license.

View File

@ -0,0 +1,26 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file bootstraps a desktop hypervisor configured for AMD (tm) CPUs.
# 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 desktop-hypervisor-amdcpu.cfg -o ../dishes/phyllome-desktop-amdcpu.cfg
# to flatten all the files in the recipes repository, to the following
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
%include ../ingredients/base-fedora-repo.cfg # offical repositories for Fedora
%include ../ingredients/base-storage.cfg # base storage
%include ../ingredients/base.cfg # A minimal machine
%include ../ingredients/base-desktop-gnome.cfg # A desktop environment based on GNOME Shell
%include ../ingredients/base-desktop-virtual-machine-manager.cfg # the virtual machine manager
%include ../ingredients/base-hypervisor.cfg # A base hypervisor
%include ../ingredients/base-hypervisor-amdcpu.cfg # Specific virtualization configuration for AMD (tm) CPUs
%include ../ingredients/base-initial-setup-gnome.cfg # Includes initial-setup for GNOME Shell, allowing for the creation of a user after the first boot, as well as some basic configuration
poweroff # Shut down the system after a successful installation

View File

@ -0,0 +1,27 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file bootstraps a desktop hypervisor configured for Intel(tm) CPU and Intel(tm) GPUs compatible with vfio-mdev (pre-Tiger Lake)
# 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 desktop-hypervisor-intelcpu-intelgpu.cfg -o ../dishes/phyllome-desktop-intelcpu-intelgpu.cfg
# to flatten all the files in the recipes repository, to the following
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
%include ../ingredients/base-fedora-repo.cfg # offical repositories for Fedora
%include ../ingredients/base-storage.cfg # base storage
%include ../ingredients/base.cfg # A minimal machine
%include ../ingredients/base-desktop-gnome.cfg # A desktop environment based on GNOME Shell
%include ../ingredients/base-desktop-virtual-machine-manager.cfg # the virtual machine manager
%include ../ingredients/base-hypervisor.cfg # A base hypervisor
%include ../ingredients/base-hypervisor-intelcpu.cfg # Specific virtualization configuration for Intel (tm) CPUs
%include ../ingredients/base-hypervisor-intelgpu.cfg # Specific virtualization configuration for Intel (tm) GPUs from 4th to the 9th generation (compatible with vfio-mdev).
%include ../ingredients/base-initial-setup-gnome.cfg # Includes initial-setup for GNOME Shell, allowing for the creation of a user after the first boot, as well as some basic configuration
poweroff # Shut down the system after a successful installation

View File

@ -0,0 +1,26 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file bootstraps a desktop hypervisor configured for Intel(tm) CPUs
# 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 desktop-hypervisor-intelcpu.cfg -o ../dishes/phyllome-desktop-intelcpu.cfg
# to flatten all the files in the recipes repository, to the following
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
%include ../ingredients/base-fedora-repo.cfg # offical repositories for Fedora
%include ../ingredients/base-storage.cfg # base storage
%include ../ingredients/base.cfg # A minimal machine
%include ../ingredients/base-desktop-gnome.cfg # A desktop environment based on GNOME Shell
%include ../ingredients/base-desktop-virtual-machine-manager.cfg # the virtual machine manager
%include ../ingredients/base-hypervisor.cfg # A base hypervisor
%include ../ingredients/base-hypervisor-intelcpu.cfg # Specific virtualization configuration for Intel (tm) CPUs
%include ../ingredients/base-initial-setup-gnome.cfg # Includes initial-setup for GNOME Shell, allowing for the creation of a user after the first boot, as well as some basic configuration
poweroff # Shut down the system after a successful installation

View File

@ -0,0 +1,25 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file bootstraps a desktop hypervisor.
# 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 desktop-hypervisor.cfg -o ../dishes/phyllome-desktop.cfg
# to flatten all the files in the recipes repository, to the following
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
%include ../ingredients/base-fedora-repo.cfg # offical repositories for Fedora
%include ../ingredients/base-storage.cfg # base storage
%include ../ingredients/base.cfg # A minimal machine
%include ../ingredients/base-desktop-gnome.cfg # A desktop environment based on GNOME Shell
%include ../ingredients/base-desktop-virtual-machine-manager.cfg # the virtual machine manager
%include ../ingredients/base-hypervisor.cfg # A base hypervisor
%include ../ingredients/base-initial-setup-gnome.cfg # Includes initial-setup for GNOME Shell, allowing for the creation of a user after the first boot, as well as some basic configuration
poweroff # Shut down the system after a successful installation

23
recipes/desktop.cfg Normal file
View File

@ -0,0 +1,23 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file bootstraps a desktop machine using GNOME Shell.
# 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 desktop.cfg -o ../dishes/desktop.cfg
# to flatten all the files in the recipes repository, to the following
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
%include ../ingredients/base-fedora-repo.cfg # offical repositories for Fedora
%include ../ingredients/base-storage.cfg # base storage
%include ../ingredients/base.cfg # A minimal machine
%include ../ingredients/base-desktop-gnome.cfg # A desktop environment based on GNOME Shell
%include ../ingredients/base-initial-setup-gnome.cfg # Includes initial-setup for GNOME Shell, allowing for the creation of a user after the first boot, as well as some basic configuration
poweroff # Shut down the system after a successful installation

View File

@ -0,0 +1,36 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file bootstraps a live desktop hypervisor configured for Intel(tm) CPU and Intel(tm) GPUs compatible with vfio-mdev (pre-Tiger Lake)
# 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 live-desktop-hypervisor-intelcpu-intelgpu -o ../dishes/live-phyllome-desktop-intelcpu-intelgpu.cfg
# to flatten all the files in the recipes repository, to the following
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
# Instructions for creating an ISO file:
# Temporary disable SELinux:
# setenforce 0
# Use the following command to create an ISO file, as the root user:
# livemedia-creator --make-iso --ks ../dishes/live-phyllome-desktop-intelcpu-intelgpu.cfg --no-virt --iso-only --iso-name phyllome-desktop-intelcpu-intelgpu-x86_64.iso --releasever 38
# The resulting ISO can be tested with qemu-kvm, using the following these two commands, as *root*:
# UEFI test:
# qemu-kvm -bios /usr/share/edk2/ovmf/OVMF_CODE.fd -m 2048 -vga qxl phyllome-desktop-intelcpu-intelgpu-x86_64.iso
# BIOS test:
# qemu-kvm -m 2048 -vga qxl phyllome-desktop-intelcpu-intelgpu-x86_64.iso
%include ../ingredients/base-fedora-repo.cfg # offical repositories for Fedora
%include ../ingredients/base-storage-live.cfg # a base storage for live systems
%include ../ingredients/base-live.cfg # A minimal base for live systems
%include ../ingredients/base-desktop-gnome.cfg # A desktop environment based on GNOME Shell
%include ../ingredients/base-desktop-virtual-machine-manager.cfg # the virtual machine manager
%include ../ingredients/base-hypervisor.cfg # A base hypervisor
%include ../ingredients/base-hypervisor-intelcpu.cfg # Specific virtualization configuration for Intel (tm) CPUs
%include ../ingredients/base-hypervisor-intelgpu.cfg # Specific virtualization configuration for Intel (tm) GPUs from 4th to the 9th generation (compatible with vfio-mdev).

View File

@ -0,0 +1,35 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file bootstraps a live desktop hypervisor machine configured for Intel(tm) CPU.
# 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 live-desktop-hypervisor-intelcpu.cfg -o ../dishes/live-phyllome-desktop-intelcpu.cfg
# to flatten all the files in the recipes repository, to the following
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
# Instructions for creating an ISO file:
# Temporary disable SELinux:
# setenforce 0
# Use the following command to create an ISO file, as the root user:
# livemedia-creator --make-iso --ks ../dishes/live-phyllome-desktop-intelcpu.cfg --no-virt --iso-only --iso-name phyllome-desktop-intelcpu-x86_64.iso --releasever 38
# The resulting ISO can be tested with qemu-kvm, using the following these two commands, as *root*:
# UEFI test:
# qemu-kvm -bios /usr/share/edk2/ovmf/OVMF_CODE.fd -m 2048 -vga qxl phyllome-desktop-intelcpu-x86_64.iso
# BIOS test:
# qemu-kvm -m 2048 -vga qxl phyllome-desktop-intelcpu-x86_64.iso
%include ../ingredients/base-fedora-repo.cfg # offical repositories for Fedora
%include ../ingredients/base-storage-live.cfg # a base storage for live systems
%include ../ingredients/base-live.cfg # A minimal base for live systems
%include ../ingredients/base-desktop-gnome.cfg # A desktop environment based on GNOME Shell
%include ../ingredients/base-desktop-virtual-machine-manager.cfg # the virtual machine manager
%include ../ingredients/base-hypervisor.cfg # A base hypervisor
%include ../ingredients/base-hypervisor-intelcpu.cfg # Specific virtualization configuration for Intel (tm) CPUs

View File

@ -0,0 +1,34 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file bootstraps a live desktop hypervisor machine.
# 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 live-desktop-hypervisor.cfg -o ../dishes/live-phyllome-desktop.cfg
# to flatten all the files in the recipes repository, to the following
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
# Instructions for creating an ISO file
# Temporary disable SELinux:
# setenforce 0
# Use the following command to create an ISO file, as the root user:
# livemedia-creator --make-iso --ks ../dishes/live-phyllome-desktop.cfg --no-virt --iso-only --iso-name phyllome-desktop-x86_64.iso --releasever 38
# The resulting ISO can be tested with qemu-kvm, using the following these two commands, as *root*:
# UEFI test:
# qemu-kvm -bios /usr/share/edk2/ovmf/OVMF_CODE.fd -m 2048 -vga qxl phyllome-desktop-x86_64.iso
# BIOS test:
# qemu-kvm -m 2048 -vga qxl phyllome-desktop-x86_64.iso
%include ../ingredients/base-fedora-repo.cfg # offical repositories for Fedora
%include ../ingredients/base-storage-live.cfg # a base storage for live systems
%include ../ingredients/base-live.cfg # A minimal base for live systems
%include ../ingredients/base-desktop-gnome.cfg # A desktop environment based on GNOME Shell
%include ../ingredients/base-desktop-virtual-machine-manager.cfg # the virtual machine manager
%include ../ingredients/base-hypervisor.cfg # A base hypervisor

34
recipes/live-desktop.cfg Normal file
View File

@ -0,0 +1,34 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file bootstraps a live desktop machine.
# 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 live-desktop.cfg -o ../dishes/live-desktop.cfg
# to flatten all the files in the recipes repository, to the following
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
# Instructions for creating an ISO file
# Temporary disable SELinux:
# setenforce 0
# Use the following command to create an ISO file, as the root user:
# livemedia-creator --make-iso --ks live-desktop.cfg --no-virt --iso-only --iso-name live-desktop-x86_64.iso --releasever 38
# The resulting ISO can be tested with qemu-kvm, using the following these two commands, as *root*:
# UEFI test:
# qemu-kvm -bios /usr/share/edk2/ovmf/OVMF_CODE.fd -m 2048 -vga qxl live-desktop-x86_64.iso
# BIOS test:
# qemu-kvm -m 2048 -vga qxl live-desktop-x86_64.iso
%include ../ingredients/base-fedora-repo.cfg # offical repositories for Fedora
%include ../ingredients/base-live.cfg # A minimal base for live systems
%include ../ingredients/base-storage-live.cfg # a base storage for live systems
%include ../ingredients/base-desktop-gnome.cfg # A desktop environment based on GNOME Shell
poweroff # Shut down the system after a successful installation

22
recipes/nano.cfg Normal file
View File

@ -0,0 +1,22 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file itents to provide a basic block small than the minimal operating system.
# 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 nano.cfg -o ../dishes/nano-server-a.cfg
# to flatten all the files in the recipes repository, to the following
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
%include ../ingredients/base-fedora-repo.cfg # offical repositories for Fedora
%include ../ingredients/base-storage.cfg # base storage
%include ../ingredients/base-nano.cfg # A base system
%include ../ingredients/base-initial-setup.cfg # Includes initial-setup so on first-boot a new user can be created
poweroff # Shut down the system after a successful installation

View File

@ -0,0 +1,26 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file bootstraps a desktop hypervisor meant to be installed inside a virtual machine.
# 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 virtual-desktop-hypervisor.cfg -o ../dishes/virtual-phyllome-desktop.cfg
# to flatten all the files in the recipes repository, to the following
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
%include ../ingredients/base-fedora-repo.cfg # offical repositories for Fedora
%include ../ingredients/base-storage.cfg # base storage
%include ../ingredients/base.cfg # A minimal machine
%include ../ingredients/base-desktop-gnome.cfg # A desktop environment that ships with virtual machine manager
%include ../ingredients/base-desktop-virtual-machine-manager.cfg # the virtual machine manager
%include ../ingredients/base-hypervisor.cfg # A base hypervisor
%include ../ingredients/base-guest-agents.cfg # Guest agents
%include ../ingredients/base-initial-setup-gnome.cfg # Includes initial-setup for GNOME Shell, allowing for the creation of a user after the first boot, as well as some basic configuration
poweroff # Shut down the system after a successful installation

View File

@ -0,0 +1,24 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# What ? This kickstart file bootstraps a desktop machine using GNOME Shell meant to be used as a virtual machine.
# 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 virtual-desktop.cfg -o ../dishes/virtual-desktop.cfg
# to flatten all the files in the recipes repository, to the following
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
%include ../ingredients/base-fedora-repo.cfg # offical repositories for Fedora
%include ../ingredients/base-storage.cfg # base storage
%include ../ingredients/base.cfg # A minimal machine
%include ../ingredients/base-desktop-gnome.cfg # A desktop environment
%include ../ingredients/base-guest-agents.cfg # Guest agents
%include ../ingredients/base-initial-setup-gnome.cfg # Includes initial-setup for GNOME Shell, allowing for the creation of a user after the first boot, as well as some basic configuration
poweroff # Shut down the system after a successful installation

View File

@ -0,0 +1,23 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
#
# What ? This kickstart file bootstraps a server-oriented system.
# In order to be fed to virt-install or a software like livecd-creator, this file needs to be flattened.
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
# ksflatten -c virtual-server.cfg -o ../dishes/virtual-server.cfg
# to flatten all the files in the recipes repository, to the following
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
%include ../ingredients/base-fedora-repo.cfg # Offical repositories for Fedora
%include ../ingredients/base-storage.cfg # A base storage
%include ../ingredients/base.cfg # A base system
%include ../ingredients/base-guest-agents.cfg # Guest agents
%include ../ingredients/base-initial-setup.cfg # Includes initial-setup so on first-boot a new user can be created
poweroff # Shut down the system after a successful installation