[[Vorlage(Getestet, bionic, focal)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Programme_starten: Starten von Programmen] [:Terminal: Ein Terminal öffnen] [:sudo: Root-Rechte] }}} [[Inhaltsverzeichnis()]] Das Paket '''dosfstools''' enthält Programme zum Anlegen, Formatieren, Überprüfen, Reparieren sowie Verwalten von MS-DOS- bzw. FAT-Dateisystemen. Dieses Paket verfolgt hinsichtlich der Bedienung einen anderen Ansatz als das funktional ähnliche Paket '''mtools''': Während '''mtools''' für jeden Dateisystem-Befehl aus MS-DOS unter UNIX einen ähnlich lautenden (z.B. mdir statt dir) Befehl bereitstellt, versucht sich '''dosfstools''' in die UNIX-Welt zu integrieren, indem es mächtige generelle Befehle wie '''mkfs''' oder '''fsck''' um spezifische Fähigkeiten für die MS-DOS-Dateisysteme erweitert. = Installation = Es genügt die Installation des Pakets '''dosfstools''' aus den offiziellen Paketquellen [1]: {{{#!vorlage Paketinstallation dosfstools }}} Nach der Installation stehen neue Programme/Befehle für MS-DOS-Dateisysteme zur Verfügung: * '''mkfs.fat''' (Alias mkfs.msdos, mkfs.vfat, mkdosfs) zum anlegen/formatieren * '''fsck.fat''' (Alias fsck.msdos, fsck.vfat, dosfsck) zum überprüfen und reparieren * '''fatlabel''' (Alias dosfslabel) zum benennen ([:Labels:Label]) = MS-DOS-Dateisysteme allgemein = Unter MS-DOS-Dateisystem (auch: FAT-Dateisystem) wird hier eines der von Microsoft entwickelten Dateisysteme mit Blockzuweisungstabellen (file allocation table, FAT) verstanden. Die gebräuchlichen Varianten unterscheiden sich in der verfügbaren Bitlänge zur Speicherung der Blocknummern ([#Links Details siehe unter Links]): * 12-Bit: veraltet, gelegentlich MSDOS genannt * 16-Bit: meist FAT oder FAT16 genannt * 32-Bit: FAT32, oft auch fälschlich VFAT genannt * exFAT: Weiterentwicklung, von Microsoft durch Softwarepatente geschützt, durch '''dosfstools''' nicht unterstützt, aber beispielsweise über das Paket '''exfat-utils'''. Microsoft hat für Linux ab Kernel 5.7 über das OIN (Open Invention Network) [#Links exFAT kostenfrei gestellt]. Die Namensteile `fat`, `vfat` und `msdos` sind jedoch aus Sicht von '''dosfstools''' Synonyme, d.h '''dosfstools''' unterscheidet diese FAT-Varianten __nicht__ über diese Namensteile! Die FAT-Variante wird in der Regel automatisch bestimmt oder muss über die Option `-F` (siehe unten) festgelegt werden. = Bedienung = == Anlegen eines MS-DOS-Dateisystems == Ein Dateisystem anlegen kann man mit '''mkfs.fat''', welches man wahlweise direkt aufrufen[3][4][2] kann {{{#!vorlage Befehl sudo mkfs.fat [OPTIONEN-FAT] /dev/sda9 [BLOCK-ANZAHL] }}} oder über das generelle '''mkfs''' {{{#!vorlage Befehl sudo mkfs --type fat [OPTIONEN-ALLGEMEIN] [OPTIONEN-FAT] /dev/sda9 [BLOCK-ANZAHL] }}} Die zu formatierende Partition, hier beispielhaft '''/dev/sda9''', muss natürlich individuell angepasst werden. `[OPTIONEN-ALLGEMEIN]`, `[OPTIONEN-FAT]` und `[BLOCK-ANZAHL]` sind optional: * `[OPTIONEN-ALLGEMEIN]` ist durch die gewünschten, von der Art des Dateisystems unabhängigen Optionen des Programms '''mkfs''' zu ersetzen. * `[OPTIONEN-FAT]` ist durch die für FAT-Dateisystem spezifischen Optionen des Programms '''mkfs.fat''' zu ersetzen; die wichtigsten sind: || Wichtige Optionen für das Programm mkfs.fat || || Option || Wirkung || || `-c` || Überprüfe das Gerät vor dem formatieren auf fehlerhafte Stellen (bad blocks). || || `-F FAT-SIZE` || Die Bitlänge eines FAT-Eintrags festlegen. `FAT-SIZE` ist 12, 16 oder 32. || || `-i VOLUME-ID` || 32-Bit-Kennung `VOLUME-ID` (z.B. 1122-ABCD) in den Boot-Sektor schreiben.|| || `-n VOLUME-NAME` || Filesystem Label schreiben. (Siehe [#MS-DOS-Dateisystem-benennen MS-DOS-Dateisystem benennen]) || || `-S LOGICAL-SECTOR-SIZE` || Die Größe eines Filesystem-Clusters festlegen. `LOGICAL-SECTOR-SIZE` ist eine Potenz von 2 im Bereich: 512 … 32768 || || `-v` || Meldungen während der Formatierung ausgeben. || * `[BLOCK-ANZAHL]` ist meistens leer; dann wird die in der jeweiligen Situation maximal mögliche Blockanzahl erzeugt. == Pflegen eines MS-DOS-Dateisystems == Hierzu dient '''fsck.fat''', welches ein FAT-Dateisystem überprüft und optional auch repariert. Es wird entweder direkt aufgerufen[3][4][2] mit {{{#!vorlage Befehl sudo fsck.fat [OPTIONEN-FAT] /dev/sda9 }}} oder über das generelle Programm '''fsck''' mit {{{#!vorlage Befehl sudo fsck --type fat [OPTIONEN-ALLGEMEIN] [OPTIONEN-FAT] /dev/sda9 }}} Meist kann '''fsck''' den Dateisystem-Typ selbst erkennen, dann reicht auch aus: {{{#!vorlage Befehl sudo fsck [OPTIONEN-ALLGEMEIN] [OPTIONEN-FAT] /dev/sda9 }}} Für `[OPTIONEN-ALLGEMEIN]` und `[OPTIONEN-FAT]` gelten die Hinweise entsprechend wie im Abschnitt [#Anlegen Anlegen eines MS-DOS-Dateisystems]. Wichtige Optionen von '''fsck.fat''' sind: || Wichtige Optionen für das Programm ckfs.fat || || Option || Wirkung || || `-a` || automatische Reparatur (ohne Rückfragen) || || `-r` || Reparatur nach Rückfrage || || `-b` || Prüfung des Boot-Sektors (nur lesen) || || `-v` || Meldungen während der Überprüfung ausgeben. || || `-V` || Nach der Reparatur automatisch einen 2. Durchgang zur Verifizierung starten. || == MS-DOS-Dateisystem benennen == Das Label eines FAT-Dateisystems kann man sich anzeigen lassen mit '''fatlabel''': {{{#!vorlage Befehl sudo fatlabel /dev/sda9 }}} Das Label verändert man mit: {{{#!vorlage Befehl sudo fatlabel /dev/sda9 NEUES-LABEL }}} `NEUES-LABEL` ist eine maximal 11-stellige Octet-Folge, die nur die bei FAT-Dateisystemen für kurze (sog. 8.3) Dateinamen gültigen Zeichen enthalten darf: Aus dem Bereich 0-127 die Großbuchstaben A-Z, Ziffern 0-9, einige Sonderzeichen «''! # $ % & ' ( ) - @ ^ _ \` { } ~''» und Leerzeichen, jedoch sind führende Leerzeichen verboten. Die aus Sicht des FAT-Dateisystems sämtlich erlaubten Zeichen aus dem Bereich 128-255 können bei MS-Windows-Systemen mit aktivierter Sprachunterstützung Fehler verursachen. '''fatlabel''' kann auch Label schreiben, die nicht MS-DOS-konform sind. Man sollte das vermeiden, da es sonst bei der Verwendung eines solchen Dateisystems unter MS-Windows Probleme geben kann. Manche, nicht alle Versionen von '''fatlabel''' wandeln die Eingabe für ein Label automatisch in Großbuchstaben, weil die Verwendung eines Labels mit Kleinbuchstaben MS-Windows irritieren kann. {{{#!vorlage Hinweis Es gibt bei FAT-Dateisystemen zwei verschiedene Label: 1. Eintrag im Root-Dateiverzeichnis des FAT-Dateisystems als spezieller Dateiname und 1. manchmal zusätzlich Vermerk im "Extended Bios Parameter Block" im Boot-Sektor des FAT-Dateisystems Das Label im Boot-Sektor befindet sich je nach Version und Hersteller an wechselnden Stellen und kann auch fehlen – daher wird '''fatlabel''' diesen Vermerk im Boot-Block bei sehr alten FAT-Dateisystemen nicht immer bearbeiten. Bei modernen FAT-Dateisystemen hält '''fatlabel''' die beiden Label synchronisiert. }}} == Dateien im FAT-Dateisystem verwenden == '''dosfstools''' stellt – im Gegensatz zu '''mtools''' – außer den hier beschriebenen (und deren Synonymem) keine weiteren Befehle und auch keine GUI bereit. Auf der Kommandozeile verwendet man die herkömmlichen GNU-Programme wie '''ls''', '''cat''', '''grep''', '''rm''' etc. auch für Dateien in FAT-Dateisystemen. Die Programme '''chown''', '''chgrp''' und '''chmod''' zur Bearbeitung der Besitzverhältnisse und der Zugriffsrechte funktionieren jedoch nur eingeschränkt, da FAT-Dateisysteme die Konzepte Besitzer und Rechte nicht kennen. Mehrere GUI-Programme wie beispielsweise [:Gparted:] oder die [:Laufwerksverwaltung:] '''gnome-disks''' (eingedeutscht: Laufwerke) verwenden „unter der Haube“ '''dosfstools'''. = Dokumentation = * [:man:Manpages] von dosfstools: * '''man mkfs.fat''' * '''man fsck.fat''' * '''man fatlabel''' * weitere manpages: * '''man mkfs''' * '''man fsck''' = Links = * [wikipedia:File_Allocation_Table:FAT] * [http://wiki.osdev.org/FAT Wiki von OSDev.org zu FAT] {en} * [wikipedia_en:8.3_filename:8.3-filename] * [https://msdn.microsoft.com/en-us/library/aa365247.aspx MSDN: Naming Files, Paths, and Namespaces] {en} * [github:dosfstools/dosfstools:dosfstools] {en} * [:Formatieren:] * [wikipedia_en:ExFAT:exFAT] * [https://openinventionnetwork.com/oin-adds-microsofts-exfat-to-linux-system-definition OIN Adds Microsoft’s exFAT to Linux System Definition] {en} #tag: System, Shell, Dateisystem