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:
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
|
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
|
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.