# Partitionieren

Wer bei der Installation die jeweiligen Werkzeuge das Einrichten der Festplatte übernehmen lässt, der wird mit der hier besprochenen Problematik nicht in Berührung kommen.

In Abschnitt Partitionen wurde schon Grundsätzliches über die Partitionierung von Festplatten aufgeführt. Was der Sinn der Aufteilung in mehrere Partitionen ist wurde ebenso dort erläutert, wie die Problematik mit großen Festplatten. Hier soll der Schwerpunkt auf die geeignete Anordnung in Bezug auf Linux liegen.

## Wieviele Partitionen passen auf eine Festplatte?

Eine Festplatte kann maximal 4 primäre Partitionen beherbergen. Ursache ist die vor langer Zeit ins Leben berufene Standardisierung des MBR, in dem ganze 64 Bytes zur Aufnahme der Partitionstabelle vorgesehen sind (+446 Bytes für den Code eines Bootloaders + 2 Bytes für eine "Magic number" AA55). Die Informationen zu einer Partition (Bootflag, Start- und Endsektor, Dateisystemtyp...) werden also jeweils in 16 Bytes abgelegt.

Benötigt man weitere, so muss zumindest eine diese Partitionen eine erweiterte sein, die dann ihrerseits mehrere logische Partitionen enthalten kann (genau genommen enthält sie einen Zeiger auf die erste logische Partition, in dessen Bootsektor sich der Zeiger auf die nächste logische Partition befindet, usw.). Die Anzahl logischer Partitionen ist bei (E)IDE-Platten auf maximal 63 und bei SCSI-Platten auf 15 begrenzt.

## Wieviele Partitionen sind mindestens notwendig?

- Es ist wohl einleuchtend, dass jedes zu installierende Betriebssystem mindestens eine eigene Partition benötigt, also ist die Summe der von uns verwendeten Systeme schon einmal die untere Schranke der Partitionenanzahl.
- Aus Gründen der Effizienz benötigt man unter Linux mindestens zwei (primäre oder logische) Partitionen. Eine dient zur Aufnahme der Root-Partition, die andere steht als Swap-Speicher zur Verfügung.
  Swap-Speicher dient der Auslagerung von Speicherseiten aus dem Hauptspeicher auf die Festplatte, falls im Hauptspeicher nicht genügend Platz zum Laden der Programme/Daten vorhanden ist. Als Summe von Swap-und Hauptspeicher sollte man mindestens 64MB veranschlagen, mit 128MB ist man bei den meisten Anwendungen auf der sicheren Seite. Mit einem entsprechenden Kernel kann eine Swap-Größe von bis zu 8 GByte (64 Partitionen zu je 128 MByte) verwaltet werden.

## Wieviele Partitionen sind für Linux ratsam?

Im speziellen Fall wird man sicher bessere Lösungen finden, als die, die ich hier angebe. Aber bei der Verteilung der Partitionen das Optimum herauszuholen, bedeutet auf jegliche Hardwarekonstellation und jeden Einsatzbereich einzugehen. Deswegen sollten die nachfolgenden Tipps nur als Faustregeln verstanden werden.

- Wer mehrere Festplatten sein Eigen nennt, der sollte eine Verteilung der Installation über diese in Betracht ziehen.
  In einem Linuxsystem bewerben sich etliche Prozesse um die knappen Hardwareressourcen und nicht viele davon greifen konkurrierend auf die Festplatte(n) zu. Liegen die Daten zweier Prozesse auf ein und derselben Festplatte, dann wird der Schreib/Lesekopf im Sinne der Gleichbehandlung der Anforderungen mal ein Stück der einen Datei, dann wieder eine Portion der anderen lesen. D.h. zusätzlich zur reinen Zeit für das Lesen der Dateien geht noch Zeit für die Kopfpositionierung drauf. Lägen die Daten auf verschiedenen Festplatten, gelängen die Zugriffe wesentlich schneller...
  Jetzt weiß man zwar niemals, welcher Prozess zu welcher Zeit auf welche Datei zugreift, aber mit ein paar simplen Überlegungen lassen sich einige Verzeichnisse herauspicken, die man besser auf getrennten Festplatten/Partitionen anlegen sollte:
  - Swap-Partition und das Root-Verzeichnis sind sichere Kandidaten... Gerade bei Rechnern mit geringem Hauptspeicherausbau (< 128 MB) ist der Swap heiß begehrt...
  - `/usr` und `/usr/lib` sollten auf verschiedene Platten: Die meisten Programme erfordern das dynamische Nachladen von Bibliotheken. Wird also ein Programm aus `/usr/bin` gestartet, werden meist noch eine Reihe von Bibliotheken aus `/usr/lib` geladen. Das geht schneller, wenn beide Verzeichnisse auf getrennten Platten liegen...
  - Ähnliche Überlegungen legen eigene Bereiche für `/var` und `/tmp` ... nahe.
- Aber auch wenn nur eine Festplatte für Linux verfügbar ist, lassen sich einige Optimierungen treffen:
  - Die Zugriffsgeschwindigkeit bei neueren Festplatten hängt stark von der Zylindernummer ab (siehe Partionen). So sollten die stark frequentierten Partitionen außen (kleine Zylindernummer) liegen und die weniger gebräuchlichen auf den inneren Zylindern.
    Eine Aufteilung der Art : `/boot` (1024-Zylinder-Problem), Swap, Root-Verzeichnis, ..., `/home`
  ist sicher nicht verkehrt.
- Andere Überlegungen empfehlen die Trennung der statischen von den dynamischen Daten. So werden die Daten im Verzeichnis `/var` auf einem als Server eingesetzten System binnen kürzester Zeit expandieren. Und die Heimatverzeichnisse der Nutzer vom eigentlichen System zu trennen, ist immer eine gute Idee. Letzteres ermöglicht ein späteres Update des Systems ohne die privaten Daten sichern zu müssen und es gibt noch einen wichtigeren Grund...
  Angenommen wir haben eine simple Installation vorgenommen und die Platte nur in die Bereiche für den Swap-Speicher und eine Partition für den Rest aufgeteilt. Viel freier Speicher ist nicht mehr übrig geblieben, dafür laden sich die Nutzer fleißig die dicksten Movies aus dem Netz... Nicht mehr lange und der Vorrat an Speicherkapazität ist erschöpft.
  Was wird passieren? Niemand wird mehr vernünftig mit dem System arbeiten können, da kein Prozess mehr vermag, seine Statusdaten abzulegen. Der Systemverwalter will sich anmelden und per Hand Platz schaffen... und scheitert, da nicht mal ihm Ressourcen zur Verfügung stehen. Unter Umständen muss das System neu gestartet werden.

Was hier nicht erwähnt wurde... ist die Möglichkeit des Einsatzes von Raid-Systemen. Aber diese werden ohnehin nur im Serverbereich oder für den Freak von Interesse sein...