Installationsnotiz Systeme, Netzwerke & Security · Fortgeschritten · · 35 min Lesezeit

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.

GentooBtrfsOpenRCKDE PlasmaGRUBSDDM
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:

PartitionZweckDateisystemBeispiel
EFI System PartitionBoot-DateienFAT32/dev/nvme0n1p1
Gentoo-SystemRoot-System und Home-SubvolumesBtrfs/dev/nvme0n1p4

In diesem Beispiel wird eine neue Btrfs-Partition mit ungefähr 80 GB für Gentoo angelegt.

Schritte in GParted

  1. GParted öffnen.
  2. Neue Partition erstellen.
  3. Größe festlegen, zum Beispiel 80 GB.
  4. Partitionstyp auf Primary Partition setzen.
  5. Dateisystem auf btrfs setzen.
  6. Ä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:

  • @gentoo für das Root-Dateisystem
  • @home fü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-pa für Audio-Verwaltung
  • plasma-nm für Netzwerkverwaltung
  • powerdevil fü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