ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

Datenträger

 *  [1]: [:Terminal: Ein Terminal öffnen]

Datenträger und Dateisysteme unter Linux

Umsteiger von Windows auf Linux fragen sich oft, wo die gewohnten Laufwerksbuchstaben zu finden sind. Die Antwort ist einfach: es gibt sie nicht. Dateisysteme werden unter Linux ganz anders und wesentlich flexibler gehandhabt. Wie, erklärt dieser Artikel.

"Wo" sind die Datenträger?

Datenträger lassen sich auf zweierlei Arten beschreiben:

  1. sie befinden sich physikalisch an einem bestimmten Ort (Partition einer Festplatte, CD-ROM, Netzwerkfreigabe, MP3-Player,...)

  2. sie werden im System an einer bestimmten Stelle verwendet (C:\, D:\, ... H:\, oder /home, /media/cdrom, /media/camera, /home/benutzer/mp3, ...)

Die ersten dieser Beispiele sind die von Windows bekannten Buchstaben, die letzteren sind schlicht Verzeichnisse in einem Linux-System. Beliebige Verzeichnisse?! Im Prinzip ja. Unter Linux läßt sich der Ort, an dem man auf einen Datenträger zugreifen kann, beliebig festlegen. An der Stelle des Verzeichnisses /home/benutzer/mp3 könnte sich technisch gesehen eine Festplattenpartition befinden, oder eine CD-ROM, oder ein mobiles Gerät, eine USB-Platte - ganz wie man es gerade benötigt.

Wozu ist das nun gut? Ein Beispiel: Bei der Installation des Betriebssystems wurde einfach alles auf eine einzige Partition gelegt, das System wie auch die Dateien der einzelnen Benutzer. Was geschieht, wenn man jetzt diese Benutzerdaten auf eine andere Partition verlagern will? Unter Windows sind die Daten dann unter einem anderen Laufwerksbuchstaben erreichbar - statt C:\Dokumente und Einstellungen heißt es D:\Dokumente und Einstellungen. Und unter Linux? /home bleibt /home, ob darunter nun die einzige Partition der einzigen Festplatte liegt, die dritte Partition auf dem externen Firewirelaufwerk oder eine Netzwerkfreigabe auf irgendeinem Server.

Jeder beliebige Datenträger kann jederzeit an einer beliebigen Stelle in den großen Verzeichnisbaum "eingehängt" werden. Dieser Vorgang wird auch als "einbinden" oder "mounten" bezeichnet. Zwischen dem physischen Ort und dem Zugriffsort besteht kein erzwungener und oft störender Zusammenhang. Praktisch, oder?

die "fstab"

Jedes Dateisystem kann einem Mountpunkt zugewiesen werden. So weiß das System beim Start, welcher Datenträger das Verzeichnis /home enthält, oder wo das CD-ROM-Laufwerk einzuhängen ist. Diese Zuordnungen sind in einer Datei namens "fstab" (FileSystemTABle) gespeichert, die sich im Verzeichnis mit den allgemeinen Systemkonfigurationen /etc befindet. In dieser /etc/fstab werden die physischen Datenträger gemeinsam mit ihren Einhängepunkten aufgelistet. Ein Eintrag in der fstab kann zum Beispiel so aussehen:

/dev/hda1    /      ext3   defaults    1 1

Das sagt Dir jetzt aber gar nichts? Verständlich. Eigentlich kennst Du bisher nur den unscheinbarsten Teil dieser Zeile, das "/". Das ist die "Wurzel" des Verzeichnisbaumes. Ein anderes Beispiel macht das vielleicht klarer:

/dev/hda5    /home  xfs    defaults    0 0

"/home" ist bekannt, oder? Darin befinden sich die Daten der Benutzer. Was bedeuten nun die anderen Einträge? Der erste Eintrag ist der "technische" Teil. Das ist das "Gerät", auf dem sich das einzubindende Dateisystem befindet. Dieses Gerät kann zum Beispiel eine Festplattenpartition oder ein CD-ROM-Laufwerk sein.

