Datenformat auf Magnetplatten

1. Betriebssysteme und ihre Formate

Unix: ufs, s5, pcfs, hsfs (in /etc/default/fs und /etc/dfs/fstypes)
Linux: minix, ext, ext2, ext3, xiafs,(u)msdos, hpfs (in /etc/fstab)
Dos: FAT (16)

2. Die Formate näher betrachtet

I-Node System

Prinzipielle Funktionsweise Unix Dateisystemen
ufs (Berkley 4.3) Das Standard UNIX Filesystem arbeitet nach dem I-Node System
s5 (standard System V)
High Sierra ISO 9660 (CD Rom)

minix:

Der erste von Linux unterstützte Dateisystemtyp. Er hat den gravierenden Nachteil, daß die Maximale Länge von Dateinamen auf 14-30 Zeichen beschränkt ist (64MB max Partitionsgröße). Hauptsächlich sinnvoll auf Disketten oder RAM Disks
extfs Das ursprüngliche Linux-Filesystem, ein ursprünglicher Nachfahre vom minix Filesystem. Es wurde aber wegen seiner Limitationen durch das ext2fs ersetzt. Partitionen bis 2GB Größe 255 Zeichen aber langsamer als Minix, hohe Fragmentierung.
ext2 Das unter Linux gebräuchliche Filesystem für Festplatten und Wechseldatenträger. Es bietet die beste Ressourcen ausnutzung in Bezug auf Geschwindigkeit und CPU Auslastung.
ext3 Ein Journaling Filesystem als Erweiterung zu ext2fs unter Linux.
ext4 Ein Journaling Filesystem als Erweiterung zu ext2fs unter Linux.
btrfs Ein Journaling Filesystem als Erweiterung zu ext2fs unter Linux.
xfs Ein lokales Filesystem.
xiafs Ein stabiles lokales sicheres Filesystem (erweitertes minix) längere Dateinamen größere inodes wird aber seid Kernel 2.x nicht mehr verwendet. Partition bis 2Gbeit, Dateinamen bis 248 Zeichen.
msDos FAT ( File Allocation Table ), das alte, 16 Bit DOS-System wird wahrscheinlich in 90% aller PC benutzt. Seltsamerweise auch das System das UNIX und LINUX gemeinsam haben
hpfs Filesystem für hpfs Partitionen
reiser Ein weiteres Journaling Filesystem

I-Node:
Unix-Dateisysteme sind nach einem anderen Prinzip aufgebaut, als Dos-Fat Systeme. Es gibt zwar viele verschiedene Dateisysteme unter Unix, gemeinsam haben sie jedoch eben das Prinzip der Funktionsweise. Und dieses Prinzip beruht auf den sogenannten I-Nodes.
Jede Partition enthält ein Dateisystem, dieses Dateisystem wiederum enthält eine Art Inhaltsverzeichnis, die I-Node-Liste. Die einzelnen Elemente der I-Node-Liste sind die DAteiköpfe also die Orte wo Dateiattribute, Größe usw gewspeichert werden. Diese Dateiköpfe werden I-Nodes genannt.
Wie unter Dos auch so verwalten Unix-Dateisysteme nicht zwangsläufig die Sektoren einer Festplattenpartition sondern Zuordnungseinheiten, die heir aber nicht Cluster sondern Block heißen. Beim Anlegen eines Dateisystems kann die Blockgröße angegeben werden, die auf dieser Partition verwendet werden soll. Typische Blockgrößen sind 512,1024 oder 2048 Byte. Voreingestellt sind meist 1024 Byte pro Block.
Anders als unte rDos werden diese Blöcke aber nicht in einer Tabelle (FAT) zusammengefasst, sondern die I-Nodes enthalten selbst die Verweise auf diese Blöcke.

Boot-Block
Superblock

I-Node-Liste

 

Datenblöcke

 

 

Aufbau eines Inodes:

