Linux/Dateisystem: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 3: Zeile 3:


== Zugriff auf Datenträger ==
== Zugriff auf Datenträger ==
[[Image:Bild2.png|center]]
[[Linux:Dateisystem:Zugiff]]
 
=== Dateisysteme einbinden (mount) ===
<tt>'''mount'''</tt> setzt das Dateisystem zusammen
 
'''mount''' ''[-afnrwuv] [-t Typ] [-o Schalter] [Gerätedatei] [Verzeichnis]''
 
<tt>'''mount'''</tt> 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 <tt>/dev</tt> abgebildet. Die auf den Partitionen gespeicherten Dateisysteme werden durch den <tt>mount</tt> Befehl auf beliebige leere Verzeichnisse aufgesetzt.
 
<tt>mount</tt> erstellt eine Liste der aufgesetzten Dateisysteme in <tt>/etc/mtab</tt>. Der Kernel unterhält die gleiche Liste im Prozeßdateisystem in <tt>/proc/mounts</tt>. Wenn <tt>mount</tt> 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 <tt>/etc/fstab</tt> ergänzt.
 
Die Superuserin kann das Einbinden bestimmter Dateisysteme durch unprivilegierte Systembenutzer erlauben, indem für die entsprechenden Devices die Option <tt>user</tt> in der Datei <tt>/etc/fstab</tt> eingetragen wird.
 
Ältere Versionen von <tt>mount</tt> 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 <tt>mount</tt> 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 <tt>/etc/fstab</tt> 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 <tt>/etc/mtab</tt> (nur <tt>usermount</tt>)
|-
|  | '''-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 <tt>mount</tt>-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 <tt>-a</tt> Option können auch bestimmte Dateisystemtypen ausgeschlossen werden, indem anstelle des Typs die Angabe <tt>no</tt>''Typ'' (z.B. <tt>nomsdos</tt> oder <tt>nonfs</tt>) gemacht wird
|-
|  | '''-u '''
|  | (usermount) anstelle der Datei <tt>/etc/fstab</tt> wird <tt>/etc/ufstab</tt> benutzt; wenn das <tt>usermount</tt>-Kommando nicht von der Systemverwalterin aufgerufen wird, ist das die Voreinstellung
|-
|  | '''-v '''
|  | (verbose) veranlaßt das <tt>mount</tt>-Kommando, Informationen zum Programmverlauf auf den Bildschirm zu schreiben
|-
|  | '''-w '''
|  | (writable) veranlaßt das <tt>mount</tt>-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.
 
<tt>'''umount '''</tt>führt automatisch einen <tt>'''sync'''</tt> 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.
 
<tt>'''umount'''</tt> 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 <tt>'''...device busy'''</tt> ausgegeben.
 
'''Optionen'''
 
 
{|
|-
|  | <tt>'''-a'''</tt>
|  | setzt alle in <tt>'''/etc/fstab'''</tt> 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) ===
 
<tt>'''sync'''</tt> 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 <tt>sync</tt> 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 <tt>update</tt>-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  ==
== Arbeiten im Dateisystem  ==

Version vom 19. Februar 2022, 14:37 Uhr

Verzeichnisstruktur

Linux:Dateisystem:Hierarchie

Zugriff auf Datenträger

Linux:Dateisystem:Zugiff

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. Ver­zeichnisse sind also Behälter für Dateien.

Ein Verzeichnis kann sowohl Dateien, als auch weitere Verzeichnisse enthalten. Verzeichnisse werden so hierar­chisch 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 Ver­zeichnis“ (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-Verzeich­nis. 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 einge­setzt.

Verzeichnis wechseln (cd)

Datei:Bild3.png

Vergleichen Sie das Dateisystem mit einer Bibliothek. Möchten Sie ein Buch einsehen, werden Sie in die Abtei­lung begeben, in der das Buch zu finden ist.

Ähnlich werden sie, wenn sie mit Daten aus einem Verzeichnis arbeiten möchten, in dieses Verzeichnis wech­seln.


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 bewe­gen, wie zwischen den Ästen eines wirklichen Baumes.

Datei:Bild4.png

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, verwen­den 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 beschrei­ben.

Absolute Pfadangaben

Beginnen Sie mit der Wegbeschreibung an der Wurzel (/) des Dateisystem-Baums, spricht man von einer abso­luten Pfadangabe.

Beispiel

/home/user1/texte/text1

Diese Pfadangabe ist eindeutig, meint also genau eine bestimmte Datei ist also mit einer genauen Anschrift ver­gleichbar.

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 Pfad­angabe 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)

Linux:Befehl: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.