linux-arch-alpine-minimal performance optimization boot-time systemd openrc

Boot Time Optimization: Fast Startup (Artikel 221)

Analyse und Beschleunigung des Linux-Bootvorgangs. Erfahren Sie alles über systemd-analyze, die Verschlankung des Initramfs und das Minimieren von Hardware-Timeouts.

# Boot Optimization: In Sekunden zur Einsatzbereitschaft

TL;DR / Management Summary In Cloud-Umgebungen und bei Edge-Devices ist die Boot-Zeit ein kritischer Faktor (Auto-Scaling, Power-Cycling). Ein Standard-Linux braucht oft 30-60 Sekunden zum Starten. In diesem Modul lernen wir, wie wir Alpine und Arch so trimmen, dass der Login-Prompt in unter 5 Sekunden erscheint. Wir nutzen systemd-analyze, entschlacken das Initramfs und eliminieren unnötige Hardware-Probes.


# 1. Einführung & Architektur

Den Flaschenhals finden.

Der Bootvorgang besteht aus drei Phasen:

  1. Firmware (UEFI/BIOS): Initialisiert Hardware.
  2. Loader (GRUB/systemd-boot): Lädt Kernel und Initramfs.
  3. Kernel & User-Space: Startet Dienste.

# Der Boot-Analyse Flow (Mermaid)

graph LR
    A[Power On] --> B[UEFI: ~2s]
    B --> C[Bootloader: ~1s]
    C --> D[Kernel: ~1s]
    D --> E[Init System: Services]
    subgraph "Optimization Areas"
        E --> F[Parallel Start]
        E --> G[Delay Services]
        E --> H[Disable Bloat]
    end
    F/G/H --> I[Ready: < 5s]

# 2. Analyse: Wo geht die Zeit verloren?

Messen statt Raten.

# Unter Arch Linux (systemd)

# Zusammenfassung
systemd-analyze

# Detaillierte Liste der Dienste (Wer ist der Langsamste?)
systemd-analyze blame

# Kritische Pfade visualisieren
systemd-analyze critical-chain

# Unter Alpine (OpenRC)

Nutzen Sie den integrierten Zeitstempel (muss in /etc/conf.d/rc aktiviert werden):

rc-status --manual

# 3. Initramfs Optimierung

Die ‘Mini-Disk’ abspecken.

Das Initramfs enthält alle Treiber für den Start. Ist es zu groß, dauert das Laden von der Disk (besonders bei HDD/SD-Karten) lange.

# In Arch (mkinitcpio)

Datei: /etc/mkinitcpio.conf Nutzen Sie den autodetect Hook. Er packt nur die Treiber ins Image, die auf Ihrem aktuellen System wirklich geladen sind.

HOOKS=(base udev autodetect modconf block filesystems keyboard fsck)

Danach: sudo mkinitcpio -P.

# In Alpine (mkinitfs)

Nutzen Sie nur die Features, die Sie brauchen: Datei: /etc/mkinitfs/mkinitfs.conf

features="ata base virtio ext4" # Kein 'crypt' oder 'raid', wenn nicht genutzt!

# 4. Day-2 Operations: Kernel-Parameter & Timeouts

Den Bootvorgang beschleunigen.

# Bootloader-Wartezeit verkürzen

In /etc/default/grub: GRUB_TIMEOUT=0 (Startet sofort den Standard-Kernel).

# Kernel-Stille (Quiet Boot)

Die Textausgabe auf dem Schirm verlangsamt den Bootvorgang minimal. linux /vmlinuz ... quiet loglevel=3 rd.udev.log_priority=3

# Fastboot (fsck überspringen)

Überspringen Sie den Dateisystemcheck beim Booten (Sicher bei Journaling FS wie Ext4/XFS): fastboot als Kernel-Parameter anhängen.


# 5. Troubleshooting & “War Stories”

Wenn ‘schnell’ zu ‘instabil’ wird.

# Story 1: “Der hängende Netzwerk-Mount”

Symptom: Der Bootvorgang hakt für exakt 90 Sekunden bei “A start job is running for /mnt/nfs”. Ursache: Das System versucht einen Remote-Share zu mounten, bevor das Netzwerk vollständig da ist. Lösung: Nutzen Sie x-systemd.automount in der fstab oder setzen Sie noauto, damit der Bootloader nicht auf den Mount wartet.

# Story 2: “Hardware nicht gefunden”

Symptom: Nach der Initramfs-Optimierung (autodetect) bootet der Server auf neuer Hardware (z.B. nach Migration von KVM zu VMware) nicht mehr. Ursache: Die Treiber für den neuen Storage-Controller fehlen im minimalistischen Initramfs. Lösung: Bauen Sie ein Fallback-Image mit allen Standard-Treibern (mkinitcpio -p linux-lts). Nutzen Sie dieses zum Booten nach Migrationen.


# 6. Fazit & Empfehlung

  • Wahl: systemd-boot ist oft schneller als GRUB, da es weniger Logik enthält.
  • Minimalismus: Deaktivieren Sie alle systemd-Services, die Sie nicht zwingend beim Start brauchen. Nutzen Sie Socket Activation (Artikel 007).
  • Hardware: Auf virtuellen Maschinen ist der Gewinn durch Optimierung oft am größten, da Hardware-Initialisierung entfällt.

# Anhang: Cheatsheet

Aufgabe Befehl
Boot Zeit Report systemd-analyze plot > boot.svg
Dienste deaktivieren systemctl disable --now <name>
Initramfs Größe sehen ls -lh /boot/initramfs*
Kernel Params prüfen cat /proc/cmdline
Verwaiste Mod-Configs ls /etc/modprobe.d/
Hardware Probes aus modprobe.blacklist=sp5100_tco (Beispiel)