Typ und Zugriffsrechte
Anzahl der Hardlinks
Benutzernummer (UID)
Gruppennummer (GID)
Größe der Datei in Bytes
Datum der letzten Veränderung (mtime)
Datum der letzten Statusänderung (ctime)
Datum des letzten Zugriffs (atime)
Adresse von Datenblock 0
...
Adresse von Datenblock 9
Adresse des ersten Indirektionsblocks
Adresse des Zweifach-Indirektionsblocks
Adresse des Dreifach Indirektionsblocks

ext2fs:
Im Wesentlichen entspricht das ext2fs von Linux dem Unix-Inode-System. Die wesentlichen Unterschiede zum "normalen" I-Node System liegen in der Struktur der I-Nodes selbst. Hier sind einige Felder hinzugekommen, die für bestimmte Erweiterungen vorgesehen wurden.

ext3fs:
Journaling Filesysteme führen bei Schreibzugriffen ein sogenanntes Journal. Das ist eine besondere Datei in der änderungen am Dateisystem vermerkt werden, bevor sie durchgeführt werden. Im Normalfall wird dies im Hintergrund durchgeführt, bei einem Systemabsturz kommt der Unterschied zu tage. Beim neu booten hat ein normales Dateisystem keine Informationen über die verlorenenen Daten bzw. über änderungen im Filesystem zum Zeitpunkt des Absturzes. Um die Zuordnung der verloren gegangenen Informationen wieder herzustellen wird der Journal File verwendet in dem die Operationen zuerst abgespeichert wurden.

msDos:
Die auf einer Diskette gespeicherten Dateien liegen nicht als nahtlose, zusammenhängende Folgen von Text oder Zahlen vor, sondern werden als Gruppen mit einer festen Anzahl von Byte (Zeichen) je nach vorhandenem Platz abgelegt. Eine einzelne Datei kann demzufolge stückweise über viele Speicherbereiche «zerstreut» sein. Die Dateizuordnungstabelle (FAT) stellt eine «Karte» aller verfügbaren Speicherstellen auf einem Datenträger (Diskette, Festplatte, ZIP-Datenträger usw.) dar, so dass beschädigte und damit nicht mehr verwendbare Segmente markiert sind und Teile einer Datei gesucht und wieder zusammengesetzt werden können.

Aufbau einer DOS-Diskette (FAT: 720kb, 1440kb)

Format HD DD
Bytes/Sektor 512

512

Reserve Sektor 1 1
FAT-Sektoren 9 3
Sektoren/Trak 18 9
Sektoren insg. 2880 1440
Boot Sektor 0 0
FAT1 - Sektoren 1-9 1-3
FAT2 - Sektoren 10-18 4-6
Root-Direktory-Sektoren 19-32 7-13
Daten-Bereich-Sektoren 33-2879 (2844) 14-1439
Spuren (log.) 0-79 0-39
Seiten (log.) 1-18 1-8 (9)
Sektor Nummerierung (log) 1-2880 1-320

Reiser:
Dieses Filesystem wurde von einem Hans Reiser als ein Projekt entwickelt.
Als journaling Filesystem biete Reiser-FS den Vorteil, daß es auf langwierige Checks verzichten kann und auch nach einem nicht ganz ordnungsgemäßen herunterfahren des Rechners stehen die damit versehenen Partitionen schnell wieder zur Verfügung. Zudem weist das Dateisystem gegenüber ext2 geringeren Verschnitt und z.T. wesentlich kürzere Suchzeiten auf.

 

3. MTools

MTools sind eine Public Domain Sammlung, die es UNIX Systemen erlauben Dateien auf MS/DOS Filesystemen zu manipulieren. Jedes Programm ist an einen MS/DOS Befehl angelehnt und emuliert ihn so weit wie möglich.

Mehr Informationen in der MTools Manpage

4. Links:

Filesystems
http://www.fifi.org/
http://www.karbosguide.com/de/modulg6a1.htm
http://www.nt.fh-koeln.de/fachgebiete/inf/diplom/disks/vergleich1.html
http://ibiblio.org/pub/Linux/system/filesystems/ (programme zum Runterladen)