SelfLinux Grundlagen Zugriffe auf Laufwerke Abschnitt 1 | SelfLinux-0.13.0

| Zugriffe auf Laufwerke | Autor Formatierung GFDL

#### 1 Einleitung

#### 1.1 Grundsätzliches

Die Verzeichnis- und Dateistruktur von Linux stellt einen Baum dar, der mit dem Wurzelverzeichnis / beginnt. Der Baum selbst ist nicht mit dem verwendeten Dateisystem zu verwechseln. Tatsächlich kann der Baum gleichzeitig zahlreiche verschiedene Dateisysteme enthalten. Darüber hinaus gibt es Spezialdateien, die keine Daten im herkömmlichen Sinne enthalten und die auch nicht als Teil eines Dateisystems betrachtet werden können. Hierzu gehören auch die Gerätedateien.

Jedes Gerät, das unter Linux verwendet werden soll, wird durch eine solche Gerätedatei innerhalb des Verzeichnis- und Dateibaumes repräsentiert werden. Um sich eine ungefähre Vorstellung vom Sinn dieser Dateien zu machen, kann man sie sich als die Adresse innerhalb des Verzeichnisbaumes vorstellen, von welcher der Kernel liest oder auf die er schreibt, wenn er auf das Gerät zugreift.

In diesem Kapitel interessiert uns jedoch ein besonderer Typ von Geräten, den wir in der Überschrift als Laufwerke bezeichnet haben. Alle Laufwerke haben zweierlei gemeinsam: Zum einen enthalten sie fixierte oder wechselbare Datenträger. Diese Datenträger enthalten die Daten, die gewissermaßen den eigentlichen Sinn des Laufwerks ausmachen. Zweitens müssen die Datenträger dieser Laufwerke mit einem bestimmten Dateisystem formatiert sein. Hier kommt also der Begriff des Dateisystems ins Spiel.

Wie hängt das Dateisystem eines Datenträgers mit dem oben beschriebenen Baum zusammen? Auch wenn ein Laufwerk bereits durch eine Gerätedatei repräsentiert wird, ist das Dateisystem seines Datenträgers noch nicht benutzbar. Der Kernel weiß von dem betreffenden Laufwerk nämlich bislang nur, dass es sich um ein blockorientiertes Gerät handelt (dass die Daten des Gerätes also blockweise zu lesen und zu schreiben sind) und hoffentlich auch, welchen Treiber er für Zugriffe auf das Gerät zu verwenden hat. Das verwendete Dateisystem ist dem Kernel noch unbekannt, und ohne diese Kenntnis machen blockweise Zugriffe auf das Gerät keinen großen Sinn. Den Typ des Dateisystems teilt man dem Kernel nun mit, indem man das Gerät (repräsentiert durch seine Gerätedatei) in den Verzeichnisbaum einhängt. In diesem Zusammenhang verwendet man auch häufig den englischen Begriff mounten. Man sagt, dass ein Laufwerk gemountet werden muss.

Beim Mounten geschieht also zweierlei: Zum einen wird dem Kernel mitgeteilt, welchen Dateisystem-Typ das neu eingehängte Gerät verwendet. Zweitens muss der Kernel wissen, an welcher Stelle im Dateibaum er das neue Gerät einhängen soll. Ihm wird also ein Verzeichnispfad mitgeteilt, unter dem das Gerät fortan anzusprechen ist.

Nach so viel allgemeiner Erklärung fassen wir die zentralen Begriffe im Folgenden nochmals zusammen. Wenn Ihnen die ein oder andere Frage zunächst unbeantwortet geblieben ist, lesen Sie zunächst weiter - vieles wird sich bei der konkreten Betrachtung der Handhabung von Laufwerken später von selbst klären.

#### 1.2 Kurze Zusammenfassung der wichtigsten Begriffe

Mounten:

Das Englische to mount bedeutet so viel wie anbringen oder montieren. Man spricht anschaulich vom Einhängen in das Dateisystem. Als Mountpoint oder Mountpunkt wird auch die Stelle bezeichnet, an der ein Gerät in das Dateisystem eingehängt wird.

Gerät:

Linux verwendet eine einheitliche, abstrakte Schnittstelle für Geräte. Dabei handelt es sich um das Gerätedateisystem /dev. Wenn Sie ein Laufwerk verwenden möchten, so nutzen Sie jedoch nicht direkt das Gerätedateisystem, sondern hängen das entsprechende Gerät, das sich unter /dev befindet, an einer anderen Stelle in den Dateibaum ein. Dabei müssen Sie den Dateisystemtyp des verwendeten Datenträgers und den Mountpunkt angeben.

Verzeichnisbaum:

Der Linux-Verzeichnisbaum beginnt mit dem Wurzelverzeichnis /. Er bildet eine Abstraktion von den eigentlichen Verzeichnissen und Dateien sowie auch von allen tatsächlichen und virtuellen Geräten.

Dateisystem:

Ein Dateisystem legt die Strukturierung von Daten auf blockorientierten Datenträgern fest. Einen Datenträger mit einem Dateisystem zu formatieren heißt, den Datenträger mit dieser Strukturierung zu versehen.

#### 2 Theorie okay. Aber wie geht man mit mount um?

Um das CD-ROM-Laufwerk ansprechen zu können, muss es also in das Dateisystem eingehängt werden. Normalerweise muss man sich nicht viele Gedanken machen, wie das geht. Eine kurze Zeile in der Bash erledigt das für Sie. Da das CD-ROM-Laufwerk unter /mnt eingehängt wird (wir nehmen wieder Red Hat als Beispiel), sieht dies wie folgt aus.

user@linux ~$ mount /mnt/cdrom

Nach dem oben Gesagten muss uns dieses Kommando irritieren, denn weder wird die erforderliche Gerätedatei angegeben noch der Typ des Dateisystems. Wenn das Kommando dennoch funktioniert, liegt das an einem Eintrag in der Datei /etc/fstab. mount schaut in dieser Datei nach, ob es einen Eintrag für den Mountpunkt /mnt/cdrom findet. Ist dies der Fall, liest es die zugehörige Gerätedatei sowie den Dateisystemtyp aus /etc/fstab und hängt das Gerät unter /mnt/cdrom ein.

Um das CD-ROM-Laufwerk auch ohne Eintrag in der /etc/fstab benutzen zu können, geben Sie die folgende Zeile ein:

user@linux ~$ mount -r -t iso9660 /dev/cdrom /mnt/cdrom

Lassen Sie sich nicht durch die -r Option irritieren. Sie gibt lediglich an, dass wir hier ein ausschließlich lesbares Dateisystem einhängen wollen. Sie wäre nicht unbedingt notwendig gewesen, andernfalls hätte mount uns jedoch mitgeteilt, dass das eingehängte Dateisystem schreibgeschützt ist.

Der Befehl df müsste Ihnen jetzt in etwa folgende Zeilen ausgeben:

user@linux ~$ df Dateisystem 1k-Blöcke Benutzt Verfügbar Ben% montiert auf /dev/hda3 4032124 2582084 1245212 68% / /dev/hda1 23302 10063 12036 46% /boot none 63244 0 63244 0% /dev/shm /dev/cdrom 506144 506144 0 100% /mnt/cdrom

Interessant ist die letzte Zeile der Ausgabe:

/dev/cdrom 506144 506144 0 100% /mnt/cdrom

1k-Blöcke zeigt das Fassungsvermögen der CD. Benutzt zeigt an, wieviel Speicherplatz bereits belegt ist. Verfügbar zeigt die Menge des freien Speicherplatzes. Bei CD-ROMs ist alles belegt und nichts mehr frei, da wir nicht darauf schreiben können.

Die Ausgabe zeigt uns, dass das CD-ROM-Laufwerk, welches über die Gerätedatei /dev/cdrom angesprochen wird, in das Dateisystem eingebunden ist, nämlich unter dem angegebenen Verzeichnis /mnt/cdrom. Mittels ls /mnt/cdrom können uns den Inhalt der CD ansehen. Hätte das Laufwerk keine CD enthalten, wäre es übrigens zu einer Fehlermeldung der folgenden Art gekommen:

user@linux ~$ mount -r -t iso9660 /dev/cdrecorder /media/dvd mount: Kein Medium gefunden