VMware ESXi and vSphere Cluster Management

Dateisysteme unter Linux mit mkfs erzeugen

So erzeugen Sie mit mkfs ein Linux-Dateisystem auf einer Partition: Zielgerät sicher prüfen, Dateisystem auswählen, formatieren und Ergebnis kontrollieren.

Mit mkfs erzeugen Sie unter Linux ein neues Dateisystem auf einer Partition oder einem anderen Blockgerät. Dieser Vorgang ist destruktiv: Vorhandene Daten im Zielbereich werden überschrieben oder anschließend unzugänglich. Prüfen Sie deshalb das Zielgerät besonders sorgfältig, bevor Sie den Befehl ausführen.

Was ist ein Dateisystem?

Ein Dateisystem stellt Regeln und Datenstrukturen bereit, mit denen Linux Dateien und Verzeichnisse speichern, benennen und verwalten kann. Es legt unter anderem fest, wie Datenblöcke, Dateinamen, Rechte und Metadaten organisiert werden.

Die beteiligten Ebenen sollten Sie unterscheiden:

  • Physischer Datenträger: zum Beispiel eine SSD, HDD oder ein virtueller Datenträger.
  • Partition: ein abgegrenzter Bereich eines Datenträgers. Eine Partition kann als eigenes Blockgerät verwendet werden.
  • Blockgerät: eine Gerätedatei unter /dev, über die blockweise lesbarer und beschreibbarer Speicher angesprochen wird.
  • Dateisystem: die Struktur innerhalb einer Partition oder eines anderen Blockgeräts, in der Dateien und Verzeichnisse organisiert werden.
  • Einhängepunkt: ein Verzeichnis, in das Linux das Dateisystem einbindet, beispielsweise /mnt/daten.

Partitionieren und Formatieren sind daher unterschiedliche Vorgänge: Beim Partitionieren werden Speicherbereiche festgelegt. Beim Formatieren beziehungsweise Erzeugen eines Dateisystems wird eine solche Partition für die Dateiverwaltung vorbereitet.

Grundprinzip von mkfs

mkfs steht für „make filesystem“ und ist ein allgemeines Frontend zum Anlegen von Dateisystemen. Abhängig vom gewählten Typ verwendet es ein dateisystemspezifisches Werkzeug, etwa mkfs.ext4, mkfs.xfs oder mkfs.vfat.

Die allgemeine Form lautet:

sudo mkfs -t <dateisystemtyp> <zielgerät>

Statt der allgemeinen Form können Sie auch direkt das passende Werkzeug aufrufen:

sudo mkfs.ext4 <zielgerät>

In der Regel wird eine einzelne Partition formatiert, nicht das komplette Laufwerk. Der Unterschied zwischen /dev/sda und /dev/sda3 ist deshalb entscheidend.

Linux-Gerätenamen richtig lesen

GerätenameBedeutungTypisches Beispiel
/dev/sdaErstes klassisches SCSI-/SATA-LaufwerkGesamter Datenträger, nicht automatisch eine einzelne Partition
/dev/sda3Dritte Partition auf /dev/sdaZiel für ein Beispiel mit ext3
/dev/nvme0n1Erstes NVMe-LaufwerkGesamter NVMe-Datenträger
/dev/nvme0n1p1Erste Partition auf dem NVMe-LaufwerkPartition mit dem zusätzlichen p
/dev/vdb1Erste Partition eines virtuellen Laufwerks /dev/vdbHäufig in virtuellen Maschinen

Eine Gerätedatei ist ein Pfad wie /dev/sda3, über den Programme auf ein Gerät oder eine Partition zugreifen. Die Namen können sich je nach Hardware, Bootreihenfolge und Umgebung unterscheiden. Verlassen Sie sich deshalb nicht ausschließlich auf den Namen, sondern vergleichen Sie Größe, Modell, Partitionen, Dateisystem und Einhängepunkt.

Zielgerät sicher identifizieren

Beginnen Sie mit einer Übersicht aller Blockgeräte:

lsblk -f

Die Ausgabe zeigt typischerweise Laufwerke und Partitionen sowie Dateisystemtyp, Label, UUID und Einhängepunkt. Eine beispielhafte gedankliche Zuordnung kann so aussehen:

