Der Befehl mke2fs

mke2fs-featured

In diesem Beitrag lernen Sie den Befehl mke2fs kennen, welcher unter Linux- / UNIX-Betriebssystemen eingesetzt wird, um - üblicherweise auf einer Festplattenpartition - ein ext2-, ext3- oder ext4-Dateisystem zu erstellen.

Sie lernen zunächst die allgemeine Syntax des Befehls mke2fs kennen. Anschließend folgen einige der wichtigsten Optionen mitsamt Beispielen für die Anwendung.

Allgemeine Syntax

Die allgemeine Syntax des Befehls mke2fs lautet folgendermaßen:

mke2fs [Optionen] [Gerät]

mke2fs kann auch mithilfe der Befehle mkfs.ext2, mkfs.ext3 und mkfs.ext4 aufgerufen werden, wobei das auf den Punkt folgende Dateisystem implizit an mke2fs übergeben wird (Option -t). Beispielhaft ist der Befehl "mkfs.ext4 [Gerät]" äquivalent zum folgenden Aufruf von mke2fs:

mke2fs -t ext4 [Gerät]

Die Standardwerte für das neue Dateisystem werden, sofern nicht anderweitig durch die Optionen des Befehls mke2fs überschrieben, durch die Konfigurationsdatei /etc/mke2fs.conf festgelegt.

Beispiel: ext4-Dateisystem erzeugen

Eingabe:

mke2fs -t ext4 /dev/sdb1

Bedeutung:

Der obige Befehl erzeugt ein ext4-Dateisystem mit den Standardeinstellungen auf dem Gerät /dev/sdb1.

Wichtigste Optionen

Im Folgenden lernen Sie die wichtigsten Optionen von mke2fs kennen:

-b - Blockgröße spezifizieren

Mithilfe der Option -b kann die Blockgröße in Bytes spezifiziert werden - gültige Werte sind dabei 1024, 2048 und 4096 Bytes pro Block. Wird die Blockgröße nicht explizit mit dieser Option festgelegt, so wird sie heuristisch auf Grundlage der Dateisystemgröße sowie der erwarteten Nutzung bestimmt. Die Blockgröße kann mit einem Minuszeichen "-" als Präfix angeführt werden, um eine heuristische Bestimmung durchzuführen, mit der Einschränkung, dass die Blockgröße minimal den angegebenen Wert annimmt.

mke2fs -b [Blockgröße] [Gerät]

-c - Überprüfung auf defekte Blöcke

Wird die Option -c angegeben, so führt mke2fs vor der Erstellung des Dateisystems eine Überprüfung des angegebenen Geräts auf defekte Blöcke durch. Bei einmaliger Angabe der Option wird dabei ein schneller Read-Only-Test durchgeführt:

mke2fs -c [Gerät]

Bei zweifacher Angabe der Option wird ein langsamerer Read-Write-Test durchgeführt:

mke2fs -cc [Gerät]
Beispiel: Option -c

Eingabe:

mke2fs -c -t ext4 /dev/sdb1

Bedeutung:

mke2fs führt bei Ausführung des obigen Befehls zunächst einen Read-Only-Test zur Überprüfung auf defekte Blöcke auf /dev/sdb1 aus. Im Anschluss an einen erfolgreich Testdurchlauf wird das Dateisystem (hier: ext4) erzeugt.

-E - Erweiterte Einstellungen

Mit der Option -E können erweiterte Einstellungen für das Dateisystem festgelegt werden. Da hier in früheren Versionen von mke2fs noch die Option -R verwendet wurde, wird diese aus Kompatibilitätsgründen ebenfalls akzeptiert.

mke2fs -E [Erweiterte Einstellungen] [Gerät]

Die erweiterten Einstellungen werden mit Kommata getrennt angegeben und erhalten in einigen Fällen außerdem ein Argument mit dem Gleichheitszeichen "=". Die folgenden erweiterten Einstellungen werden unterstützt:

Einstellung

Funktion

mmp_update_interval=[interval]

Setzt das initiale MMP-Update-Intervall. Gültig sind Werte zwischen 0 und 300 (inklusive 0, exklusive 300). Durch Angabe des Wertes 0 wird das Standard-Intervall verwendet. Das MMP-Feature muss aktiviert sein.

stride=[stride-size]

