
Partitionen, Dateisysteme, Mountpunkte und Bootloader: Dieser Artikel vermittelt, was die Kandidaten in der LPI-Prüfung 101 über die Festplatte wissen müssen.
Bevor ein Administrator mit der Installation eines Linux-Systems beginnt, macht er sich Gedanken über die Aufteilung der Festplatte, also die Partitionierung. Für die ordentliche Ablage der Daten sorgen Dateisysteme. Dieser Artikel behandelt die Befehle zum Partitionieren der Platte sowie zum Anlegen, Prüfen und Pflegen von Dateisystemen, die das LPI in Prüfung 101 abfragt. Daneben geht es um die Installation des Bootloaders.
Welche Daten sich in einem Linux-System wo befinden, ist im Filesystem Hierarchy Standard (FHS, [3]) genau geregelt. Er legt beispielsweise fest, dass sich Programme in den Verzeichnissen »/bin/«, »/sbin/« oder »/usr/bin/« oder »/usr/sbin/« befinden, systemweite Konfigurationsdateien in »/etc/«. Veränderliche (variable) Daten wie Logdateien oder Mail- oder Druckerwarteschlangen liegen im Verzeichnis »/var/«, Kernel und Bootloader in »/boot/«.
Bei einigen dieser Verzeichnisse bietet es sich an, sie auf eigene Partitionen auszulagern. Dadurch kann immer nur eine Partition volllaufen, der Rest des Systems bleibt unbeeinträchtigt. Das funktioniert für fast alle Verzeichnisse, Ausnahmen sind »/bin/«, »/sbin/« und »/lib/«, das gemeinsam genutzte Bibliotheken für Programme in »/bin/« und »/sbin/« enthält, sowie »/etc/« und »/dev/« (enthält Gerätedateien).
Diese Verzeichnisse müssen alle auf der Hauptpartition des Systems liegen, die auch als Root- oder Wurzelpartition bezeichnet wird. Eine Installation benötigt mindestens zwei Partitionen: die Root-Partition sowie eine Swap-Partition als Auslagerungsspeicher.
Eigene Partitionen bieten sich besonders für Verzeichnisse an, die sich schnell ändernde Daten enthalten: »/var/« und »/home/«. Früher fand sich häufig eine eigene kleine »/boot/«-Partitition für Bootloader und Kernel direkt am Anfang der Festplatte. Ältere Bios konnten nur Zylinder bis 1024 direkt adressieren, sodass sich diese bereits beim Booten geladenen Dateien unterhalb dieser Zylindergrenze befinden mussten.
Die meisten Distributionen bringen während der Installation ihre eigenen Partitionierungsmasken mit, das LPI fragt jedoch das klassische Kommandozeilenwerkzeug Fdisk ab. Der Befehl »fdisk -l« liefert die aktuelle Partitionstabelle. Der Aufruf mit einem Gerätenamen startet den interaktiven Modus, mit »fdisk /dev /hda« etwa lässt sich die erste IDE-Festplatte am ersten IDE-Controller bearbeiten. Im interaktiven Modus von Fdisk liefert [M] eine Übersicht aller verfügbaren Befehle (Abbildung 1).
Mit [N] startet der Modus zum Anlegen einer neuen Partition. Wichtig ist, bei der Angabe der gewünschten Partitionsgröße auf die richtige Einheit zu achten: Eine Zahl wertet Fdisk als Zahl von Zylindern, und zwar als absolute Zylinderzahl. Das heißt bei Eingabe der Zahl »150« beispielsweise "Partition endet bei Zylinder 150". Admins wünschen sich aber meist eine Größenangabe: »+2000M« zum Beispiel sorgt für eine 2 GByte große Partition. Abbildung 2 zeigt das Anlegen einer neuen Partition von 500 MByte Größe.
Beim Anlegen der Partition (Abbildung 2) fragt Fdisk nach ihrem Typ - logisch oder primär. Pro Festplatte gibt es maximal vier primäre Partitionen. Diese sind in der Partitionstabelle im Master Boot Record (MBR) am Anfang der Festplatte verzeichnet. Soll es mehr Partitionen geben, so muss eine der primären Partitionen als erweiterte Partition angelegt sein. In ihr sind bis zu 63 (IDE-Festplatten) oder 15 (SCSI-Festplatten) logische Partitionen möglich.
| LPI-Aufgabengruppen |
|---|
| Das Linux Professional Institute gliedert die Prüfungsfragen in Aufgabengruppen ([1], [2]). Dieser Artikel erklärt die Abschnitte:
|
Die primären Partitionen tragen die Nummern 1 bis 4, die logischen ab 5 aufwärts. Im Beispiel gibt es eine neue logische Partition mit der Nummer 7 (»/dev/sda7«), die zweite der primären (»/dev/sda2«) ist als erweiterte Partition angelegt. Anders als andere Betriebssysteme muss Linux nicht auf einer primären Partition installiert sein.
Jede Partition hat eine so genannte Partition-ID. Diese setzt Fdisk standardmäßig auf den Typ 83 (normale Linux-Partition). Möchte ein Administrator die Partition als Swap-Bereich oder beispielsweise mit einem BSD-Dateisystem nutzen, ändert er die ID mit [T]. Ein [Q] (für Quit) beendet Fdisk ohne Abspeichern der neuen Partitionstabelle, [W] (für Write) speichert die Änderungen.
Um die neue Partition verwenden zu können, fehlt darauf noch ein Dateisystem. Der Befehl zum Anlegen von Dateisystemen ist »mkfs«. Das klassische Linux-Dateisystem ist Ext 2, ohne Angabe von Parametern legt »mkfs« daher ein Dateisystem dieses Typs an. Weitere Dateisysteme lassen sich mit der Option »-t« auswählen, so legt »mkfs -t reiserfs« beispielsweise ein Reiser-FS an, eine Alternative ist der Befehl »mkreiserfs« [4]. Daneben existieren Befehle nach dem Muster »mkfs.xfs« und »mkfs.vfat«, um etwa XFS- oder FAT-Dateisysteme zu erzeugen. Eine Swap-Partition entsteht mit dem Befehl »mkswap«.
Beim Anlegen der Dateisysteme lassen sich unterschiedliche Parameter setzen, für Ext 2 und 3 beispielsweise der Prozentsatz an Datenblöcken, die für den Benutzer Root reserviert sind (»mke2fs -m«). Das nachträgliche Ändern dieser Werte ist mit »tune2fs« möglich. »dumpe2fs« liefert eine ausführliche Ausgabe der aktuell gesetzten Parameter. In regelmäßigen Abständen sollte jeder Admin ein Ext-2/3-Dateisystem auf Inkonsistenz prüfen. Das erledigt der Befehl »fsck« oder gezielt für Ext 2 und dessen Nachfolger Ext 3 »e2fsck«.
Damit die neue Partition dem Linux-System zur Verfügung steht, muss der Administrator sie in die Verzeichnishierarchie einbinden. Das erledigt Root mit dem Befehl »mount«, dem er die Gerätedatei der Partition und den gewünschten Mountpunkt mitgibt:
mount /dev/hda5 /space
Ein Mountpunkt ist ein Verzeichnis in der Verzeichnishierarchie, über das man auf den Inhalt der Partition zugreifen kann. Es sollte leer sein - denn ist einmal etwas dorthin gemountet, ist bei herkömmlichen Dateisystemen der Zugriff auf den ursprünglichen Verzeichnisinhalt nicht mehr möglich.
Ohne Parameter aufgerufen zeigt der »mount«-Befehl alle gerade eingehängten Partitionen an - auch die neue Partition sollte darunter sein. Der Befehl »df -h« (Disk free) gibt ebenfalls eine Liste aller gemounteten Partitionen aus, inklusive des noch verfügbaren Platzes. Die Option »-h« (Human-readable) sorgt für die lesefreundliche Ausgabe in Einheiten wie MByte oder GByte.
Das Unmounten (Aushängen) erledigt der Befehl »umount«. Dabei darf nur der Mountpunkt beziehungsweise die Device-Datei angegeben werden:
umount /space
Damit Linux eine Partition automatisch beim Booten des Systems einbindet, trägt der Administrator sie in die Datei »/etc/fstab« ein, die Filesystem Table. Den Aufbau einer solchen Dateisystem-Tabelle zeigt Listing 1.
|
Listing 1: |
|---|
01 /dev/sda5 / ext3 defaults 1 1 02 /dev/sda2 /boot ext3 defaults 1 2 03 /dev/sda6 /var reiserfs usrquota,grpquota 1 2 04 /dev/sda1 swap swap pri=42 0 0 05 devpts /dev/pts devpts mode=0620,gid=5 0 0 06 proc /proc proc defaults 0 0 07 usbdevfs /proc/bus/usb usbdevfs noauto 0 0 08 /dev/cdrom /media/cdrom auto ro,noauto,user,exec 0 0 |
Die Partition »/dev/sda5« mit einem Ext-3-Dateisystem ist die Root-Partition (Mountpunkt »/«). Der Eintrag »defaults« im vierten Feld der Datei legt fest, dass diese Partition mit den voreingestellten Standardwerten gemountet wird. Dazu gehören unter anderem die Parameter »rw« (lesender und schreibender Zugriff) sowie »auto«, der fürs automatische Einbinden beim Booten sorgt. Die Zahl in der vorletzten Spalte der Fstab-Einträge dient dem Befehl »dump«, der früher zur Datensicherung eingesetzt wurde, als Indikator, ob er eine Partition mitsichern soll (»1«) oder nicht (»0«).
Der letzte Wert eines Eintrags in der Fstab legt die Reihenfolge fest, in der das System die Partitionen einem Dateisystemcheck unterzieht, falls der Rechner etwa nach einem Stromausfall wieder hochfährt. Die Root-Partition bekommt hier üblicherweise den Wert »1«, da sie als wichtigste Partition zuerst überprüft werden sollte, alle anderen Partitionen meist die »2«, auch wenn prinzipiell Werte bis 9 möglich sind.
Die Partition »/dev/sda1« enthält im Beispiel die Swap-Partition. Als Mountpunkt ist kein Verzeichnis, sondern (ebenso wie beim Dateisystemtyp) nur das Stichwort »swap« eingetragen. Der Parameter »pri=42« bestimmt die Priorität, mit der sie genutzt wird. Bei der Swap-Partition sind die Werte für »dump« und den Dateisystemcheck auf »0« gestellt, denn den Swap-Bereich muss Linux weder sichern noch überprüfen.
Das Verzeichnis »/var/« ist in Listing 1 auf eine eigene Partition ausgelagert, sie enthält ein Reiser-Dateisystem. Das Beispiel setzt zusätzlich zu den Standard-Mountparametern die Parameter »usrquota« und »grpquota«. Sie dienen dem Aktivieren von Dateisystem-Quotas, die den Speicherplatz für Benutzer und Gruppen limitieren. Mit dem Thema Quotas beschäftigt sich die nächste Folge dieser LPI-Serie.
Bei den Einträgen für »devpts«, »proc« und »usbdevfs« handelt es sich um spezielle Dateisysteme, die nicht auf Partitionen liegen, sondern systeminterne Funktionen beispielsweise für das USB-System zur Verfügung stellen.
Der letzte Eintrag in der Beispieldatei ermöglicht den Zugriff auf CD-ROM-Laufwerke. Da ein CD-Laufwerk nicht immer ein Medium enthält, mountet es der Parameter »noauto« im vierten Feld nicht automatisch beim Booten. Die Option »user« sorgt dafür, dass auch ein normaler Benutzer den dazu notwendigen Mountbefehl aufrufen darf - das ist sonst nur Root gestattet. Allerdings muss der Benutzer entweder den Mountpunkt oder die Angabe des zu mountenden Geräts weglassen, also »mount /dev/cdrom« oder »mount /media/cdrom«, der Rest steht in der Fstab. Das »exec« erlaubt das Ausführen von Programmen, die auf der CD liegen.
Bei den meisten aktuellen Distributionen finden sich solche Einträge nicht dauerhaft in der »/etc/fstab«. Vielmehr fügt das Hotplug-System (siehe auch den Hotplug-Artikel in diesem Heft) sie automatisch hinzu, aber nicht nur für CD- oder Diskettenlaufwerke, sondern auch für USB-Sticks oder USB-Festplatten. Eine Übersicht aller Mount-Optionen liefert die Manpage zu Mount.
In der gezeigten Fstab gibt es eine eigene Partition für das »/boot/«-Verzeichnis. Dort liegen der Kernel sowie die zweite Stufe des Bootloaders, der Teil des Startvorgangs eines Linux-Systems ist: Beim Einschalten lädt ein Rechner zunächst das Bios. Dort ist eingestellt, wo es nach bootbarem Code sucht, beispielsweise auf einer CD-ROM oder auf der Festplatte, auch Disketten oder USB-Sticks kommen in Frage.
Früher war Lilo (Linux Loader) der Standard-Bootloader von Linux-Systemen, heute ist es überwiegend Grub (Grand unified Bootloader). Bei beiden liegt meist nur ein kleiner erster Teil des Bootloaders (First Stage Loader) im Startbereich der Festplatte (MBR, Master Boot Record), den das Bios anspricht. Er ruft die zweite Stufe im Verzeichnis »/boot/« auf, die den Kernel bootet.
Der Bootloader Grub muss nur einmal bei der Systeminstallation mit »grub-install« installiert werden. Der Vorgang schreibt den First Stage Loader in den MBR. Der First Stage Loader lädt beim Booten die weiteren Bestandteile von Grub aus dem Verzeichnis »/boot/grub«/. Die Konfigurationsdatei »/boot/grub/grub.conf« (bei Suse »/boot/grub/menu.lst«) enthält die Einträge für das Bootmenü, also die Namen der Kernel oder anderen Betriebsysteme, die bootbar sind.
Bei Lilo sieht die Sache anders aus: Hier muss der Admin den Bootloader nach jeder Änderung an der Konfigurationsdatei »/etc/lilo.conf« mit dem Befehl »lilo« neu initialisieren.
|
Fragen zu |
|---|
|
Zur Prüfungsvorbereitung sollten sich die Kandidaten mit der Verzeichnishierarchie laut FHS vertraut machen. Daneben ist es sinnvoll, das Anlegen und Einbinden von Partitionen sowie Dateisystemchecks auf einem Testsystem auszuprobieren. Außerdem sollten Installation und Konfiguration der verschiedenen Bootloader bekannt sein.
Die nächste Folge beschäftigt sich ebenfalls mit Linux-Dateisystemen: Die Themen sind dann Quotas, Dateiberechtigungen, Links sowie das Auffinden von Dateien. (mhu)
| Infos |
|---|
| [1] LPI-Webpage mit Objectives: [http://www.lpi.org/de/obj_101.html] [2] "Willkommen im Club": Linux-Magazin 05/06, S. 84, [http://www.linux-magazin.de/Artikel/ausgabe/2006/05/lpi/lpi.html] [3] FHS (Filesystem Hierarchy Standard): [http://www.pathname.com/fhs/] [4] "Die modernen Dateisysteme", Schwerpunktthema im Linux-Magazin 03/04 |
| Die Autorin |
|---|
|
Anke Börnig arbeitet als freiberufliche Trainerin für Linux-Kurse. Neben offiziellen Suse- und Red-Hat-Trainings leitet sie regelmäßig Workshops zur Vorbereitung auf die Stufe 2 der LPI-Zertifizierung. In Kürze erscheint ihr Buch zur LPIC-2-Prüfungsvorbereitung im Verlag Open Source Press. |