Product SiteDocumentation Site

3.2. Partitionieren des Systems

3.2.1. Wählen Sie eine intelligente Partitionierung

Was eine sinnvolle Partitionierung ist, hängt davon ab, wie die Maschine benutzt wird. Eine gute Faustregel ist, mit Ihren Partitionen eher großzügig zu sein und die folgenden Faktoren zu berücksichtigen:
  • Jeder Verzeichnisbaum, auf den ein Benutzer Schreibzugriff hat (wie zum Beispiel /home, /tmp und /var/tmp/) sollte auf einer separaten Partition liegen. Dies reduziert das Risiko eines DoS (Denial of Service, »Dienstverweigerung«) durch einen Benutzer, indem er Ihren »/«-Einhängepunkt vollschreibt und so das gesamte System unbenutzbar macht. [2] Außerdem verhindert dieses Vorgehen Hardlink-Angriffe.[3]
  • Außerdem sollte jeder Verzeichnisbaum, dessen Größe schwanken kann, zum Beispiel /var (insbesondere /var/log) eine separate Partition bekommen. Auf einem Debian-System sollten Sie der /var-Partition etwas mehr Platz als auf anderen Systemen geben, da heruntergeladene Pakete (der Zwischenspeicher von apt) unter /var/cache/apt/archives gespeichert werden.
  • Jede Partition, in der Sie Nicht-Distributions-Software installieren wollen, sollte separat sein. Nach dem File-Hierarchy-Standard wären dies /opt oder /usr/local. Wenn dies separate Partitionen sind, werden sie nicht gelöscht, falls Sie einmal Ihr Debian neu installieren (müssen).
  • Rein sicherheitstechnisch ist es sinnvoll, zu versuchen, statische Daten auf eine eigene Partition zu legen und diese dann als nur-lesbar einzuhängen (mounten). Oder noch besser: Legen Sie diese Daten auf einem rein-lesbaren Medium ab. Lesen Sie dazu die Ausführungen weiter unten.
Im Falle eines Mailservers ist es wichtig, eine separate Partition für die Mail-Warteschlange (mail spool) anzulegen. Nicht-Lokale Benutzer können (wissentlich oder unwissentlich) diese Verzeichnisse (/var/mail oder /var/spool/mail) füllen. Liegt dieses Verzeichnis auf einer separaten Partition, würde dies das System nicht sofort unbenutzbar machen. Anderenfalls (wenn das Verzeichnis auch auf der /var-Partition liegt) hat das System ein großes Problem: Protokoll-Einträge (logs) können nicht erstellt werden, Pakete können nicht installiert werden und es könnten sogar ein paar Programme Probleme mit dem Starten haben (wenn sie /var/run benutzen).
Außerdem sollten Sie für Partitionen, deren Platzbedarf Sie noch nicht abschätzen können, den Logical-Volume-Manager (lvm-common und die benötigten ausführbaren Programme, entweder lvm10 oder lvm2) installieren. Durch Benutzen von lvm können Sie Datenträger-Gruppen erstellen, die über mehrere Festplatten verteilt sind.

3.2.2. Auswahl der passenden Dateisysteme

Während der Partitionierung des Systems müssen Sie sich ebenfalls entscheiden, welche Dateisysteme Sie benutzen möchten. Als Standard-Dateisystem[4] wird während der Installation für Linux-Partitionen ext3 ausgewählt, das ein »Journaling Dateisystem« ist. Es ist empfehlenswert, immer ein solches Dateisystem zu verwenden, wie zum Beispiel ext3, reiserfs, jfs oder xfs. Dadurch verringern Sie Probleme nach einen Absturz des Systems in folgenden Fällen:
  • Auf Laptops auf allen Dateisystemen. Auf diese Art reduzieren Sie die Wahrscheinlichkeit eines Datenverlustes, wenn beispielsweise unerwartet Ihr Akku leer wird oder das System aufgrund eines Hardware-Problems (etwa durch die X-Konfiguration, was relativ häufig auftritt) neu gestartet werden muss.
  • Auf produktiven Systemen, die große Mengen von Daten speichern (zum Beispiel Mail-Server, FTP-Server, Netzwerk-Dateiserver, ...), ist es empfehlenswert, ein Journaling-Dateisystem auf diesen Partitionen einzusetzen. Wenn das System abstürzt, benötigt der Server so weniger Zeit, um das Dateisystem wieder herzustellen und zu prüfen, und die Wahrscheinlichkeit eines Datenverlustes wird verringert.
Lassen wir mal die Betrachtung der Leistung von Journaling-Dateisystemen beiseite (da dies oft in quasi-religiöse Glaubenskriege ausartet). In der Regel ist es besser, das ext3-Dateisystem zu benutzen. Der Grund dafür ist die Abwärtskompatibilität zu ext2. So können Sie, wenn es Probleme mit dem Journal gibt, dieses einfach abschalten und haben immer noch ein funktionierendes Dateisystem. Außerdem müssen Sie, wenn Sie das System mal mit einer Boot-Diskette (oder CD-ROM) wiederherstellen müssen, keinen speziellen Kernel benutzen. Wenn es sich um einen 2.4er oder 2.6er Kernel handelt, ist Unterstützung für ext3 bereits vorhanden. Wenn es sich um einen 2.2er-Kernel handelt, können Sie trotzdem Ihr Dateisystem booten, auch wenn Sie die Journaling-Fähigkeiten einbüßen. Wenn Sie ein anderes Journaling-Dateisystem benutzen, werden Sie feststellen, dass eine Wiederherstellung nicht möglich ist, bis Sie einen 2.4er oder 2.6er Kernel mit den benötigten Modulen haben. Wenn Sie einen 2.2er Kernel auf der Rettungsdiskette verwenden müssen, kann es sich als noch schwerer erweisen, auf reiserfs oder xfs zuzugreifen.
Auf jeden Fall ist die Datenintegrität unter ext3 besser, da es auch Datei-Daten protokolliert, während andere Dateisysteme lediglich Meta-Daten protokollieren (siehe auch http://lwn.net/2001/0802/a/ext3-modes.php3).
Beachten Sie aber, dass es auch einige Partitionen gibt, die von einem Journaling-Dateisystem nicht profitieren könnten. Wenn Sie beispielsweise eine eigene Partition für /tmp/ verwenden, könnte ein übliches ext2-Dateisystem besser sein, weil es bei einem Neustart des Systems ohnehin geleert wird.


[2] Eigentlich ist das so nicht ganz richtig, da immer etwas Platz für Root reserviert wird, den ein normaler Benutzer nicht belegen kann.
[3] Ein sehr gutes Beispiel dieser Art von Angriff, der das /tmp-Verzeichnis benutzt, ist ausführlich auf http://www.hackinglinuxexposed.com/articles/20031111.html und auf http://www.hackinglinuxexposed.com/articles/20031214.html beschrieben (beachten Sie, dass dieser Vorfall in einem Zusammenhang mit Debian steht). Im Prinzip ist das ein Angriff, bei dem ein lokaler Benutzer eine angreifbare Setuid-Anwendung versteckt, indem er einen harten Link zu ihr einrichtet. So kann er wirksam verhindern, dass diese Anwendung vom Systemadministrator aktualisiert (oder entfernt) wird. Dpkg wurde kürzlich verbessert, um das zu verhindern (vergleiche http://bugs.debian.org/225692). Aber andere Setuid-Anwendungen, die nicht vom Paketverwaltungsprogramm gesteuert werden, bleiben ein Risiko, wenn Partitionen nicht richtig eingerichtet werden.
[4] Seit Debian GNU/Linux 4.0 mit dem Codenamen Etch.