Firmenbrief

20.07.2010

Tipps vom LIS-Service. Heute: Sinnvolle Partitionierung unter Linux, Teil 3



Im Linux-Firmenbrief 54/2010 stellte ein Leser die Frage, ob und wie Festplatten sinnvoll partitioniert werden. Das „ob“ klärten wir in der Ausgabe 54/2010, weitere Informationen zur Aufteilung lieferten wir mit dem Linux-Firmenbrief 55/2010. Im dritten und letzten Teil erfahren Sie, welche weiteren Partitionierungen Sinn machen und warum.

Antwort: Festplatten zu unterteilen macht durchaus Sinn. In der Praxis hat sich eine Systematik hierfür herausgebildet. Nachdem wir bereits die Partitionen „boot“, „system“, „var“ und „home“ näher erläutert haben, lesen Sie heute Hintergrundinformationen zu den Bereichen „tmp“, „usr“ und „swap“.

1. Partition: tmp

Hier gilt wieder selbiges wie in den bereits genannten Punkten: Damit die Systempartition nicht von Auslagerungsdateien zum Volllaufen gebracht wird, werden hier von Programmen zwischenzeitlich benötigte Daten abgelegt. Vorsicht ist aber geboten - hier sollten keine wichtigen und relevanten Daten hinterlegt werden, da das "/tmp" Verzeichnis bei jedem Neustart des Systems gelöscht wird und die hier hinterlegten Daten somit unwiderruflich gelöscht werden.

2. Partition: usr

Die /usr-Partition enthält viele der Hauptbestandteile des Systems. Auch Software die nachträglich installiert wird, landet in diesem Verzeichnis bzw. in dem Unterverzeichnis "/usr/bin" oder "/usr/sbin". Somit sollte diese Partition nicht zu knapp bemessen sein, damit immer genug Platz für weitere Software vorhanden ist. Als Faustregel gilt: Etwa 1/6 der Festplattenkapazität ist ein guter Mittelwert. Das relativiert sich natürlich, je größer die Festplatte ist. Wäre die Festplatte 1 Terabyte, dann wäre 1/6 entsprechend 166 Gigabyte wesentlich zu viel. Im Normalfall sollten 10 Gigabyte mehr als ausreichend sein.

Zwischenfrage: Warum gibt es nun aber unter der Systempartition einen Ordner "/bin" bzw. "/sbin" wenn dieser doch in dem "/usr" Verzeichnis bereits vorhanden ist?

Antwort:
Das hat den einfachen Grund, dass für den Systemstart elementar wichtige Dateien und Programme unter "/bin" bzw. "/sbin" abgelegt sind, beispielsweise "mount", das Partitionen in das System einbindet.

Würde "mount" nun auf einer anderen Partition als der Systempartition liegen, so könnte das System keine weiteren Partitionen/Festplatten mehr einbinden, weil die Partition, in der die Software liegt, eben nicht eingebunden würde. Dieses Beispiel macht deutlich, warum es eben "/bin" bzw. "/usr/bin" gibt und warum das eine im Gegensatz zu dem anderen Verzeichnis auf einer anderen Partition liegen kann.

3. Partition: swap


Linux und auch jedes andere Betriebssystem versucht, die Komponenten, benötigte Programmdaten etc. nach Möglichkeit komplett im RAM-Speicher abzulegen, da der Zugriff auf die RAM Module deutlich schneller funktioniert als auf andere Datenträger wie CD, USB Stick, Festplatte etc.

Es kann aber auch passieren, dass der komplette RAM Speicher voll läuft. Dies geschieht beispielsweise, wenn zu viele Programme gleichzeitig geöffnet sind und zu wenig RAM vorhanden ist, um diese Datenmenge zu verarbeiten. An dieser Stelle kommt der Swap-Speicher ins Spiel, auf Englisch bedeutet das Wort „Tausch“. Hier beginnt das System nun nach und nach wieder RAM freizugeben, indem Teile des RAM-Speichers auf die Swap-Partition und somit auf die Festplatte geschrieben werden. Sollten diese Daten wieder benötigt werden, so können diese wieder aus dem Swap-Space ins RAM geladen werden. Andere, im Moment nicht benötigte Daten werden auf die Swap Partition geschrieben, umgangssprachlich wird diese Prozedur auch als "Swappen" bezeichnet.

Aus diesem Grund sollte der Swap Bereich etwa ein bis zwei Gigabyte groß sein, damit für den Arbeitsspeicher genug Luft bleibt, falls der RAM Speicher seine Kapazitätsgrenze erreicht.

Sicherheitsrelevante Optionen zum Einbinden der einzelnen Partition, wie beispielsweise die bereits erwähnten Optionen "noexec" und "nosuid" können in der Datei "/etc/fstab" hinterlegt werden. Je nach Belieben können Sie hier noch weitere Optionen für jede einzelne Partition hinterlegen.

Einige Beispiele:
auto        - Partition wird automatisch beim Systemstart gemountet
atime      - Die letzte Zugriffszeit auf die Datei wird geschrieben (Standard)
defaults   - Benutzt automatisch 'dev,suid,rw,exec,auto,nouser'
dev         - Gerätedateien werden interpretiert (d. h. echte Geräte)
exec        - Ausführen von Programmen erlauben   
noatime   - Gegenteil von der Option 'atime'
noauto     - Erhöht die Systemgeschwindigkeit, da die Zugriffszeit nicht automatisch aktualisiert wird
nodev      - Gerätedateien werden nicht interpretiert (Gegenteil von dev)
noexec     - Ausführen von Programmen verbieten (Gegenteil von exec)
suid         - Setzen von SUID Bits erlauben
nosuid     - Setzen von SUID Bits verbieten
nouser     - Nur root darf die Partition mounten
user         - Jeder darf die Partition mounten
remount   - Eine gemountete Partition unmounten und wieder mounten
ro            - Partition wird nur lesbar (ro = readonly) gemountet
rw            - Partition wird auch zum schreiben (rw = read write) gemountet

Weitere Aufteilungen sind denkbar und auch dafür gibt es sicher gute Gründe. Wenn Sie Ihre Festplatte partitionieren, sollten Sie darauf achten, dass sich Aufwand und Nutzen die Waage halten. Bedenken Sie auch, welche Folgeprobleme durch gesetzte Optionen oder das Auslagern von Verzeichnissen entstehen könnten.