NAME        FSTYPE LABEL UUID                                 MOUNTPOINTS
sda
├─sda1      ext4         ...                                  /
└─sda3
sdb
└─sdb1      ext4   daten  ...                                 /mnt/alt

Kontrollieren Sie vor dem Formatieren:

  1. Ist es tatsächlich der gewünschte physische oder virtuelle Datenträger?
  2. Ist es die richtige Partition und nicht das gesamte Laufwerk?
  3. Enthält die Partition noch benötigte Daten?
  4. Ist sie eingehängt oder wird sie von einem Dienst verwendet?
  5. Haben Sie eine Sicherung der relevanten Daten?

Mit findmnt prüfen Sie eine konkrete Partition:

findmnt /dev/sdb1

Wenn eine Ausgabe mit einem Einhängepunkt erscheint, hängen Sie die Partition zunächst aus:

sudo umount /dev/sdb1

Alternativ kann der Einhängepunkt angegeben werden. Eine Meldung über belegte Ressourcen bedeutet meist, dass ein Prozess noch auf Dateien zugreift. Ermitteln Sie solche Zugriffe beispielsweise mit lsof oder fuser, beenden Sie die betreffenden Anwendungen und versuchen Sie das Aushängen erneut.

Passenden Dateisystemtyp auswählen

DateisystemTypischer EinsatzzweckVorteile oder EigenschaftenZu beachten
ext3Ältere Linux-Systeme oder KompatibilitätsfälleJournaling-Dateisystem der ext-FamilieHistorisch verbreitet; für neue Linux-Installationen wird häufig ext4 bevorzugt
ext4Allgemeine Linux-PartitionenWeit verbreitet, robust und typischer Standard für neue Linux-DateisystemeFür spezielle Anforderungen können andere Typen geeigneter sein
XFSGroße oder leistungsorientierte DateisystemeAuf bestimmte große Datenbestände und Arbeitslasten ausgelegtWerkzeuge und Eigenschaften unterscheiden sich von ext-Dateisystemen
vfat/FAT32Austauschmedien und plattformübergreifende NutzungVon vielen Betriebssystemen und Geräten unterstütztFAT32 hat unter anderem eine Begrenzung der maximalen Dateigröße
exFATGrößere Austauschmedien zwischen Linux, Windows und anderen SystemenGeeignet für große Dateien und moderne WechselmedienPassende Werkzeuge müssen installiert sein; Eigenschaften unterscheiden sich von Linux-Dateisystemen

Welche Typen verfügbar sind, hängt vom installierten Paketbestand und der Distribution ab. Prüfen Sie bei Bedarf, ob ein Werkzeug vorhanden ist:

command -v mkfs.ext4
command -v mkfs.xfs
command -v mkfs.vfat

Ein Dateisystem auf einer Partition erzeugen

Grundablauf

  1. Partition und Zielgerät mit lsblk -f eindeutig bestimmen.
  2. Mit findmnt prüfen, ob die Partition eingehängt ist.
  3. Die Partition mit umount aushängen und aktive Zugriffe beenden.
  4. mkfs mit dem gewünschten Typ und dem Partitionsgerät ausführen.
  5. Typ, Label und UUID mit lsblk oder blkid kontrollieren.
  6. Das neue Dateisystem anschließend bei Bedarf einhängen.

Beispiel: ext3 auf der dritten Partition von /dev/sda

Das folgende Beispiel legt ein ext3-Dateisystem auf der dritten Partition des ersten klassischen SCSI-/SATA-Geräts an:

sudo umount /dev/sda3
sudo mkfs -t ext3 /dev/sda3

Der zweite Befehl formatiert ausschließlich /dev/sda3, sofern dieses Gerät korrekt identifiziert wurde. Alle dort vorhandenen Daten werden verworfen. Die Partition muss vor dem Befehl ausgehängt sein.

Beispiel: modernes ext4-Dateisystem mit Label

sudo umount /dev/sdb1
sudo mkfs.ext4 -L daten /dev/sdb1

mkfs.ext4 ist die direkte Variante zu mkfs -t ext4. Die Option -L daten vergibt das lesbare Label daten.

Weitere Gerätetypen