Konfiguriert das Dateisystem für einen RAID-Verbund mit "[stride-size]"-Dateisystemblöcken. Es handelt sich um die Anzahl Blöcke die gelesen oder auf eine Festplatte geschrieben werden, bevor ein Wechsel auf die nächste Festplatte durchgeführt wird. (Auch Chunk-Size genannt) Der Wert kann auch von dem Block-Allocator verwendet werden.

stripe_width=[stripe-width]

Konfiguriert das Dateisystem für einen RAID-Verbund mit "[stripe-width]" Dateisystemblöcken pro Stripe.

offset=[offset]

Erstellt das Dateisystem an einem Offset vom Anfang des Geräts oder der Datei. 

resize=[max-online-resize]

Reserviert ausreichend Platz, damit die Blockgruppen-Deskriptor-Tabelle wachsen kann, um ein Dateisystem mit "[max-online-resize]" Blöcken zu unterstützen.

lazy_itable_init=[0|1]

Wenn "lazy_itable_init" aktiviert (Wert 1) ist und das Feature "uninit_bg" ebenfalls aktiviert ist, wird die Inode-Tabelle nicht durch mke2fs vollständig initialisiert. Die Dateisystem-Initialisierung wird hierdurch merklich beschleunigt, jedoch muss der Kernel die Initialisierung im Hintergrund abschließen, wenn das Dateisystem erstmals eingehängt wird. Standardwert ist 1 (aktiviert).

lazy_journal_init=[0|1]

Wenn "lazy_journal_init" aktiviert (Wert 1) ist, dann wird das Journal-Inode nicht vollständig von mke2fs nullgesetzt. Die Dateisystem-Initialisierung wird hierdurch merklich beschleunigt. Ein möglicher Systemcrash bevor das Journal vollständig überschrieben wurde, stellt jedoch ein Risiko dar. Standardwert ist 1 (aktiviert).

num_backup_sb=[1|2|3]

Wenn die Dateisystemfunktion "sparse_super2" aktiviert ist, steuert diese Einstellung, ob 0, 1 oder 2 Backup-Superblöcke im Dateisystem erstellt werden.

packed_meta_blocks=[0|1]

Legt die Zuweisungsbitmaps und die Inode-Tabelle an den Anfang der Festplatte. Die "flex_bg" Systemfunktion muss aktiviert sein, damit die Einstellung einen Effekt hat. Weiterhin wird das Journal am Anfang des Dateisystems erstellt.

root_owner=[UID:GID]

Spezifiziert die numerische Benutzer-ID (UID) und Gruppen-ID (GID) des Wurzelverzeichnisses. Standardmäßig wird die UID und GID des Benutzers, der mke2fs ausführt, verwendet.

test_fs

Setzt ein Flag im Dateisystem-Superblock, welches markiert, dass es auch mit experimentellem Kernel-Code eingehängt werden darf.

discard

Versucht zur Laufzeit von mkfs Blöcke zu verwerfen. Das anfängliche Verwerfen von Blöcken ist insbesondere bei Solid-State-Geräten und Sparse-/Thin-Provisioned Storage sinnvoll. Wenn das Gerät ankündigt, dass "discard" auch Daten auf Null setzt (Jedes dem "discard" folgende Lesen, vor dem Schreiben, liefert Null) dann werden alle noch nicht nullgesetzten Inode-Tabellen als nullgesetzt markiert. Die Initialisierung des Dateisystems wird hierdurch erheblich beschleunigt. Standardmäßig ist die Einstellung aktiviert.

nodiscard

Versucht nicht zur Laufzeit von mkfs Blöcke zu verwerfen.

quotatype

Spezifiziert, welche Quota-Typen ("usrquota", "grpquota", "prjquota") auf dem neu erstellten Dateisystem aktiviert sein sollen. Als Argument erhält diese Option eine mit Semikola ";" getrennte Liste der Typen. Nur wenn das Quota-Feature aktiviert ist, hat die Option einen Effekt. Standardmäßig werden "usrquota" und "grpquota" initialisiert. Ist auch das Project-Feature aktiv, so werden auch Project-Quotas ("prjquota") initialisiert.

-f - Fragmentgröße spezifizieren

Spezifiziert die Fragmentgröße in Bytes:

mke2fs -f [Größe] [Gerät]

-j - ext3-Journal erstellen

Mithilfe der Option -j lässt sich das Dateisystem mit ext3-Journal erstellen:

mke2fs -j [Gerät]

