Welche Einhängepunkte gibt es auf einem typischen Linux-System?

32

Ich habe 2 Fragen.

  1. Während der Linux-Installation geben wir den Speicherplatz für 2 Mount-Punkte an - root und swap. Werden andere Einhängepunkte erstellt, ohne dass die Benutzer dies bemerken?
  2. Ist diese Aussage richtig: "Das Mounten kommt nur dann ins Bild, wenn es sich um verschiedene Partitionen handelt. Dh Sie können / proc nur mounten, wenn es sich um eine andere Partition handelt"?
John
quelle
1
+1 für Fragentitel! Wenn alle Neulinge so unschuldig gefragt ...
Caleb
Haha, genau meine Gedanken auch! +1.
Boehj
2
@ John: Es wird nicht empfohlen, zwei Fragen in einer zu stellen. Da es jetzt Antworten gibt, die beide Fragen abdecken, lassen wir es wohl zu, aber bitte stellen Sie das nächste Mal separate Fragen. Ihre Schwierigkeit, einen guten Titel zu finden (nein, Ihr Titel war keine gute Zusammenfassung Ihrer Frage), war darauf zurückzuführen, dass Sie versucht haben, mehrere Fragen zu einer zusammenzufassen.
Gilles 'SO- hör auf böse zu sein'

Antworten:

47

Es gibt Missverständnisse hinter Ihren Fragen.

  1. Swap ist nicht montiert.
  2. Das Mounten ist nicht auf Partitionen beschränkt.

Partitionen

Eine Partition ist ein Teil¹ des Speicherplatzes, der einem bestimmten Zweck gewidmet ist. Hier sind einige übliche Zwecke für Partitionen.

  • Ein Dateisystem , dh Dateien, die als Verzeichnisbaum organisiert und in einem Format wie ext2, ext3, FFS, FAT, NTFS usw. gespeichert sind.
  • Swap Space ( Auslagerungsspeicher) , dh Speicherplatz, der für das Auslagern (und Speichern von Ruhezustandsbildern ) verwendet wird.
  • Direkter Anwendungszugriff. Einige Datenbanken speichern ihre Daten direkt auf einer Partition und nicht auf einem Dateisystem, um ein wenig Leistung zu erzielen. (Ein Dateisystem ist sowieso eine Art Datenbank.)
  • Ein Container für andere Partitionen. Zum Beispiel eine PC-erweiterte Partition oder ein Festplatten- Slice mit BSD-Partitionen oder ein physisches LVM- Volume (das möglicherweise logische Volumes enthält, die selbst als Partitionen betrachtet werden können).

Dateisysteme

Dateisysteme präsentieren Informationen in einer hierarchischen Struktur. Hier sind einige gängige Arten von Dateisystemen:

  • Festplattengestützte Dateisysteme wie ext2, ext3, FFS, FAT, NTFS,…
    • Das Backup muss sich nicht direkt auf einer Festplattenpartition befinden, wie oben dargestellt. Dies kann beispielsweise ein logisches LVM- Volume oder ein Loop-Mount sein .
  • Speichergestützte Dateisysteme wie Solaris und Linux tmpfs .
  • Dateisysteme, die Informationen aus dem Kernel bereitstellen, z. B. procund sysfsunter Linux.
  • Netzwerk-Dateisysteme wie NFS , Samba , ...
  • Anwendungsgestützte Dateisysteme, von denen FUSE über eine große Sammlung verfügt . Anwendungsgestützte Dateisysteme können fast alles: einen FTP-Server als Dateisystem anzeigen, eine alternative Ansicht eines Dateisystems anzeigen, in dem die Groß- und Kleinschreibung nicht beachtet oder in eine andere Codierung konvertiert wird, Archivinhalte anzeigen, als wären sie Verzeichnisse, ...

Montage

Unix präsentiert Dateien in einer einzigen Hierarchie, die normalerweise als „Dateisystem“ bezeichnet wird (in dieser Antwort verwende ich das Wort „Dateisystem“ jedoch nicht, um Verwirrung zu vermeiden). Einzelne Dateisysteme müssen auf diese Hierarchie gepfropft werden, um auf sie zugreifen zu können.³

Sie machen ein Dateisystem zugänglich, indem Sie es mounten. Beim Mounten wird das Stammverzeichnis des Dateisystems, das Sie mounten, einem vorhandenen Verzeichnis in der Dateihierarchie zugeordnet. Ein Verzeichnis mit einer solchen Zuordnung wird als Bereitstellungspunkt bezeichnet.

  • Beispielsweise wird das Root-Dateisystem beim Booten (bevor der Kernel einen Prozess startet²) in das /Verzeichnis eingebunden .
  • Das Proc-Dateisystem, über das einige Unix-Varianten wie Solaris und Linux Informationen zu Prozessen bereitstellen, ist bereitgestellt /proc, sodass /proc/42/environdie Datei /42/environauf dem Proc-Dateisystem gekennzeichnet ist, das (zumindest unter Linux) eine schreibgeschützte Ansicht der Prozessumgebung enthält Nummer 42.
  • Wenn Sie ein separates Dateisystem haben, z. B. für /home, dann /home/john/myfile.txtbezeichnet dies die Datei, deren Pfad /john/myfile.txtvom Stammverzeichnis des Home-Dateisystems stammt.

