AA_PO-18083-Fotolia-Pavlenko_Evgeniy_-Katalog_resized.jpg

© Pavlenko Evgeniy, fotolia.de

Magie der Dateisysteme

Wie Dateisysteme funktionieren

07.04.2014
Linux und Windows teilen sich problemlos eine Festplatte, doch der Zugriff auf die Partitionen des jeweils fremden Systems sorgt oft für Probleme – wir erklären, woran das liegt.

Dateisysteme organisieren Datenträger wie Festplatten(-partitionen), USB-Sticks, CDs und DVDs oder die aus der Mode gekommenen Disketten. Wenn Sie eine Partition formatieren, also mit einem Dateisystem versehen, dann schaffen Sie damit die nötigen Strukturen, um anschließend Verzeichnisse und Dateien auf dieses Medium zu kopieren. Damit Sie die Daten später auch wiederfinden, ist eine gewisse Organisation notwendig: Auf dem Datenträger muss z. B. vermerkt werden, welche Datenbereiche noch (für neue Dateien) verfügbar sind und wo sich die Datenblöcke, also die eigentlichen Inhalte, bereits vorhandener Dateien befinden.

Nehmen wir an, dass Sie einen USB-Stick mit einem eigenen, selbst ausgedachten Dateisystem versehen wollen. Dazu könnten Sie den Flash-Speicher, der für dieses Beispiel 1 GByte groß sein soll, in 1 024 x 1 024 Datenblöcke der Größe 1 KByte unterteilen. (1 024 x 1 024 x 1 KByte = 1 GByte.) Wenn Sie auf Unterverzeichnisse verzichten können, benötigt Ihr Dateisystem nur ein simples Inhaltsverzeichnis. Verlangen Sie außerdem, dass Dateien zusammenhängend gespeichert werden (sich die Daten also in aufeinanderfolgenden Datenblöcken befinden), dann können Sie für jede Datei in das zentrale Inhaltsverzeichnis den Dateinamen, die Blocknummer des ersten Blocks sowie die Anzahl der belegten Blöcke und die tatsächliche Dateigröße schreiben. Die Größe der Datei ergibt sich nicht automatisch aus der Blockanzahl, denn Dateien können ja im letzten Block nur einen Teil des verfügbaren Speichers nutzen: Im Beispiel mit Blockgröße 1 KByte braucht z. B. eine winzige Datei der Größe 100 Byte trotzdem einen kompletten Block, weil Sie mit dem Blocknummer-Schema Blöcke nur vollständig einer Datei zuordnen können. Damit könnte ein einfaches Inhaltsverzeichnis für den USB-Stick die Form von Tabelle 1 annehmen: Die ersten beiden Blöcke (Nummern 0 und 1) stehen für das Inhaltsverzeichnis zur Verfügung, los geht es dann mit Dateiinhalten in Block 2. (1 KByte sind 1 024 Byte, nicht 1 000.)

Tabelle 1: Einfaches Inhaltsverzeichnis

Dateiname Erster Block Blockzahl Größe
artikel.txt 2 16 16 001
artikel.html 18 21 20 919
id.png 39 36 36 320
wmic.png 75 13 13 088
aufmacherbild.jpg 88 551 564 109

Auf Datenträgern wie CDs und DVDs, die nur einmal beschrieben werden, weil sie nach dem Brennen nicht mehr veränderbar sind, reicht ein einfaches Dateisystem wie das oben beschriebene im Prinzip aus – es fehlt nur noch die Möglichkeit, Unterordner anzulegen. Für Festplatten, USB-Sticks und Disketten ist dieser Ansatz aber nicht geeignet, denn dort ist es nötig, Dateien auch wieder löschen zu können: Dadurch werden ehemals belegte Datenblöcke wieder verfügbar, und beim späteren Anlegen neuer Dateien müssen diese Blöcke "recycelt", also erneut genutzt werden. Hier stößt unser einfaches Dateisystem an seine Grenzen: Es kann passieren, dass Sie viele Bereiche mit freien (ehemals belegten) Datenblöcken haben, dass aber keiner davon groß genug ist, um eine größere Datei aufzunehmen, obwohl die Gesamtzahl der freien Datenblöcke dafür locker ausreichen würde. Dieser Effekt heißt Fragmentierung – um wieder Platz zu schaffen, müsste der Datenträger defragmentiert werden, wozu das System die meisten Dateien von hinteren Bereichen nach vorne verschieben müsste, um die entstandenen Lücken zu schließen: unpraktisch!

Komplexere Dateisysteme

Um veränderbare Datenträger sinnvoll nutzen zu können, haben Betriebssystem-Entwickler sich viele unterschiedliche Mechanismen und Verwaltungsstrukturen ausgedacht; so ist z. B. statt des Speicherns von Anfangsblock und Blockanzahl eine Liste aller verwendeten Blöcke üblich: Damit kann das System beliebige freie Blöcke auf dem Datenträger nutzen, wenn es eine neue Datei anlegen will. Das Verwalten solcher Blocklisten ist komplexer, und es gibt keine ideale Methode dafür.

Im Ergebnis sind etliche Dateisysteme entstanden, die zueinander nicht kompatibel sind. Stecken Sie z. B. einen mit dem Linux-Dateisystem Ext3 (Third Extended Filesystem) formatierten USB-Stick an einem Windows-PC ein, können Sie auf die gespeicherten Dateien nicht zugreifen: Windows erkennt das Ext3-Dateisystem nicht und weiß nicht, wie es die Dateien erreichen kann.

