Gentoo Linux Installation mit Btrfs, OpenRC und KDE Plasma
Persönliche Installationsnotiz für Gentoo Linux mit Btrfs-Subvolumes, OpenRC, GRUB, KDE Plasma und SDDM.
Inhaltsverzeichnis
Diese Notiz fasst eine persönliche Gentoo-Installation zusammen. Ziel ist kein vollständiger Ersatz für das offizielle Gentoo Handbook, sondern ein nachvollziehbarer Installationsablauf mit den wichtigsten Befehlen, Entscheidungen und Stolperstellen.
Ausgangslage
Für die Installation wird zunächst eine Live-Umgebung verwendet. In diesem Beispiel wurde mit einer ElementaryOS-Demo gestartet. Die Live-Umgebung dient nur dazu, Partitionen anzulegen, das Zielsystem vorzubereiten und in das spätere Gentoo-System zu wechseln.
Die Beispielinstallation nutzt:
- UEFI-System
- Btrfs als Dateisystem
- getrennte Btrfs-Subvolumes für System und Home
- OpenRC als Init-System
- GRUB als Bootloader
- KDE Plasma mit SDDM
1. Partitionierung vorbereiten
Zuerst wird die Festplatte vorbereitet. In der Live-Umgebung kann dafür ein grafisches Tool wie GParted verwendet werden.
Beispielhafte Aufteilung:
| Partition | Zweck | Dateisystem | Beispiel |
|---|---|---|---|
| EFI System Partition | Boot-Dateien | FAT32 | /dev/nvme0n1p1 |
| Gentoo-System | Root-System und Home-Subvolumes | Btrfs | /dev/nvme0n1p4 |
In diesem Beispiel wird eine neue Btrfs-Partition mit ungefähr 80 GB für Gentoo angelegt.
Schritte in GParted
- GParted öffnen.
- Neue Partition erstellen.
- Größe festlegen, zum Beispiel 80 GB.
- Partitionstyp auf
Primary Partitionsetzen. - Dateisystem auf
btrfssetzen. - Änderungen mit dem grünen Haken übernehmen.
2. Root-Rechte aktivieren
Nach der Partitionierung wird im Terminal weitergearbeitet. Für die folgenden Schritte werden Root-Rechte benötigt.
sudo su
Zur Kontrolle der Datenträger:
lsblk -f
3. Btrfs-Partition einbinden
Zuerst wird die neue Btrfs-Partition temporär unter /mnt eingebunden, damit die Subvolumes erstellt werden können.
mount /dev/nvme0n1p4 /mnt
4. Btrfs-Subvolumes erstellen
Für die Installation werden zwei Subvolumes angelegt:
@gentoofür das Root-Dateisystem@homefür Benutzerdaten
btrfs subvolume create /mnt/@gentoo
btrfs subvolume create /mnt/@home
Danach wird die Partition wieder ausgehängt.
umount /mnt
5. Zielverzeichnisse anlegen
Nun wird die spätere Gentoo-Umgebung vorbereitet.
mkdir -p /mnt/gentoo
mkdir -p /mnt/gentoo/{esp,home}
6. Root-Subvolume einbinden
Das Subvolume @gentoo wird als Gentoo-Root unter /mnt/gentoo eingebunden.
mount -o noatime,commit=120,compress=zstd,space_cache=v2,subvol=@gentoo \
/dev/nvme0n1p4 /mnt/gentoo
7. Home und ESP einbinden
Das Home-Subvolume wird unter /mnt/gentoo/home eingebunden.
mount -o noatime,commit=120,compress=zstd,space_cache=v2,subvol=@home \
/dev/nvme0n1p4 /mnt/gentoo/home
Die EFI System Partition wird unter /mnt/gentoo/esp eingebunden.
mount /dev/nvme0n1p1 /mnt/gentoo/esp
8. Stage3 herunterladen
Jetzt wird in das Gentoo-Zielverzeichnis gewechselt.
cd /mnt/gentoo
Für OpenRC wird ein passendes Stage3-Archiv benötigt. Der konkrete Link ändert sich regelmäßig. Deshalb sollte der aktuelle Stage3-Link von der Gentoo-Downloadseite übernommen werden.
wget <aktueller-stage3-amd64-openrc-link>.tar.xz
Beispielhaft sieht der Dateiname ungefähr so aus:
stage3-amd64-openrc-YYYYMMDDTHHMMSSZ.tar.xz
9. Stage3 entpacken
Das heruntergeladene Archiv wird direkt in /mnt/gentoo entpackt.
tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner
10. Portage-Repository konfigurieren
Zuerst wird das Verzeichnis für die Repository-Konfiguration angelegt.
mkdir --parents /mnt/gentoo/etc/portage/repos.conf
Danach wird die Standardkonfiguration kopiert.
cp /mnt/gentoo/usr/share/portage/config/repos.conf \
/mnt/gentoo/etc/portage/repos.conf/gentoo.conf
11. DNS-Konfiguration kopieren
Damit im Chroot später Netzwerkzugriff möglich ist, wird die DNS-Konfiguration aus der Live-Umgebung übernommen.
cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
12. Systemverzeichnisse einbinden
Für den Chroot müssen wichtige virtuelle Dateisysteme eingebunden werden.
mount --types proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev
mount --bind /run /mnt/gentoo/run
mount --make-slave /mnt/gentoo/run
13. /dev/shm prüfen
Falls /dev/shm in der Live-Umgebung problematisch verlinkt ist, kann es nach dem Chroot zu Fehlern kommen. Bei Bedarf wird es neu angelegt.
test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm
chmod 1777 /dev/shm /run/shm
14. In das Gentoo-System wechseln
Jetzt wird in das neue Gentoo-System gewechselt.
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(gentoo-chroot) ${PS1}"
Um die Umgebung erneut sauber zu laden:
env-update
source /etc/profile
export PS1="(gentoo-chroot) ${PS1}"
15. Portage synchronisieren
Die Paketdatenbank wird synchronisiert.
emerge --sync
Danach kann die Umgebung erneut aktualisiert werden.
env-update
source /etc/profile
export PS1="(gentoo-chroot) ${PS1}"
16. Gentoo-Profil auswählen
Die verfügbaren Profile werden angezeigt.
eselect profile list
Ein Profil wird über die entsprechende Nummer ausgewählt. Beispiel:
eselect profile set 8
17. make.conf öffnen
Die zentrale Portage-Konfiguration befindet sich in /etc/portage/make.conf.
nano /etc/portage/make.conf
18. Kompilierung optimieren
Gentoo kompiliert viele Pakete aus dem Quellcode. Daher sollte die Anzahl der CPU-Kerne berücksichtigt werden.
nproc
Wenn nproc zum Beispiel 16 ausgibt, kann MAKEOPTS entsprechend gesetzt werden.
MAKEOPTS="-j16 -l16"
19. Optionale make.conf-Einstellungen
Einige Einstellungen können in make.conf ergänzt werden.
INPUT_DEVICES="libinput"
Für Python können Ziele gesetzt werden. Die konkreten Versionen sollten zum aktuellen Gentoo-Stand passen.
PYTHON_SINGLE_TARGET="python3_11"
PYTHON_TARGETS="python3_11 python3_12"
ACCEPT_KEYWORDS="~amd64"
20. CPU-Flags mit cpuid2cpuflags ermitteln
Zuerst wird das Tool installiert.
emerge --ask app-portage/cpuid2cpuflags
Dann werden die unterstützten CPU-Features angezeigt.
cpuid2cpuflags
Die Ausgabe kann anschließend in make.conf übernommen werden.
CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt rdrand sha sse sse2 sse3 sse4_1 sse4_2 ssse3"
Falls das Tool nicht dauerhaft im World-Set bleiben soll:
emerge --deselect app-portage/cpuid2cpuflags
21. Grafikkarte ermitteln
Die Grafikkarte wird mit lspci erkannt.
lspci | grep -E "VGA|3D|Display"
Für eine NVIDIA-Grafikkarte kann in make.conf zum Beispiel gesetzt werden:
VIDEO_CARDS="nvidia"
Zusätzliche USE-Flags:
USE="X wayland -passwdqc -nullok -fortran"
MAKEOPTS="-j16 -l16"
INPUT_DEVICES="libinput"
VIDEO_CARDS="nvidia"
CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt rdrand sha sse sse2 sse3 sse4_1 sse4_2 ssse3"
USE="X wayland -passwdqc -nullok -fortran"
22. Gentoo-Toolkit installieren
emerge -av gentoolkit
23. Welt-Update durchführen
Nach der Grundkonfiguration wird das System aktualisiert.
emerge -avuDN @world
24. Paralleles Terminal nutzen
Falls während längerer Kompiliervorgänge ein zweites Terminal benötigt wird, kann erneut in das Gentoo-System gewechselt werden.
sudo su
mount --types proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --bind /run /mnt/gentoo/run
chroot /mnt/gentoo /bin/bash
source /etc/profile
25. Zeitzone festlegen
Für Deutschland wird Europe/Berlin gesetzt.
echo "Europe/Berlin" > /etc/timezone
emerge --config sys-libs/timezone-data
26. Lokalisierung vorbereiten
Die Locale-Datei wird geöffnet.
nano -w /etc/locale.gen
Beispielhafte Einträge:
en_US.UTF-8 UTF-8
de_DE.UTF-8 UTF-8
Danach werden die Locales generiert.
locale-gen
Die verfügbaren Locales werden angezeigt.
eselect locale list
Die gewünschte Locale wird gesetzt. Beispiel:
eselect locale set 10
Anschließend wird die Umgebung aktualisiert.
env-update
source /etc/profile
export PS1="(gentoo-chroot) ${PS1}"
27. Kernel installieren
Für eine schnelle Installation kann der vorkompilierte Gentoo-Kernel verwendet werden.
emerge -av sys-kernel/gentoo-kernel-bin
28. GRUB vorbereiten
Für UEFI wird GRUB entsprechend vorbereitet.
GRUB_PLATFORMS="efi-64"
Danach wird GRUB installiert.
emerge -av sys-boot/grub
29. fstab erzeugen
Für die fstab gibt es mehrere Wege. In dieser Installation wurde genfstab aus den Arch-Install-Scripts genutzt.
In der Live-Umgebung kann dafür bei Bedarf zstd installiert werden.
sudo apt install zstd
Dann kann genfstab ausgeführt werden. Der Pfad hängt davon ab, wohin die Arch-Install-Scripts entpackt wurden.
/home/elementary/Downloads/usr/bin/genfstab -U /mnt/gentoo >> /mnt/gentoo/etc/fstab
Die fstab sollte anschließend kontrolliert werden.
nano /etc/fstab
Falls eine problematische tracefs-Zeile erzeugt wurde, kann sie auskommentiert werden.
# tracefs ...
30. Boot-Verzeichnis prüfen
ls /boot
31. GRUB konfigurieren
GRUB wird in die EFI System Partition installiert.
grub-install --efi-directory=/esp --bootloader-id=Gentoo --target=x86_64-efi
Danach wird die GRUB-Konfiguration erzeugt.
grub-mkconfig -o /boot/grub/grub.cfg
Wenn keine Fehler auftreten, ist Gentoo im Bootloader eingetragen.
32. KDE Plasma installieren
Zuerst werden Plasma Desktop und grundlegende Anwendungen installiert.
emerge -av kde-plasma/plasma-desktop kde-apps/konsole kde-apps/spectacle kde-apps/dolphin x11-misc/sddm kde-plasma/sddm-kcm
Falls dolphin uneindeutig ist, sollte der vollständige Paketname kde-apps/dolphin verwendet werden.
33. Zusätzliche Plasma-Komponenten installieren
emerge -av kde-plasma/plasma-pa kde-plasma/plasma-nm kde-plasma/powerdevil
Kurze Einordnung:
plasma-pafür Audio-Verwaltungplasma-nmfür Netzwerkverwaltungpowerdevilfür Energiemanagement
34. NVIDIA-Lizenz akzeptieren
Wenn während der Installation ein Fehler wegen x11-drivers/nvidia-drivers auftritt, muss die passende Lizenz akzeptiert werden.
nano /etc/portage/make.conf
ACCEPT_LICENSE="NVIDIA-r2"
35. Konfigurationsdateien aktualisieren
Nach größeren Installationen können Konfigurationsdateien aktualisiert werden müssen.
etc-update --automode -3
Falls noch offene Änderungen vorhanden sind:
etc-update
In etc-update kann bei passenden Fällen Option -3 gewählt und bestätigt werden.
36. Display Manager installieren
Damit ein grafisches Login möglich ist, wird SDDM als Display Manager eingerichtet.
emerge -av x11-misc/sddm
Zusätzlich kann display-manager-init installiert werden.
emerge -av gui-libs/display-manager-init
37. Display Manager konfigurieren
Die Konfigurationsdatei wird geöffnet.
nano /etc/conf.d/display-manager
Eintragen:
CHECKVT=7
DISPLAYMANAGER="sddm"
38. Display Manager und Netzwerk aktivieren
Die Dienste werden zum Standard-Runlevel hinzugefügt.
rc-update add display-manager default
rc-update add NetworkManager default
Falls NetworkManager noch nicht installiert ist, muss er vorher installiert werden.
emerge -av net-misc/networkmanager
39. Benutzer anlegen
Ein normaler Benutzer wird angelegt. In Linux-Systemen sind kleingeschriebene Benutzernamen üblich.
useradd -m -G video,audio,wheel -s /bin/bash mikail
passwd mikail
40. elogind aktivieren
Für Sitzungsverwaltung wird elogind beim Booten aktiviert.
rc-update add elogind boot
41. sudo installieren und konfigurieren
sudo sollte installiert und konfiguriert werden, bevor man sich im Alltag mit dem normalen Benutzer anmeldet.
emerge -av app-admin/sudo
Die Sudoers-Datei wird bearbeitet.
EDITOR=nano visudo
Die folgende Zeile wird aktiviert, damit Mitglieder der Gruppe wheel sudo nutzen können.
%wheel ALL=(ALL:ALL) ALL
42. Neustart
Wenn Bootloader, Benutzer, Netzwerk, Display Manager und sudo konfiguriert sind, kann das System neu gestartet werden.
exit
reboot
Nach dem Neustart sollte Gentoo über GRUB gestartet werden können. Anschließend kann man sich über SDDM grafisch einloggen.
43. System Settings installieren
Falls die KDE-Systemeinstellungen noch fehlen, können sie nachinstalliert werden.
sudo emerge -av kde-plasma/systemsettings
Zusammenfassung
In dieser Installation wurden folgende Schritte durchgeführt:
- Btrfs-Partition und Subvolumes vorbereitet
- Gentoo Stage3 mit OpenRC entpackt
- Portage, DNS und Chroot eingerichtet
- Gentoo-Profil,
make.conf, CPU-Flags und Grafikoptionen konfiguriert - Kernel und GRUB installiert
- KDE Plasma, SDDM und wichtige Plasma-Komponenten installiert
- Benutzer, sudo, elogind und Display Manager eingerichtet
Quellen / Referenzen
- Gentoo Handbook
- Gentoo Wiki
- Eigene Installationsnotizen und Screenshots