# Partitionen

Festplatten müssen vor ihrer Benutzung als Speichermedium in Partitionen unterteilt werden. Notwendig sind solche Einteilungen, um eine Art Inhaltsverzeichnis auf der Festplatte einzurichten, anhand dessen die gespeicherten Daten effizient verwaltet werden können.

Eine Festplatte kann auch nur eine einzige Partition beherbergen, aber es gibt viele Gründe, eine Aufteilung vorzunehmen:

| Linux benötigt eine Auslagerungsdatei, falls im Hauptspeicher kein Platz mehr frei ist. Eine eigene "Swap"-Partition ist effizienter als eine "Swap"-Datei!
| Möglicherweise kann das BIOS nur die ersten 1024 Zylinder der Platte adressieren (INT13), der Kernel sollte in einer Partition innerhalb dieser Grenze liegen.
| Bei einem Plattencrash sind nur die Daten der betroffenen Partition hinüber.
| Daten lassen sich gezielt in Partitionen speichern => Leistungsoptimierung. Bei älteren Festplatten war die Anzahl der Sektoren pro Spur konstant, neuere verfügen auf den äußeren Spuren über eine höhere Anzahl Sektoren als auf den inneren. Da die Drehzahl konstant ist, werden auf äußeren Zylindern pro Umdrehung mehr Daten gelesen als auf den inneren. Bei der Fragmentierung der Daten werden diese nicht über die gesamte Festplatte verteilt, sondern nur innerhalb der Partition.
| Indem Daten und System eigene Partitionen erhalten, ist ein Update einfacher zu realisieren. Nur die Systempartition ist zu modifizieren.

Unabdingbar wird eine Unterteilung aber erst, wenn man mehrere Betriebssysteme gleichzeitig auf einer Platte installiert haben will.

Auf die spezielle Aufteilung der Festplatte für Linuxsysteme kommen wir im Kapitel Installation zurück.

Für Festplatten mit mehr als 1024 Zylindern ist zu beachten, dass zumindest der Linux-Kernel innerhalb der ersten 1024 Zylinder liegen sollte. Diese Restriktion ist keine Einschränkung des Betriebssystems sondern den mangelnden Fähigkeiten vieler BIOS-Implementierungen geschuldet, die oftmals nur die ersten 8.4 GB erkennen. Ein solches BIOS berechnet die absolute Adresse eines Sektors aus der Anzahl der Zylinder, Schreib-/Leseköpfe und Sektoren pro Zylinder (Cylinder/Heads/Sectors - CHS).

Durch die Einführung von Festplatten mit einer unterschiedlichen Sektorenanzahl auf den Zylindern musste man einem "alten" BIOS ermöglichen, auch solche Platten zu adressieren. Die Industrie entschied sich, allen Platten dieser Bauart einheitlich die Dimension 16383 Zylinder, 16 Köpfe, 63 Sektoren/Zylinder zu verleihen.

Steigen wir in die Tiefen der Bits und Bytes ab. Das CHS-Format wird durch 3 Bytes dargestellt, z.B.: 14 Bits für die Zylindernummer (2^14 = 16384), 4 Bits für die Köpfe (2^4 = 16) und 6 Bits für die Sektoren (2^6 = 64). Ein auf CHS aufbauendes BIOS rechnet jedoch mit einer anderen Aufteilung: 10 Bits Zylinder (2^10 = 1024), 8 Bits Köpfe (2^8 = 256) und 6 Bits Sektoren (2^6 = 64), wodurch letztlich die gleiche Anzahl an Sektoren adressierbar ist (1024*256*64*521 = 8Gb).

Zum Glück weiß eine Festplatte selbst, wo der Sektor Nummer 34788 ist, und ihr ist egal, nach welcher Vorschrift das BIOS diese Nummer berechnet. Allerdings sind die meisten Bootloader auf die Adressierungsmöglichkeiten des BIOS angewiesen und verwenden dieselbe Berechnungsvorschrift, um den Zielsektor herauszufinden. D.h. der Bootloader muss beim Laden des Kernels diesen innerhalb der vom BIOS gegebenen Grenzen vorfinden.

Im konkreten Fall von Linux kann es somit günstig sein, eine kleine Partition (10 MB) für das Verzeichnis `/boot` innerhalb dieser 1024 Zylinder anzulegen. Auf den einzelnen Partitionen wird nun das Dateisystem von Linux ext2fs eingerichtet. Mindestens einer Partition muss nun ein so genannter Mount-Point zugeordnet werden, der `/` für das Root-Filesystem. Mindestens das Root-Filesystem wird dabei bereits vom Kernel "gemountet", alle anderen Dateisysteme können auch per Hand nachträglich eingehangen werden:

`root@sonne> mount /dev/hda1 /`

`/dev/hda1` bezeichnet hier die erste Partition auf der ersten IDE-Festplatte, also das, was unter DOS/Windows als Laufwerk C: angesprochen wird. Unterschiedliche Laufwerke, ob Festplatten, Disketten- oder CDROM- Laufwerke werden im Linux-Dateisystem verborgen, indem sie in ein (leeres) Verzeichnis eingehangen werden:

`root@sonne> mount -t iso9960 /dev/cdrom /cdrom root@sonne> mount /dev/hdb2 /home/user/lwd root@sonne> mount -t msdos /dev/fd0 /mnt`

Der Mount-Point (das Verzeichnis) muss existieren, genauso muss dem `mount`-Kommando der Typ des Dateisystems mitgeteilt werden, falls dieses nicht ext2fs ist.

Ohne Parameter aufgerufen, listet `mount` alle momentan gemounteten Partitionen auf. Um ein Dateisystem wieder abzuhängen, nutzt man

`root@sonne> umount /cdrom root@sonne> umount /dev/fd0`

Beide Kommandos können (Wer hätte etwas anderes erwartet?) nur von `Root` ausgeführt werden - es sei denn, er entscheidet sich für eine Liberalisierung. Dazu kann er entsprechende Einträge in der Datei `/etc/fstab` vornehmen.