Linux ist hier "umgänglicher" und bringt Treiber für zahlreiche fremde Dateisysteme mit, z. B. solche von Windows und Apples OS X. Wenn Sie also umgekehrt z. B. einen mit NTFS (Windows) formatierten USB-Stick an einem Linux-PC einstöpseln, erkennt Linux das Dateisystem und erlaubt den Zugriff auf die Dateien – nur bedeutet das nicht zwingend, dass Sie als normaler Anwender auch direkt Zugriff erhalten; es kann passieren, dass nur der Administrator root die Dateien auf dem Stick sehen kann. Woran liegt das?

Metadaten

Neben den zwingend nötigen Informationen, die jedes Dateisystem für Dateien verwalten muss (im Wesentlichen: Wie heißt die Datei und welche Datenblöcke belegt sie?) speichern alle heute verwendeten Dateisysteme noch zusätzlich so genannte Metadaten – das sind Daten, welche die Datei über Name und Position hinaus beschreiben. Eine wichtige Komponente der Metadaten sind unter Linux der Dateibesitzer, die Besitzergruppe und die Zugriffsrechte (lesen, schreiben, ausführen; für Besitzer, Gruppenmitglieder und sonstige Anwender). Wenn Sie in der Shell ein Verzeichnis mit ls -l auflisten, sehen Sie diese Informationen (Abbildung 1). Am linken Rand stehen für jede Datei zehn Zeichen, von denen die letzten neun jeweils einer der Buchstaben r (read, lesen), w (write, schreiben) und x (execute, ausführen) oder ein Minuszeichen sind – wenn an einer Position ein Buchstabe steht, ist das jeweilige Recht gesetzt. Wenn nicht, fehlt das Recht. Die erste Dreiergruppe beschreibt dabei die Zugriffsrechte für den Dateibesitzer, die zweite Dreiergruppe die Rechte der Gruppenmitglieder und die letzte Gruppe die Rechte der sonstigen Anwender. Die Datei von-allen-lesbar.txt in der Abbildung hat z. B. die folgenden Rechte:

  • Der Dateibesitzer (esser) darf die Datei lesen und schreiben (rw-),
  • Mitglieder der Gruppe users (also alle normalen Benutzer, das Beispiel kommt von einem OpenSuse-System, das alle regulären Nutzer der Gruppe users zuordnet) dürfen nur lesen (r--),
  • und die sonstigen Benutzer (also solche, die weder der Besitzer noch Mitglieder der Gruppe users sind) dürfen ebenfalls nur lesen (die letzte Dreiergruppe r--).

Ausführen darf niemand diese Beispieldatei, an den x-Positionen steht ja immer ein Minuszeichen.

Abbildung 1: Bei der Anzeige eines Verzeichnisses mit "ls -l" sehen Sie die Zugriffsrechte für Dateibesitzer, Gruppenmitglieder und andere Benutzer.

Die neun Zugriffsrechte sowie die Angaben zu Dateibesitzer und Besitzergruppe finden Sie bei allen Unix-artigen Systemen: Falls Sie z. B. einen Rechner mit FreeBSD verwenden, tauchen diese Angaben beim Einsatz von ls in gleicher Weise auf. Auch auf einem Mac, dessen OS X auf einer Unix-Variante basiert, finden sich diese Zugriffsrechte und Besitzer-/Gruppeninformationen. Windows hingegen ist nicht in der Tradition der Unix-Betriebssysteme entstanden, sondern war eine Weiterentwicklung von MS-DOS. DOS kennt keine Dateibesitzer (weil es gar keine Benutzerverwaltung hat), und entsprechend gibt es im DOS-eigenen Dateisystem FAT (File Allocation Table) auch keine Möglichkeit, Hinweise zum Besitzer oder zu Zugriffsrechten zu speichern. Stattdessen kennt FAT nur die vier Datei-"Attribute" Read-only (nur lesbar), Archive (archiviert), Hidden (versteckt) und System (Systemdatei), die für jede Datei entweder gesetzt oder nicht gesetzt sind. Wenn eine FAT-Datei das Attribut Read-only hat, entspricht das in etwa einem fehlenden Schreibrecht – für alle Anwender.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Zugriff auf Windows- und OS-X-Datenträger
    Windows formatiert Plattenpartitionen mit dem NTFS-Format, Apples Rechner verwenden HFS+. Beide Dateisysteme unterstützt der Linux-Kernel nur eingeschränkt – für den Vollzugriff gibt es ein Treiberpaket von Paragon.
  • Reger Austausch
    Egal ob Windows XP oder Windows Vista: Der lesende und schreibende Zugriff auf NTFS-Partitionen gelingt mit Hilfe mehrerer Tools inzwischen reibungslos.
  • Aufgeschlossen
    Egal ob XP, Vista oder Windows 7: Der lesende und schreibende Zugriff auf NTFS-Partitionen gelingt mithilfe von Ntfs-3g inzwischen reibungslos.
  • Datei mit System
    Was ist ein Dateisystem? Warum gibt es mehrere davon, und warum verwendet Linux nicht die gleichen wie Windows? Das sind viele Fragen, die wir in diesem Artikel beantworten.
  • Gemeinsame Sache
    Speziell auf Wechseldatenträgern und Parallelinstallationen sind Windows-Dateisysteme allgegenwärtig. Zwar kann Linux gut mit ihnen umgehen, doch gilt es einige Einschränkungen zu beachten.
Kommentare

Infos zur Publikation

title_2014_03

Digitale Ausgabe: Preis € 9,80
(inkl. 19% MwSt.)

EasyLinux erscheint vierteljährlich und kostet EUR 9,80. Weitere Informationen zum Heft finden Sie auf der EasyLinux-Homepage.

Das EasyLinux-Jahresabo mit Prämie kostet ab EUR 33,30. Details zum EasyLinux-Jahresabo finden Sie im Medialinx-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!      

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 4 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...