Auf einem NVMe-System könnte eine Partition beispielsweise /dev/nvme0n1p1 heißen. In einer virtuellen Maschine kann das Ziel /dev/vdb1 sein. Das Prinzip bleibt gleich: Erst das konkrete Blockgerät prüfen, dann aushängen und erst danach das passende Dateisystem erzeugen.

Wichtige Optionen und typische Ausgaben

Aufruf oder OptionBedeutungBeispielHinweis
mkfs -t <typ> <gerät>Erzeugt den angegebenen Dateisystemtypsudo mkfs -t ext3 /dev/sda3Allgemeine, explizite Schreibweise
mkfs.ext4 <gerät>Ruft direkt das ext4-Werkzeug aufsudo mkfs.ext4 /dev/sdb1Eine klare Alternative zu mkfs -t ext4
-t <typ>Wählt den Dateisystemtyp-t xfsDas passende Werkzeug muss vorhanden sein
-cPrüft vor dem Anlegen auf fehlerhafte Blöckesudo mkfs -t ext3 -c /dev/sda3Kann bei großen Datenträgern sehr lange dauern; bei modernen SSDs nicht immer sinnvoll
-L <label>Vergibt einen lesbaren Namensudo mkfs.ext4 -L daten /dev/sdb1Erleichtert die spätere Erkennung

Bei einem ext-Dateisystem kann die Ausgabe unter anderem folgende Informationen enthalten:

  • Blöcke: Verwaltungseinheiten, in denen Nutzdaten und Metadaten gespeichert werden.
  • Inodes: Metadatenstrukturen mit Informationen wie Eigentümer, Rechten, Zeitstempeln und Verweisen auf Datenblöcke. Die Anzahl der Inodes beeinflusst, wie viele Dateien angelegt werden können.
  • Blockgröße: Größe der einzelnen Verwaltungseinheit des Dateisystems.
  • Blockgruppen: Gruppen aus Daten- und Metadatenblöcken, die ext-Dateisysteme zur Organisation verwenden.
  • Superblock-Sicherungen: zusätzliche Kopien wichtiger Dateisysteminformationen.
  • UUID: eine eindeutige Kennung des Dateisystems, die sich später beispielsweise für /etc/fstab verwenden lässt.

Die Option -c startet eine Prüfung auf Bad Blocks. Ein Bad Block ist ein nicht zuverlässig nutzbarer Speicherbereich. Die Prüfung kann bei großen klassischen Festplatten lange dauern. Bei SSDs ist eine vollständige Prüfung vor jeder Neuformatierung meist nicht erforderlich; bei konkretem Hardwareverdacht sind SMART- oder herstellerspezifische Diagnosen geeigneter.

Ergebnis nach dem Erzeugen überprüfen

Kontrollieren Sie unmittelbar nach dem erfolgreichen Befehl, ob Typ, UUID und Label wie erwartet angelegt wurden:

lsblk -f
sudo blkid /dev/sdb1
sudo file -s /dev/sdb1

blkid zeigt üblicherweise Einträge wie TYPE, UUID und gegebenenfalls LABEL. file -s untersucht den erkannten Inhalt eines Blockgeräts. Prüfen Sie immer genau dieselbe Partition, die Sie formatiert haben.

Bei ext-Dateisystemen können Sie das Dateisystem mit fsck beziehungsweise dem spezifischen Werkzeug e2fsck prüfen. Das Ziel darf dabei nicht eingehängt sein:

sudo umount /dev/sdb1
sudo e2fsck -f /dev/sdb1

Eine Prüfung und Reparatur sollte nur mit einem passenden Verständnis der gemeldeten Fehler erfolgen. Für andere Dateisysteme gelten andere Prüfwerkzeuge.

Das neue Dateisystem testweise mounten

Mounten bedeutet, ein Dateisystem in den Linux-Verzeichnisbaum einzuhängen. Nach der Kontrolle können Sie beispielsweise einen Einhängepunkt anlegen und das Dateisystem testen:

sudo mkdir -p /mnt/daten
sudo mount /dev/sdb1 /mnt/daten
lsblk -f
findmnt /dev/sdb1