Wie heißen die "Geräte"?

Diese Geräte sind nach einem einfachen Schema benannt.

  • Zuerst steht immer das Verzeichnis /dev/. In diesem Verzeichnis finden sich alle "Gerätedateien"; über Gerätedateien läßt sich die Hardware ansprechen.

    Fehlendes Makro

    Das Makro „Anmerkung“ konnte nicht gefunden werden.

An nächster Stelle kommt die Art des Gerätes:

  • IDE-Festplatten (also fast alle "normalen", internen Festplatten) beginnen mit den Buchstaben hd

  • "Normale" CD/DVD-Laufwerke (ATAPI) beginnen ebenfalls mit hd, denn sie werden ebenso wie IDE-Festplatten angeschlossen.

  • SCSI-Festplatten (dazu zählen auch Festplatten, die über USB oder Firewire angeschlossen sind) beginnen mit sd

  • externe oder SCSI-CD/DVD-Laufwerke beginnen mit scd

Dann kommt der Anschluß an die Reihe - es gibt ja mehrere IDE/ATAPI- oder SCSI-Anschlüsse

  • bei IDE-Geräten (interne Festplatten und CD-ROM-Laufwerke) ist wichtig, mit welchem IDE-Anschluß das Gerät verbunden ist. Jeder Anschluß kann zwei Geräte aufnehmen (sogenannte "Master" und "Slave").

    • Das Master-Gerät am ersten IDE-Anschluß bekommt den Buchstaben a (/dev/hda)

    • Das Slave-Gerät am ersten IDE-Anschluß bekommt den Buchstaben b (/dev/hdb)

    • Das Master-Gerät am zweiten IDE-Anschluß bekommt den Buchstaben c (/dev/hdc) * Das Slave-Gerät am zweiten IDE-Anschluß bekommt den Buchstaben d (/dev/hdd) * bei SCSI-Festplatten werden die Buchstaben der Reihe nach verwendet. (/dev/sda, /dev/sdb, /dev/sdc, ...) * SCSI- oder externe CD-ROMS werden mit Zahlen bei 0 beginnend numeriert. (/dev/scd0, /dev/scd1, ...) * Festplatten sind darüber hinaus in Partitionen unterteilt. Es gibt zwei Arten von Partitionen: * die "klassischen" primären Partitionen werden von 1 bis 4 numeriert (/dev/hda1, /dev/sdb3, ...) * eine der primären Partition kann als erweiterte Partition weitere "Partitionen", die sogenannten logischen Laufwerke enthalten. Deren Benennung beginnt in jedem Fall bei der Ziffer 5 (/dev/hdb5, /dev/sda12, ...) * RAID-Geräte beginnen mit md und werden dann mit 0 beginnend hochgezählt (dev/md0, /dev/md1, ...) * Logische Volumes, wie sie von LVM oder EVMS erzeugt werden, finden sich an gesonderter Stelle. Hierzu empfiehlt sich die Lektüre der jeweiligen Anleitung. Um jetzt auf die fstab zurückzukommen: der genannte Eintrag {{{#!Text /dev/hda5 /home ... }}} bedeutet also, daß das Dateisystem auf dem ersten logischen Laufwerk der Master-Platte am ersten IDE-Anschluß im Verzeichnis /home eingehängt werden soll. === Dateisysteme === Die Daten auf einem Datenträger sind dort nicht willkürlich verteilt oder einfach aneinandergehängt, sondern so organisiert, daß man auf einzelne Dateien und Verzeichnisse zugreifen kann, diese verschieben und bearbeiten, Berechtigungen zuweisen usw. Diese Organistationsprinzipien werden als Dateisysteme bezeichnet. Es gibt verschiedene Typen, von denen die folgenden für Dich wichtig sind: ==== Dateisysteme für optische Datenträge ==== * iso9660 und udf werden auf CD-ROMs und DVDs verwendet. Sie kennen keine Berechtigungen. udf wird für DVD-RAMs verwendet, dazu müssen die udf-tools installiert werden. ==== Windows Dateisysteme ==== * FAT ist das Dateisystem der Windows-Versionen bis Win98/ME. Es ist ziemlich primitiv, neigt zur Fragmentierung und unterstützt keine Berechtigungen. Allerdings kann Linux FAT beschreiben, so daß sich eine mit FAT formatierte Partition zum Datenaustausch mit Windows anbietet. Windows kennt nämlich kein einziges fremdes Dateisystem. * NTFS ist das Dateisystem neuerer Windows-Versionen wie 2000 oder XP. Da die Spezifikation von NFTS geheim ist und freie Treiber den Interessen von Microsoft zuwiderlaufen, müssen die NTFS-Treiber in Linux mit großem Aufwand per "Reverse-Engineering" geschrieben werden. NTFS läßt sich von Linux daher zwar lesen, aber nicht sicher beschreiben. ==== Linux Dateisysteme ==== * ext2 ist das erprobte und wahre Linux Dateisystem, unterstützt aber kein Metadata Journaling, was bedeutet, dass routinemäßige Dateisystem Checks beim Booten sehr zeitaufwändig sein können. Es gibt mittlerweile eine Auswahl an journalisierenden Dateisystemen neuerer Generation, die die Konsistenzchecks sehr schnell erledigen und dadurch im Vergleich mit den nicht-journalisierenden Gegenstücken vorzuziehen sind. Jounalisierende Dateisysteme verhindern lange Verzögerungen beim Booten, wenn sich das Dateisystem in einem inkonsistenten Zustand befindet. * ext3 ist die journalisierende Version des ext2 Dateisystems, die Metadaten Journaling für schnelle Wiederherstellung sowie andere verbesserte Journaling Modi wie "full data" und "ordered data" Jornaling unterstützt. ext3 ist ein sehr gutes und verlässliches Dateisystem. Es hat eine zusätzliche B-Baum Indexierungsoption, die in fast allen Situationen hohe Performanz ermöglicht. Sie können diese Indexierung aktivieren, indem Sie -O dir_index zum mke2fs Befehl hinzufügen. Kurz gesagt: ext3 ist ein exzellentes Dateisystem. * ReiserFS ist ein B*-tree basierendes Dateisystem mit einer guten Performance und überholt sowohl ext2 und ext3 im Umgang mit kleinen Dateien (Dateien kleiner als 4k) oftmals mit einem Faktor von 10x-15x. ReiserFS skaliert extrem gut und hat Metadata Journaling. Seit Kernel 2.4.18+ ist ReiserFS stabil und sowohl als Dateisystem für generelle Anwendungen, als auch für extreme Fälle wie große Dateisysteme, den Gebrauch mit vielen kleinen Dateien, den Gebrauch mit sehr großen Dateien und Verzeichnissen mit tausenden von Dateien brauchbar. Unglücklicherweise gibt es immer noch einige Probleme mit ReiserFS auf PPC. * XFS ist ein Dateisytem mit metadata journaling, das mit einem robusten Feature-Set kommt und auf Skalierbarkeit ausgelegt ist. Den Einsatz dieses Dateisystems sollte man nur auf Linux Systemen mit High-End SCSI und/oder Fibre Channel Storage und einer redundaten Stromversorgung empfehlen. Da XFS agressiv vom RAM gebraucht macht, können unsachgemäß designte Programme (solche die keine Vorsichtsmaßnahmen treffen, wenn Sie auf die Festplatte schreiben und davon gibt es einige) dazu führen, dass eine ganze Menge Daten verloren gehen, wenn das System unerwartet ausfällt. Das Dateisystem ist der dritte Eintrag in der fstab: {{{#!Text /dev/hda1 / ext3 ... }}} === Mountoptionen === Als nächstes folgen verschiedene Optionen, die festlegen, auf welche Weise das betreffende Dateisystem eingehängt werden soll. Beispielsweise führt die Option ro dazu, daß auf dem Dateisystem nichts geschrieben werden kann, noexec verbietet das Ausführen von Dateien. Eine Ausführliche Auflistung aller Optionen gibt es in der Anleitung zum Befehl "mount", die im Terminal [1] mit {{{#!Befehl man mount }}} aufgerufen werden kann. Einige für die Verwendung von NTFS- oder FAT-Dateisystemen wichtige Optionen werden auf der Seite über das Einbinden von Windows-Partitionen im letzten Abschnitt beschrieben. Hier werden über Mountoptionen die nötigen Lese- und Schreibberechtigungen gesetzt. === die zwei Zahlen === Am Ende der fstab-Zeile stehen zwei Zahlen. Die zweite Zahl gibt an, ob und in welcher Reihenfolge das Dateisystem beim Systemstart in die regelmäßigen Fehlerüberprüfungen einbezogen werden soll. Meist ist hier für die Root-Partition (die Wurzel des Dateisystems, "/") 1 eingetragen, für alle anderen Partitionen 2 (danach prüfen) oder 0 (keine Überprüfung). === Beispiel === Eine reale fstab enthält noch weitere Einträge, beispielsweise für das spezielle /proc-Dateisystem oder den Auslagerungsspeicher (swap): {{{#!Text # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/hda1 / ext3 defaults,errors=remount-ro 0 1 /dev/hda5 none swap sw 0 0 /dev/hda6 /home ext3 defaults,user_xattr 0 2 /dev/hdd /media/cdrom0 udf,iso9660 ro,user,noauto 0 0 /dev/scd0 /media/cdrom1 udf,iso9660 user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0 }}} Beim zweiten CD-ROM handelt es sich hier um ein direkt beschreibbares externes DVD-RAM-Laufwerk, daher fehlt die Option "ro". == Welches ist die gesuchte Partition? == Wenn man nicht sofort weiß, die wievielte Partition auf welcher wie auch immer angeschlossenen Platte nun das benötigte Dateisystem enthält, kann man sich alle Partitionen im Terminal [1] mit dem Befehl {{{#!Befehl sudo fdisk -l }}} anzeigen lassen: {{{#!Text Platte /dev/hdc: 40.0 GByte, 40060403712 Byte 16 Köpfe, 63 Sektoren/Spuren, 77622 Zylinder Einheiten = Zylinder von 1008 × 512 = 516096 Bytes Gerät boot. Anfang Ende Blöcke Id System /dev/hdc1 1 39693 20005240+ 83 Linux /dev/hdc2 39694 45876 3116232 7 HPFS/NTFS /dev/hdc3 45877 53812 3999744 c W95 FAT32 (LBA) /dev/hdc4 53813 77616 11996996 5 Erweiterte /dev/hdc5 53813 61749 4000216+ 83 Linux /dev/hdc6 61750 69686 4000216+ 83 Linux /dev/hdc7 69687 77616 3996499+ 83 Linux }}} Anhand des Partitionstyps und der relativen Größen läßt sich dann die gesuchte Partition meist leicht erraten. == Mounten von Hand == Der Befehl "mount" wird verwendet, um ein Dateisystem einzuhängen. Beispiel: {{{#!Befehl $ mount -t ext3 -o ro,noexec /dev/hda5 /media/data }}} Die Option -t ... gibt den Dateisystemtyp an und kann meist entfallen, da das Dateisystem normalerweise automatisch erkannt wird. Die Option -o wird von den Mountoptionen gefolgt, sie entfällt, wenn keine Optionen anzugeben sind. Entweder die Angabe des Gerätes oder die des Mountpunktes kann entfallen, wenn ein Dateisystem genau wie in der fstab eingetragen eingehängt werden soll. Zum Aushängen dient der Befehl "umount", gefolgt von der Angabe des Gerätes oder des Mountpunktes. == Netzlaufwerke == Das Einbinden von Netzlaufwerken ist in den jeweiligen Artikeln zu ["NFS"] und Windows-Freigaben erklärt. –– * ["Kategorie/System"]

Diese Revision wurde am 7. Juni 2006 13:09 von Chrissss erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Festplatte, System, Partitionierung, Datenträger, ungetestet