Unter Linux ist es möglich, dass dasselbe Dateisystem dank Bind-Mounts über mehr als einen Pfad erreichbar ist .

Ein typisches Linux-Dateisystem hat viele gemountete Dateisysteme. (Dies ist ein Beispiel. Unterschiedliche Distributionen, Versionen und Setups führen dazu, dass unterschiedliche Dateisysteme bereitgestellt werden.)

  • /: Das Root-Dateisystem, das bereitgestellt wird, bevor der Kernel den ersten Prozess lädt. Der Bootloader teilt dem Kernel mit, was als Root-Dateisystem verwendet werden soll (normalerweise handelt es sich um eine Festplattenpartition, es kann sich aber auch um etwas anderes handeln, wie einen NFS-Export).
  • /proc: Der proc filessytem, mit Prozess- und Kernel - Informationen.
  • /sys: das sysfs- Dateisystem mit Informationen zu Hardwaregeräten.
  • /dev: Ein In-Memory-Dateisystem, in dem Gerätedateien automatisch von udev basierend auf der verfügbaren Hardware erstellt werden.
  • /dev/pts: Ein spezielles Dateisystem, das Gerätedateien zum Ausführen von Terminalemulatoren enthält .
  • /dev/shm: Ein speicherinternes Dateisystem, das von der Standardbibliothek des Systems für interne Zwecke verwendet wird.
  • Je nachdem , welche Systemkomponenten, die ausgeführt werden , können Sie andere für besondere Zwecke solche Dateisysteme sehen , wie binfmt_misc(durch das verwendete fremde ausführbare Dateiformat Kernel - Subsystem ), fusectl(verwendet von FUSE ), nfsd(verwendet vom Kernel NFS - Server), ...
  • Jedes Dateisystem, das explizit in /etc/fstab(und nicht markiert noauto) erwähnt wird, wird als Teil des Startvorgangs bereitgestellt.
  • Jedes Dateisystem, das automatisch von HAL (oder einer gleichwertigen Funktion) gemountet wird, nachdem ein Wechselmedium wie ein USB-Stick eingelegt wurde.
  • Beliebiges Dateisystem, das explizit mit dem mountBefehl bereitgestellt wird .

¹ Informell gesprochen hier.
² Initrd und so weiter würden den Rahmen dieser Antwort sprengen.
³ Dies unterscheidet sich von Windows, das für jedes Dateisystem eine eigene Hierarchie hat, z . B. c:oder \\hostname\sharename.

Gilles 'SO - hör auf böse zu sein'
quelle
5
+10 Gilles woher hast du die Zeit? Mein einziger Kommentar ist, dass ich den Leuten ein wenig Nachdruck auf das Swap-Problem geben muss, weil es verdammt verwirrend ist, wenn meine Swap-Partition aufgeführt ist, /etc/fstabwenn sie nicht gemountet werden soll.
Caleb
definitiv eine dumme frage ... kann mich aber nicht aufhalten. Sie sagten "Mounten ordnet dem Stammverzeichnis des Dateisystems ein Verzeichnis zu." Wo also befindet sich das Verzeichnis "/"?
John
2
@John: Keine dumme Frage, die Wörter "Dateisystem" und "Root" haben hier zwei verschiedene Bedeutungen: Es gibt einzelne Dateisysteme (jedes mit seinem Root) und es gibt die gesamte Verzeichnishierarchie (mit seinem Root, dem /Directory). . Ich habe diesen Teil meiner Antwort umformuliert, hoffentlich sollte er jetzt klarer sein.
Gilles 'SO- hör auf böse zu sein'
Diese Antwort ist unglaublich hilfreich - sie ist enzyklopädisch. Ich wünschte auch, ich könnte hier +10 machen. Geniale Antwort.
boehj
13
  1. Jede Linux-Distribution hat ihre eigene Standard-Partitionsanordnung. Einige von ihnen verwenden Dutzende von Partitionen, andere nur eine. 3 und 4 sind übliche Arrangements (/ boot, /, swap und / home). Einige ältere Layouts hatten oft / var auf einer separaten Partition und extreme Systeme hnd alles in / var / * und / opt / * auf separaten Partitionen! Die beste Verallgemeinerung, die ich zur Beantwortung Ihrer Frage machen kann, ist, dass in der Unix-Welt nichts getan wird, ohne dass die Benutzer es bemerken oder ändern können !
  2. Sie können Objekte bereitstellen, die keine Partitionen sind. Beispielsweise ist / proc normalerweise keine Partition, sondern ein vom Kernel bereitgestelltes Pseudodateisystem, mit dem Sie Daten über ausgeführte Prozesse lesen und schreiben können, als wären sie Dateien. Sie können auch Dateien (wie ISOs) wie Laufwerke mit einem Loopback-Gerät einbinden, Mount-Ordner an andere Stellen binden und verschiedene andere Ninja-Tricks ausführen.
Caleb
quelle
1
Alle Partitionen, die beim Booten automatisch gemountet werden, befinden sich in /etc/fstab. Wenn Sie dort eine Partition hinzufügen, ist diese beim nächsten Start vorhanden.
LawrenceC