Für dauerhafte Einhängungen kann die UUID in /etc/fstab verwendet werden. Dadurch bleibt die Konfiguration unabhängig davon, unter welchem Gerätenamen Linux den Datenträger erkennt.

Sicherheits- und Betriebswarnungen

  • Führen Sie vor dem Formatieren eine Datensicherung durch.
  • Vergleichen Sie Gerätename, Größe, Modell, Partition und Einhängepunkt mehrfach.
  • Formatieren Sie keine eingehängte oder aktiv verwendete Partition.
  • Verwenden Sie nicht versehentlich /dev/sda, wenn eigentlich /dev/sda3 gemeint ist.
  • Beachten Sie, dass auch ein scheinbar leeres Gerät wichtige Strukturen enthalten kann.
  • Auf LVM, RAID, verschlüsselten Containern und virtuellen Datenträgern wird häufig ein logisches oder virtuelles Blockgerät formatiert. Prüfen Sie die Schichten darunter, bevor Sie den Befehl ausführen.

Fehlerbehebung

Das falsche Gerät könnte ausgewählt sein

Wenn mehrere ähnlich große Datenträger vorhanden sind, führen Sie lsblk -f aus und vergleichen Sie Größe, Modell, vorhandene Dateisysteme und Einhängepunkte. Bei verbleibender Unsicherheit dürfen Sie nicht fortfahren. Verwenden Sie nur die eindeutig identifizierte Zielpartition.

Das Ziel ist noch eingehängt

Prüfen Sie mit findmnt /dev/sdb1 oder lsblk -f, ob die Partition verwendet wird. Hängen Sie sie mit sudo umount /dev/sdb1 aus. Bei belegten Ressourcen untersuchen Sie offene Zugriffe mit lsof oder fuser und beenden die verantwortlichen Anwendungen oder Dienste.

Das gewünschte mkfs-Werkzeug fehlt

Eine Meldung über ein fehlendes dateisystemspezifisches Programm bedeutet meist, dass das passende Paket nicht installiert ist. Prüfen Sie beispielsweise:

command -v mkfs.ext4
command -v mkfs.xfs

Installieren Sie das benötigte Werkzeug über die Paketverwaltung Ihrer Distribution oder wählen Sie einen verfügbaren, für den Einsatzzweck geeigneten Dateisystemtyp.

Die Bad-Block-Prüfung dauert sehr lange

Eine vollständige Prüfung großer Datenträger kann lange dauern. Bewerten Sie Datenträgerart und Anlass: Für eine normale Neuformatierung ohne konkreten Defektverdacht können Sie auf -c verzichten. Bei einem Hardwareverdacht sollten Sie zusätzlich SMART- oder herstellerspezifische Diagnosen durchführen.

Der erwartete Dateisystemtyp wird nicht angezeigt

Prüfen Sie, ob der mkfs-Befehl erfolgreich beendet wurde und ob Sie anschließend dasselbe Gerät untersuchen:

sudo blkid /dev/sdb1
sudo file -s /dev/sdb1

Wenn weiterhin kein oder ein falscher Typ erscheint, werten Sie die Fehlermeldung des dateisystemspezifischen Werkzeugs aus. Führen Sie nicht vorschnell einen weiteren destruktiven Formatierungsversuch aus.

Prüfungsrelevante Merksätze

  • mkfs bedeutet „make filesystem“ und erzeugt ein Dateisystem auf einem Blockgerät.
  • -t wählt den Dateisystemtyp; -c fordert eine Bad-Block-Prüfung an; -L setzt ein Label.
  • Ein Gerätename mit Partitionsnummer, etwa /dev/sda3, bezeichnet eine Partition. Ohne Partitionsnummer, etwa /dev/sda, bezeichnet er normalerweise den gesamten Datenträger.
  • Vor mkfs stehen immer Zielprüfung, Datensicherung und Aushängen.
  • UUID und Label können nach dem Erzeugen mit blkid oder lsblk -f kontrolliert und später für dauerhafte Einhängungen verwendet werden.

Eine passende Ergänzung ist die Anleitung Dateisysteme erzeugen, insbesondere wenn Sie den Ablauf anschließend mit Partitionierung, Mountpoints und dauerhaften Einhängungen verbinden möchten.