Wurde die Option -J nicht spezifiziert, dann werden Standard-Journal-Parameter zur Erstellung eines geeignet großen Journals verwendet. Damit das Journal tatsächlich verwendet werden kann, müssen Sie einen Kernel mit ext3-Unterstützung einsetzen.

-J - ext3-Journal-Einstellungen

Die Option -J erlaubt die Spezifikation der bei Erstellung eines ext3-Journals verwendeten Einstellungen:

mke2fs -E [Journal-Einstellungen] [Gerät]

Die Einstellungen werden durch Kommata getrennt angegeben und erhalten teilweise außerdem ein Argument mit dem Gleichheitszeichen "=". Folgende Einstellungen werden unterstützt:

Einstellung

Funktion

size=[journal-size]

Erstellt ein internes Journal der Größe [journal-size] MB, welches im Dateisystem gespeichert wird. Das Journal muss mindestens eine Größe von 1024 Dateisystem-Blöcken haben. (bei 1k-Blöcken also 1MB, bei 4k-Blöcken 4MB usw.) Weiterhin darf es nicht größer als 10.240.000 Dateisystem-Blöcke oder die Hälfte der Gesamtgröße des Dateisystems sein.

location=[journal-location]

Spezifiziert den Speicherort des Journals. Als Argument wird entweder eine Blocknummer oder, wenn die numerische Angabe einen Einheiten-Suffix (z.B. "M", "G" etc.) hat, ein Offset vom Anfang des Dateisystems übergeben.

device=[external-journal]

Hängt das Dateisystem an das Journal-Block-Device an, das sich auf [external-journal] befindet. Das externe Journal muss bereits mit dem Befehl "mke2fs -O journal_dev [external-journal]" erstellt worden sein. Weiterhin muss das externe Journal mit derselben Blockgröße wie das neue Dateisystem erstellt worden sein. Während das Anhängen mehrerer Dateisysteme an ein einzelnes Journal zwar unterstützt wird, werden gemeinsame externe Journale derzeit noch nicht von dem Linux-Kernel und e2fsck unterstützt. [external-journal] wird entweder direkt als Gerätename, oder aber durch LABEL=[Label] oder UUID=[UUID] angegeben. Letztere beiden Möglichkeiten geben dann das Volume-Label oder die UUID im ext2-Superblock am Anfang des Journals an. Siehe auch der Befehl dumpe2fs zur Ausgabe dieser Informationen zu einem Journal.

-L - Volume Label spezifizieren

Die Option -L wird verwendet, um das Volume-Label des neuen Dateisystems zu setzen. Die maximale Länge des Volume-Label beträgt 16 Bytes.

mke2fs -L [Volume-Label] [Gerät]

-t - Dateisystemtyp spezifizieren

Mit der Option -t wird die Typisierung (z.B. "ext2", "ext3", "ext4" etc.) des zu erstellenden Dateisystems gewählt. Wird die Option nicht angegeben, so wählt mke2fs einen Standard-Typ auf Grundlage dessen, wie das Kommando ausgeführt wurde (z.B. durch Verwendung der Befehle mkfs.ext2, mkfs.ext3, mkfs.ext4 etc.), oder wie in der Datei /etc/mke2fs.conf definiert.

mke2fs -t [Dateisystemtyp] [Gerät]

-U - UUID spezifizieren

Das Dateisystem wird bei Verwendung der Option -U mit der spezifizierten UUID erstellt:

mke2fs -U [UUID] [Gerät]

-z - Undo-Datei spezifizieren

Bei Verwendung der Option -z schreibt mke2fs vor jedem Überschreiben eines Dateisystemblocks die alten Inhalte des Blocks in eine Undo-Datei. Die Undo-Datei kann mit dem Befehl e2undo verwendet werden, um die alten Inhalte des Dateisystems wiederherzustellen, wenn etwa etwas schiefgelaufen ist. Wird der Option -z die leere Zeichenkette übergeben, dann wird in eine Datei mit dem Namen "mke2fs-device.e2undo" im Verzeichnis, welches durch die Umgebungsvariable "E2FSPROGS_UNDO_DIR" oder die "undo_dir"-Direktive der Konfigurationsdatei spezifiziert wird, geschrieben.

mke2fs -z [Datei] [Gerät]

Abonniere JETZT unseren Newsletter!


Verpasse nie wieder neue Beiträge und exklusive Insider-Only-Inhalte!

Joel Benseler

Click Here to Leave a Comment Below

Leave a Comment: