Linux/Dateisystem
Verzeichnisstruktur
Zugriff auf Datenträger
Dateisysteme einbinden (mount)
mount setzt das Dateisystem zusammen
mount [-afnrwuv] [-t Typ] [-o Schalter] [Gerätedatei] [Verzeichnis]
mount fügt die einzelnen Dateisysteme auf den verschiedenen Massenspeichern zu einem einzigen Dateisystembaum zusammen.
Die einzelnen Partitionen und Laufwerke sind als Gerätedateien (special-files) im Ordner /dev abgebildet. Die auf den Partitionen gespeicherten Dateisysteme werden durch den mount Befehl auf beliebige leere Verzeichnisse aufgesetzt.
mount erstellt eine Liste der aufgesetzten Dateisysteme in /etc/mtab. Der Kernel unterhält die gleiche Liste im Prozeßdateisystem in /proc/mounts. Wenn mount ohne Kommandozeilenargumente aufgerufen wird, zeigt es den Inhalt dieser Liste an. Wenn ein mount-Befehl unvollständig angegeben wird, werden die fehlenden Parameter automatisch aus der Datei /etc/fstab ergänzt.
Die Superuserin kann das Einbinden bestimmter Dateisysteme durch unprivilegierte Systembenutzer erlauben, indem für die entsprechenden Devices die Option user in der Datei /etc/fstab eingetragen wird.
Ältere Versionen von mount haben den Versuch, ein schreibgeschütztes Medium zum Lesen und Schreiben in das Dateisystem einzubinden abgebrochen, weil der Kernel ein solches mounten verweigert. Das aktuelle mount erkennt den Fehler und bindet das Dateisystem automatisch nur zum Lesen ein.
Optionen
Mount kann alle von Linux unterstützen Dateisysteme mounten. Jedes dieser Dateisysteme unterstützt i.d.R. eine große Anzahl von Optionen. Für weitere Informationen sei hier auf die Manpage von mount(8) und den eingesetzten Dateisystemen verwiesen.
-a | alle Dateisysteme werden automatisch wie in /etc/fstab beschrieben zusammengefügt |
-f | (fake) führt alle Schritte des Befehls mit Ausnahme des eigentlichen Systemaufrufs aus; diese Option ist sinnvoll im Zusammenhang mit der Option -v |
-n | unterdrückt den Eintrag des Dateisystems in die Datei /etc/mtab (nur usermount) |
-o Option | bestimmt mit einer durch Komma getrennten Liste von Optionen verschiedene Eigenschaften des Dateisystems; eine Liste aller erlaubten Optionen finden Sie hier |
-r | (read-only) veranlaßt das mount-Kommando, das Dateisystem Read-Only aufzusetzen; in so einem Dateisystem kann nicht geschrieben werden, auch wenn der Datenträger selbst nicht schreibgeschützt ist |
-t Typ | spezifiziert den Typ des Dateisystems, das aufgesetzt werden soll; zusammen mit der -a Option können auch bestimmte Dateisystemtypen ausgeschlossen werden, indem anstelle des Typs die Angabe noTyp (z.B. nomsdos oder nonfs) gemacht wird |
-u | (usermount) anstelle der Datei /etc/fstab wird /etc/ufstab benutzt; wenn das usermount-Kommando nicht von der Systemverwalterin aufgerufen wird, ist das die Voreinstellung |
-v | (verbose) veranlaßt das mount-Kommando, Informationen zum Programmverlauf auf den Bildschirm zu schreiben |
-w | (writable) veranlaßt das mount-Kommando, das Dateisystem mit Read-Write Erlaubnis aufzusetzen |
Eine Festplattenpartition einbinden
mount /dev/sda2 /mnt
Einbinden einer CD-ROM
mount·–t·iso9660·/dev/cd-rom·/cdrom
Ein CD-ROM-Image einbinden
mount -o loop,ro image.iso /mnt
Eine NFS-Freigabe einbinden
mount -t nfs linsrv01:/var/daten /media/daten
Eine SMB-Freigabe einbinden (Windows oder SAMBA)
smbmount //Servername/Freigabename Mounverzeichnis [ -o Optionen]
oder
mount -t cifs -o username=ich,password=geheim //PC2/Transfer /mnt/PC2
Einbindung lösen (umount)
umount·mountpoint
setzt das aufgesetzte von dem Verzeichnis ab. Datenträger und Netzwerk-Mounts sollten erst auf diese Weise abgesetzt werden, bevor sie aus dem System entfernt werden genommen werden kann.
umount führt automatisch einen sync Befehl zur Sicherung aller im Cache gehaltenen Daten aus. Weil das eine Weile dauern kann, ist es wichtig, mit dem entfernen des Geräts so lange zu warten, bis der Schreibvorgang beendet ist.
umount kann nur inaktive Dateisysteme absetzen. Das bedeutet, dass kein anderes Dateisystem auf dem abzusetzenden System aufgesetzt sein darf, und dass kein Prozess ein Verzeichnis des abzusetzenden Systems als Arbeitsverzeichnis benutzen darf. Insbesondere darf sich kein Benutzer in dem abzusetzenden Dateisystem aufhalten. Andernfalls wird eine Meldung der Form ...device busy ausgegeben.
Optionen
-a | setzt alle in /etc/fstab aufgeführten Devices ab (auch das root-File system) |
-t typ | setzt nur Dateisysteme vom Typ ab. Beschreibung des Parameters Typ ist beim Kommando mount zu finden
|
Cache zurückschreiben (sync)
sync schreibt die gepufferten Blöcke auf die Platte
sync
Linux unterhält zur Optimierung der Festplatten und Diskettenzugriffe ein Blockdepot (Cache), in dem einige Datenblöcke des Massenspeichers im Arbeitsspeicher bereitgehalten werden.
Veränderungen an diesen Daten werden zuerst nur im Arbeitsspeicher vorgenommen. Mit dem Systemprogramm sync können die veränderten Daten sofort auf den Massenspeicher gesichert werden.
Normalerweise werden die veränderten Datenblöcke des Cache in regelmäßigen Abständen automatisch vom update-Dämon auf die Festplatte zurückgeschrieben.
Gelegentlich, zum Beispiel vor dem Ausschalten des Rechners, ist es sinnvoll, eine manuelle synchronisation des Dateisystems vorzunehmen. Wird der Rechner z. B. infolge eines Defektes ohne Datensynchronisation abgeschaltet, kommt es meist zu Datenverlusten und Fehlern im DateisystemWeitere Themen
Zugriff auf Wechseldatenträger
Spezielle Optionen für FAT
Dateisystemtreiber
Unterstützung prüfen
Treiber laden
Zugriff auf Images
Zugriff auf verschlüsselte Partitionen
Userland-Dateisysteme
KIO
Fate
Zugriff auf Netzwerkfreigaben
smb
nfs
smbfs
Arbeiten im Dateisystem
Als Benutzer werden Sie alle Daten als Dateien auf einem Datenträger (meinst einer Festplatte) speichern. (Texte, Einstellungen, Programme usw.)
Um auf diese Daten zugreifen zu können werden Sie mit einem Namen und weiteren Eigenschaften in einem Ablagesystem geordnet.
Ein Dateisystem ist ein Ordnungsschema für Dateien. Dateien werden in Verzeichnissen zusammengefasst. Verzeichnisse sind also Behälter für Dateien.
Ein Verzeichnis kann sowohl Dateien, als auch weitere Verzeichnisse enthalten. Verzeichnisse werden so hierarchisch unter dem Wurzelverzeichnis (root-directory) angeordnet.
Das Root-Verzeichnis wird durch den Slash (/) repräsentiert und hat keinen besonderen Namen.
Unterschiede zur DOS- / Windows- Welt
Der Slash (/) wird auch als Trennzeichen bei der Angabe von Dateipfaden benutzt.
Beispiel
Eine Datei die sich in Ihrem Home-Verzeichnis befindet, kann folgende Ortsangabe haben:
/home/user/text
Keine Laufwerksbuchstaben
Disketten Möchten Sie auf einen Datenträger (z.B. eine - oder CD-ROM-Laufwerk) zugreifen, tun Sie dies mit den Namen eines Verzeichnisses, über das sie diesen Datenträger in den Verzeichnisbaum integriert haben
Beispiel
Sie möchten mit dem Befehl cat eine Datei anzeigen, die sich auf einer cdrom befindet
cat·/cdrom/text
Arbeitsverzeichnis (pwd)
Um nun festzustellen wo z.B. Ihr Heimatverzeichnis innerhalb des Dateisystembaums befindet, können Sie das Kommando pwd (print working directory) benutzen.
dirkw@lincln02:~> pwd
/home/DSW/dirkw
pwd ist in vielen Shells ein integriertes Kommando (z. B. in der bash). Wenn in der Distribution kein binäres pwd-Kommando enthalten ist, kann als Notbehelf beispielsweise mit der tcsh, bei der kein pwd-Kommando integriert ist, das folgende Shellscript benutzt werden:
#!/bin/bash
pwd
Working directory
Das Verzeichnis, in das sie zuletzt gewechselt haben, in dem „sie sich gerade befinden“ wird als „aktuelles Verzeichnis“ (working directory) bezeichnet.
Verzeichnisinhalt (ls)
ls (list) zeigt den Inhalt eines Verzeichnisses
ls
Das Standardausgabeformat von ls hängt vom Typ der Ausgabedatei ab. Auf einem Terminal ist die mehrspaltige Ausgabe das Standardformat. In allen anderen Fällen wird die Ausgabe einspaltig ausgeführt.
Das Verhalten des ls-Kommandos läßt sich nicht mehr durch Umbenennen in ll dir vdir etc. verändern. Stattdessen sind die Kommandos dir und vdir als separate Binärdateien mit entsprechenden Standardformaten verfügbar.
Optionen
-a | zeigt alle Dateien im Verzeichnis, auch die deren Name mit `.' beginnt | |
-b | zeigt nichtdruckbare Zeichen in Dateinamen als ,,Backslash Sequenz`` mit alphabetischen oder oktalen Werten, wie sie in C üblich sind | |
-c | sortiert die Dateien nach der Zeit der letzten Statusveränderung | |
-d | zeigt Unterverzeichnisse wie normale Dateien anstelle ihres Inhaltes | |
-i | zeigt die Nummer der Inode zu jeder Datei | |
-k | die Dateigröße wird in Kilobytes angegeben, auch wenn POSIXLY_CORRECT gesetzt ist | |
-l | außer dem Namen werden der Typ, die Rechte, die Anzahl der Hardlinks, der Besitzer, die Gruppe, die Größe und die Zeitmarke angezeigt | |
-m | gibt die Dateinamen in einer Reihe, getrennt durch Kommas aus | |
-n | gibt die Benutzer und Gruppen mit ihren ID's anstelle der Namen aus | |
-q | gibt Fragezeichen anstelle von nicht druckbaren Zeichen in Dateinamen | |
-r | zeigt das Verzeichnis in umgekehrter Reihenfolge | |
-s | zeigt die Größe der Dateien in Kilobytes; wenn POSIXLY_CORRECT gesetzt ist, wird die Größe in Blöcken zu 512 Bytes angezeigt | |
-t | sortiert nach Zeit anstelle des Namens | |
-u | sortiert nach letzter Zugriffszeit anstelle der Änderungszeit (zusammen mit Option -t) | |
-x | sortiert in horizontaler Richtung | |
-A | zeigt alle Dateien außer `.' und `..' | |
-B | ignoriert Backups (mit Endung `~') | |
-C | listet in vertikal sortierten Spalten | |
-F | hängt verschiedene Symbole an die Dateinamen:
* steht hinter ausführbaren Dateien / steht hinter Verzeichnissen @ markiert symbolische Links |
markiert FiFo's
= markiert sockets alles andere sind reguläre Dateien |
-L | zeigt den Inhalt der symbolisch gelinkten Verzeichnisse anstelle des Linkfiles | |
-N | gibt Dateinamen ohne Quotes aus | |
-Q | gibt Dateinamen in Quotes aus | |
-R | zeigt rekursiv den Inhalt aller Unterverzeichnisse | |
-S | sortiert nach Größe | |
-U | unsortiert | |
-X | sortiert nach Endung | |
-1 | einspaltig | |
-w Spalten | Bildschirmbreite in Spalten | |
-T Spalten | Tabulatorbreite in Spalten | |
-I Muster | ignoriert Dateien mit Muster im Namen
|
Besondere Verzeichnisse „.“ und „..“
Auch Verzeichnisse (directories) werden als Dateien abgespeichert. Sie enthalten Informationen zu den Dateien und Verzeichnissen, die es enthält.
Verzeichnisse werden in einem speziellen Format gespeichert, das nicht nur normalen Text enthält. Versuchen sie den Inhalt eines Verzeichnisses mit dem cat - Befehl anzeigen zu lassen, erhalten Sie als Ausgabe ein Durcheinander von nicht-interpretierbaren Zeichen.
Neben Informationen über seinen Inhalt enthält ein Verzeichnis auch Informationen über sein Vater-Verzeichnis. Es ist ihm unter dem Namen „..“ bekannt. Dieser Name ist eine Verknüpfung zum übergeordneten Verzeichnis und wird bei der Eingabe von Dateipfaden auch so genutzt.
Mit dem folgenden Befehl zeigen Sie die Datei text im übergeordneten Verzeichnis an.
cat ../text
Unter dem Namen „.“ enthält jedes Verzeichnis auch eine Verknüpfung zu sich selbst. Diese wird seltener eingesetzt.
Verzeichnis wechseln (cd)
Vergleichen Sie das Dateisystem mit einer Bibliothek. Möchten Sie ein Buch einsehen, werden Sie in die Abteilung begeben, in der das Buch zu finden ist.
Ähnlich werden sie, wenn sie mit Daten aus einem Verzeichnis arbeiten möchten, in dieses Verzeichnis wechseln.
Beispiele
cd·/ | wechselt ins Stammverzeichnis |
cd·~ | wechselt in Heimatverzeichnis |
cd·.. | wechselt ins übergeordnete Verzeichnis |
cd·test | wechselt in Unterordner „test“ |
cd·/boot | wechselt in das Verzeichnis /boot |
cd·- | Wechselt in das vorherige Verzeichnis |
Absolute und relative Pfade
Bei der Arbeit an einem Unix-System werden Sie sich im Dateisystem-Baum zwischen den Verzeichnissen bewegen, wie zwischen den Ästen eines wirklichen Baumes.
Arbeitsverzeichnis
Das „aktuelle Verzeichnis“ (working directory) ist nach dem Login zunächst ihr Heimatverzeichnis. Später das Verzeichnis, in das sie zuletzt wechselten.
Von hier aus können zu jedem anderen Verzeichnis wechseln, wenn Sie den Weg (Pfad) zum Zielverzeichnis kennen.
Auch um mit Dateien oder Programmen zu arbeiten, die sich nicht im aktuellen Verzeichnis befinden, verwenden sie Wegbeschreibungen (Pfadangaben). So kann das System die gewünschten Daten finden.
Es gibt zwei Möglichkeiten den Weg zu einer Datei oder eines Verzeichnisses im Dateisystem-Baum zu beschreiben.
Absolute Pfadangaben
Beginnen Sie mit der Wegbeschreibung an der Wurzel (/) des Dateisystem-Baums, spricht man von einer absoluten Pfadangabe.
Beispiel
/home/user1/texte/text1
Diese Pfadangabe ist eindeutig, meint also genau eine bestimmte Datei ist also mit einer genauen Anschrift vergleichbar.
Relative Pfadangaben
Statt einer genauen Anschrift, können Sie auch eine Wegbeschreibung benutzen, die vom jetzigen Standort ausgeht (dritte Straße rechts, an der 2. Ampel links).
Eine „relative Pfadangabe“ beschreibt den Pfad ausgehend vom aktuellen Verzeichnis und beginnt nicht mit einem Slash (/).
Beispiel
Text/text1
Vom aktuellen Verzeichnis /home aus können sie z.B. mit dem Befehl cd eine absolute oder eine relative Pfadangabe benutzen, um in einen anderen Ordner zu wechseln.
absolut | relativ |
/home/user1 | user1 |
/home/user1/texte | user1/texte |
/tmp | ../tmp
|
Verzeichnisse erstellen (mkdir)
mkdir·[-Optionen]·Verzeichnis·...
(make directory) erzeugt ein leeres Verzeichnis sofern der Schreibschutz des übergeordneten Verzeichnisses dies zulässt.
Die Standardeinträge "." und ".." werden automatisch erzeugt.
-m·Modus | setzt die Rechte des Verzeichnisses auf Modus |
-p | anlegen aller fehlenden Verzeichnisse
|
Verzeichnisse löschen (rmdir)
rmdir·[-Optionen]·Verzeichnis ...
Löschen eines leeren Verzeichnisses
-p | löscht mehrere Verzeichnisse rekursiv, wenn alle Verzeichnisse leer
|
Speicherplatz ermitteln (df)
df (disk free) zeigt den freien Festplattenplatz.
df zeigt den freien Festplattenplatz für das Dateisystem, in dem das Verzeichnis Pfad angesiedelt ist. Wenn kein Verzeichnis angegeben ist, wird der freie Platz für alle aufgesetzten Dateisysteme angezeigt. Die Angabe erfolgt in Kilobyte, wenn nicht die Umgebungsvariable POSIXLY_CORRECT gesetzt ist. In diesem Fall wird der freie Platz in 512-Byte Sektoren angezeigt.
Wird als Pfad der absolute Name der Gerätedatei eines aufgesetzten Dateisystems angegeben, so wird der freie Platz auf diesem Gerät (Partition einer Festplatte) angegeben und nicht der des Dateisystem, in dem sich die Gerätedatei befindet. Der freie Platz auf einem abgesetzten Dateisystem ist auf diese Weise nicht zu ermitteln.
df [-aikPv] [-t Fstyp] [-all] [-inodes] [-type fstype] [-kilobytes] [-portability] [Pfad ...]
Optionen
-a | (all) zeigt alle Dateisysteme an, einschließlich der mit 0 Bytes Kapazität und der vom Typ ignore oder auto |
-i | (inodes) zeigt die Auslastung der Inodes anstelle der Blockauslastung |
-k | (kilobytes) zeigt den freien Platz in Kilobyteblöcken, auch wenn die Umgebungsvariable POSIXLY_CORRECT gesetzt ist |
-P | (portability) erzwingt die Ausgabe in einer Zeile pro Dateisystem |
-t Fstyp | (type) schränkt die Ausgabe auf die Dateisysteme vom Typ Fstyp ein
|
Speicherplatzverteilung (du)
du (disk usage) zeigt die Verteilung des belegten Plattenplatzes auf die Verzeichnisse. du zeigt den belegten Plattenplatz für das Verzeichnis und für alle Unterverzeichnisse (in Kilobyte).
Wenn die Umgebungsvariable POSIXLY_CORRECT gesetzt ist, wird die Menge in 512 Byte Blöcken angegeben.
du [-abcklsxDLS] [-all] [-total] [-count-links] [-summarize] [-bytes] [-kilobytes] [-one-file-system] [-separate-dirs] [-dereference] [-dereference-args] [Verzeichnis ...]
Optionen
-a | 0,00cm(all) zeigt auch den Platzbedarf aller Dateien |
-b | (bytes) zeigt den Platzbedarf in Bytes |
-c | zeigt den (summierten) Platzbedarf der in der Kommandozeile übergebenen Dateien |
-k | (kilobytes) gibt den Platzbedarf in Kilobytes, auch wenn die Umgebungsvariable POSIXLY_CORRECT gesetzt ist |
-l | zählt die Größe der (harten) Links mit, auch wenn sie dadurch doppelt vorkommen |
-s | gibt nur die Summe für jedes Verzeichnis in der Kommandozeile |
-x | ignoriert Verzeichnisse, die in anderen Dateisystemen liegen |
-D | folgt dem Verweis auf ein anderes Verzeichnis bei einem symbolischen Link, wenn dieser als Kommandozeilenargument übergeben wird. Andere symbolische Links werden nicht dereferenziert. |
-L | alle symbolischen Links werden dereferenziert, das heißt es wird der Platzbedarf des referenzierten Verzeichnisses anstelle des Linkfiles gezeigt |
-S | zeigt den Platzbedarf jedes Verzeichnisses einzeln, ohne die Unterverzeichnisse
|
Verzeichnisse Synchronisieren (rsync)
Dateisystem bereinigen
fslint
Utility to Fix Problems with Filesystems' Data
FSlint is a toolkit to clean filesystem lint. It includes a GTK+ GUI as well as a command line interface and can be used to reclaim disk space. It has an interface for uninstalling packages, and it can find things like:* Duplicate files
- Problematic filenames
- Temporary files
- Bad symlinks
- Empty directories
- Nonstripped binaries
bleachbit
Remove unnecessary files, free space, and maintain privacy
BleachBit deletes unnecessary files to free valuable disk space and maintain privacy. Rid your system of old junk including broken menu entries, cache, cookies, localizations, and temporary files.
Designed for Linux systems, it wipes clean Bash, Beagle, Epiphany, Firefox, Flash, GNOME, Java, KDE, OpenOffice.org, Opera, RealPlayer, VIM, XChat, and more.