linux-arch-alpine-minimal performance optimization storage minimalism disk-usage

Minimizing Disk Usage: Lightweight Setup (Artikel 219)

Strategien zur Minimierung des Speicherplatzverbrauchs auf Linux-Systemen. Erfahren Sie, wie Sie unnötige Dateien entfernen, Repositories verschlanken und die Image-Größe optimieren.

# Disk Minimalisierung: Jedes Megabyte zählt

TL;DR / Management Summary Ein schlankes System bootet schneller, lässt sich schneller klonen und bietet weniger Angriffsfläche. In diesem Modul lernen wir, wie wir Alpine und Arch auf das absolute Minimum schrumpfen. Wir entfernen Dokumentationen, Sprachdateien und temporäre Caches, die oft 50% der Systemgröße ausmachen. Ziel ist ein System, das auf eine 1GB-Partition passt, ohne an Funktionalität zu verlieren.


# 1. Einführung & Konzepte

Der Kampf gegen den ‘Bloat’.

Die meisten Distributionen installieren standardmäßig hunderte Megabyte an “Hilfsmaterial”, das auf einem Server niemals gelesen wird.

# Die Speicherfresser (Mermaid)

graph TD
    A[Standard Install: ~1GB] --> B[Package Manager Cache: ~200MB]
    A --> C[Locales & Documentation: ~300MB]
    A --> D[Firmware: ~150MB]
    A --> E[Logs & Temp Files: ~100MB]
    B/C/D/E --> F[Optimization Process]
    F --> G[Minimal Install: < 200MB]

# 2. Dokumentation und Locales entfernen

Textballast abwerfen.

# 1. Sprachdateien (Locales)

Die meisten Server brauchen nur Englisch (oder Deutsch). Alles andere kann weg.

  • Arch: Nutzen Sie localepurge (AUR), um bei jedem Update automatisch alle ungenutzten Sprachdateien zu löschen.
  • Alpine: Alpine ist bereits minimal und liefert keine Locales mit (siehe Artikel 218).

# 2. Manpages und Info-Docs

# Radikaler Weg für Container/Appliances:
sudo rm -rf /usr/share/man/*
sudo rm -rf /usr/share/doc/*
sudo rm -rf /usr/share/info/*

# 3. Paketmanager-Hygiene

Aufräumen nach der Arbeit.

Paketmanager laden Archive herunter und speichern diese lokal.

# Arch Linux (pacman)

# Behalte 0 Versionen (lösche alles nach Install)
sudo pacman -Scc

# Alpine (apk)

Nutzen Sie --no-cache (Artikel 194). Wenn Sie es vergessen haben:

rm -rf /var/cache/apk/*

# 4. Day-2 Operations: Unnötige Firmware

Treiber für Hardware, die nicht da ist.

Auf virtuellen Maschinen (Proxmox/Cloud) installieren Linux-Systeme oft hunderte Megabyte an Firmware-Dateien für WLAN-Chips, Soundkarten oder RAID-Controller.

# Firmware entschlacken

# In Arch
sudo pacman -Rs linux-firmware
# Installieren Sie stattdessen nur die Virtio-Treiber

# 5. Troubleshooting & “War Stories”

Wenn das System zu leer ist.

# Story 1: “Die fehlende Fehlermeldung”

Symptom: Ein Admin versucht ein Problem mit Nginx zu lösen, aber man nginx liefert: bash: man: command not found. Er kann keine Hilfe-Seiten lesen. Ursache: Zu aggressive Minimalisierung hat das man-db Paket oder die Manpages entfernt. Lösung: Nutzen Sie Online-Ressourcen (Arch Wiki) oder installieren Sie das Paket temporär nach. Lektion: Entfernen Sie Manpages nur auf Systemen, die Sie nicht interaktiv warten.

# Story 2: “Dependency-Break durch Löschen”

Symptom: Nach dem manuellen Löschen von /usr/share/zoneinfo (um Platz zu sparen) starten viele Dienste (Java, Python) nicht mehr. Ursache: Die Applikationen brauchen die Zeitzonendaten, um korrekte Zeitstempel zu setzen. Lösung: Löschen Sie niemals blind Verzeichnisse in /usr/share/. Nutzen Sie die Paketmanager-Funktionen, um zu sehen, was wirklich weg kann.


# 6. Fazit & Empfehlung

  • Automation: Bauen Sie die Bereinigungs-Befehle in Ihre CI/CD Pipeline (Artikel 209) ein.
  • Analyse: Nutzen Sie ncdu (Artikel 024), um regelmäßig nach großen Verzeichnissen zu suchen.
  • Wahl: Alpine ist von Haus aus so klein, dass manuelle Minimalisierung oft nur noch wenige Megabyte bringt. Bei Arch hingegen ist das Potenzial riesig.

# Anhang: Cheatsheet

Aufgabe Arch Befehl Alpine Befehl
Cache leeren pacman -Scc rm -rf /var/cache/apk/*
Platzverbrauch finden ncdu / `du -sh /*
Verwaiste Pakete `pacman -Qtdq pacman -Rs -`
Logs begrenzen journalctl --vacuum-size=50M logread (ist im RAM)
Temp Files löschen rm -rf /tmp/* rm -rf /tmp/*
Kernel Header weg pacman -Rs linux-headers apk del linux-headers
Firmware entfernen pacman -Rs linux-firmware apk del linux-firmware-*
Dokumentation weg rm -rf /usr/share/doc rm -rf /usr/share/doc
Locales purgen localepurge N/A (Standard minimal)