Beschreibung: Prüfungskandidaten sollten in der Lage sein, Plattenpartitionen zu konfigurieren und Dateisysteme auf Medien wie Festplatten zu erzeugen. Dieses Lernziel beinhaltet verschiedene mkfs Kommandos zur Erzeugung von verschiedenen Dateisystemen auf Partitionen, einschließlich ext2, ext3, reiserfs, vfat und xfs.
Die wichtigsten Dateien, Bezeichnungen und Anwendungen:
Wie in jedem Betriebssystem, so müssen Festplatten auch unter Linux vorbereitet werden, um vom System benutzt werden zu können. Die beiden Schritte, die nötig sind, sind
Festplatten bestehen aus einer bis mehreren runden übereinanderliegenden Magnetscheiben, die in konzentrische Kreise (Spuren) eingeteilt werden. Alle übereinanderliegenden Spuren werden Zylinder genannt und gemeinsam angesprochen. Das liegt an der Tatsache, daß für jede Scheibenoberfläche ein Schreib/Lesekopf existiert. Alle diese Schreib/Leseköpfe sind starr miteinander verbunden. Wenn einer davon auf der Spur 5 seiner Plattenoberfläche ist, so sind alle anderen auch auf der Spur 5 jeweils ihrer Oberfläche. Daher werden Schreib- und Lesevorgänge immer auf allen untereinanderliegenden Spuren gleichzeitig durchgeführt. So entsteht der Begriff Zylinder, eben alle übereinanderliegenden Spuren.
Partitionen sind jetzt ringförmige Bereiche auf einer Platte. Eine Partition wird durch einen Start- und einen Endzylinder begrenzt. Der erste Zylinder (Zylinder 0) ist nie Teil einer Partition, sondern enthält Verwaltungsinformationen, wie den Master-Boot-Sektor und die Tabelle mit den Partitionsinformationen.
Wenn eine Platte z.B. 1024 Zylinder besitzt und in zwei Partitionen aufgeteilt werden soll, so entstünde etwa eine Aufteilung wie die folgende:
Partition | Startzylinder | Endzylinder |
---|---|---|
1 | 1 | 512 |
2 | 513 | 1023 |
Jede physikalische Festplatte kann bis zu vier sogenannte primäre Partitionen (primary partitions) aufnehmen. Das liegt daran, daß auf dem Zylinder 0 nur Platz gelassen wurde für vier Einträge in der Partitionstabelle (partition-table).
Eine dieser vier primären Partitionen darf eine sogenannte erweiterte Partition (extended partition) sein, die ihrerseits wieder behandelt wird, wie eine physikalische Festplatte und selbst wieder Unterpartitionen (logical partitions) aufnehmen kann. Linux kann bis zu 11 solcher logischer Partitionen pro erweiterter Partition verwalten.
Linux hat eine eindeutige Namenskonvention für Festplatten und Partitionen. Dabei wird unterschieden zwischen IDE- und SCSI-Festplatten. Die Namen für die IDE-Festplatten sind:
SCSI-Festplatten werden der Reihe nach mit Buchstaben von a bis z durchnummeriert, zuerst alle Platten des ersten SCSI-Hostadapters, dann die des zweiten usw. Für jeden Hostadapter gilt, daß die Platten der Reihe nach durchnummeriert werden, die Platte mit der niedrigsten SCSI-ID zuerst, bis zur Platte mit der höchsten SCSI-ID. Der Name der SCSI-Platten beginnt immer mit /dev/sd. Also wäre die erste SCSI-Platte /dev/sda, die nächsten /dev/sdb, /dev/sdc usw.
Die Partitionen jeder Platte sind jetzt einfach als Nummern an diese Namen angehängt. Die primären Partitionen tragen die Nummern 1 bis 4, wobei eine dieser primären Partitionen - unabhängig von ihrer Nummer - eine erweiterte Partition sein kann. Die logischen Partitionen (Unterpartitionen) innerhalb der erweiterten Partition tragen die Nummern 5 bis 15. Daraus lassen sich also aus den Namen der Partitionen eindeutige Informationen gewinnen. Ein paar Beispiele:
Wenn eine solche Bezeichnung also eine Nummer hat, so ist die jeweilige Partition angesprochen, wenn sie keine Nummer hat, so ist die ganze physikalische Platte gemeint.
Um jetzt eine bestimmte Platte zu partitionieren, müssen wir also zunächst einmal wissen, wie diese Platte heißt. Das Programm zum Partitionieren von Festplatten heißt fdisk und wird zusammen mit dem Namen der zu partitionierenden Platte aufgerufen. Wollen wir also auf der ersten SCSI-Festplatte im System (/dev/sda) Partitionen einrichten, so schreiben wir:
fdisk /dev/sdaEs erscheint zunächst mal die wenig aussagekräftige Zeile
Command (m for help):Also drücken wir doch mal das m:
Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) Command (m for help):Für uns sind nur ein paar wenige dieser Befehle notwendig, insbesondere die folgenden:
Die nächste Frage ist die nach der Nummer der anzulegenden Partition und dann müssen Start- und Endzylinder angegeben werden. Statt einem End-Zylinder kann auch eine Größenangabe gemacht werden, die mit einem Pluszeichen (+) eingeleitet werden muß und einen Größenpostfix M oder K für Mega- oder Kilobyte besitzen darf. So bedeutet +256M eben eine Partitionsgröße von 256 Megabyte.
Mit diesen Befehlen sind alle denkbaren Aktionen durchzuführen, die wir für den Umgang mit Linux normalerweise brauchen. Wenn Sie allerdings nur die Partitionstabelle einer physikalischen Festplatte anzeigen wollen, so können Sie fdisk auch einfach mit dem Parameter -l aufrufen, dann zeigt es nur die Partitionstabelle des anfgegebenen Laufwerks (oder aller Laufwerke, wenn keines angegeben wurde) und beendet sich dann sofort wieder.
Der häufigste Dateisystemtyp unter Linux ist das Second Extended Filesystem oder kurz EXT2. Es unterscheidet sich in einzelnen Details vom Standard-Unix-Dateisystem, benutzt aber die selben Techniken, was I-Nodes angeht. Für das Verständnis der LPIC-Level1 Prüfung reicht das Wissen um diesen Standard. Für die speziell Interessierten findet sich hier noch Informationen über das EXT2 Filesystem.
Das Programm, mit dem wir Dateisysteme erstellen heißt mkfs (Make FileSystem) und ist eigentlich nur ein Frontend für weitere Programme, die dann für jedes Linux-Dateisystem extra zur Verfügung stehen, wie etwa mkfs.ext2, mkfs.minix, mkfs.msdos oder mkfs.xiafs.
Der grundsätzliche Aufruf von mkfs ist
mkfs [ -t Dateisystemtyp ] [ Optionen ] Gerätedatei [ Blocks ]Dabei sind die Optionen abhängig vom verwendeten Dateisystemtyp. Wird der Dateisystemtyp weggelassen wird heutzutage EXT2 angenommen, aber darauf gibt es keine Garantie. Werden die Blocks weggelassen, so werden alle zur Verfügung stehenden Blocks verwendet.
Das Programm zur Erstellung von EXT2-Dateisystemen kennt die folgenden wichtigen Parameter:
In der Regel ist es ausreichend, ein Dateisystem mit den Standard-Parametern anzulegen, also einfach gar keine Parameter anzugeben. ein einfaches
mkfs /dev/hdb5legt ein solches Dateisystem auf der Partition 5 der zweiten IDE-Platte an. In Ausnahmefällen ist es aber notwendig, bestimmte Parameter zu verändern. So werden beispielsweise beim Anlegen eines EXT2-Dateisystems auf einer Diskette nur 184 Inodes angelegt. Normalerweise würde das sicher auch reichen, um die 1,44 MByte Diskettenplatz aufzuteilen. Wenn wir aber etwa eine Bootdiskette erstellen wollen, die schon alleine hunderte von Gerätedateien im /dev-Verzeichnis braucht, ist diese Einstellung definitiv nicht brauchbar. Hier müssten wir also mit dem -N Parameter manuell die Anzahl der zu erstellenden Inodes hochsetzen.
Mit diesem Programm können beide Dateisystemtypen erzeugt werden. Um ein Journaling-Dateisystem vom Typ ext3 zu erzeugen muß der Parameter -j (journaling) mit angegeben werden.
Anstatt mke2fs kann auch mkfs.ext2 oder mkfs.ext3 angegeben werden.
Anstatt mkreiserfs kann auch mkfs.reiserfs angegeben werden.
Eine explizite Angabe der anzulegenden Inodes entfällt bei dieser Dateisystemart, weil das Reiserfs die Inodes dynamisch anlegt, je nach Bedarf.
Anstatt mkdosfs kann auch mkfs.vfat angegeben werden.