Ich habe 2 Fragen.
- Während der Linux-Installation geben wir Speicherplatz für 2 Einhängepunkte an – root und swap. Gibt es andere Einhängepunkte, die ohne die Benutzerbemerkung erstellt wurden?
- Ist diese Aussage richtig:„Mounting kommt nur dann ins Spiel, wenn es um verschiedene Partitionen geht. d.h. Sie können beispielsweise /proc nicht mounten, es sei denn, es handelt sich um eine andere Partition“?
Akzeptierte Antwort:
Hinter Ihren Fragen verbergen sich Missverständnisse.
- Swap ist nicht gemountet.
- Das Mounten ist nicht auf Partitionen beschränkt.
Partitionen
Eine Partition ist ein Stück¹ Speicherplatz, das einem bestimmten Zweck gewidmet ist. Hier sind einige allgemeine Zwecke für Partitionen.
- Ein Dateisystem, d. h. Dateien, die als Verzeichnisbaum organisiert und in einem Format wie ext2, ext3, FFS, FAT, NTFS, … gespeichert sind
- Auslagerungsspeicher, d. h. Festplattenspeicher, der zum Paging (und zum Speichern von Ruhezustandsbildern) verwendet wird.
- Direkter Anwendungszugriff. Einige Datenbanken speichern ihre Daten direkt auf einer Partition statt auf einem Dateisystem, um ein wenig Leistung zu gewinnen. (Ein Dateisystem ist sowieso eine Art Datenbank.)
- Ein Container für andere Partitionen. Zum Beispiel eine erweiterte PC-Partition oder ein Festplatten-Slice, der BSD-Partitionen enthält, oder ein physisches LVM-Volume (das eventuell 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:
- Plattengestützte Dateisysteme wie ext2, ext3, FFS, FAT, NTFS, …
- Die Sicherung muss sich nicht direkt auf einer Festplattenpartition befinden, wie oben gezeigt. Dies könnte beispielsweise ein logischer LVM-Datenträger oder ein Loop-Mount sein.
- Speichergestützte Dateisysteme wie tmpfs von Solaris und Linux.
- Dateisysteme, die Informationen aus dem Kernel präsentieren, wie
proc
undsysfs
unter Linux. - Netzwerkdateisysteme wie NFS, Samba, …
- Anwendungsgestützte Dateisysteme, von denen FUSE eine große Sammlung hat. Anwendungsgestützte Dateisysteme können so gut wie alles tun:einen FTP-Server als Dateisystem erscheinen lassen, eine alternative Ansicht eines Dateisystems bieten, in der Dateinamen nicht zwischen Groß- und Kleinschreibung unterschieden oder in eine andere Codierung konvertiert werden, Archivinhalte anzeigen, als wären sie Verzeichnisse, …
Montage
Unix stellt Dateien in einer einzigen Hierarchie dar, die normalerweise als „das Dateisystem“ bezeichnet wird (aber in dieser Antwort werde ich das Wort „Dateisystem“ nicht in diesem Sinne verwenden, um Verwirrung zu vermeiden). Einzelne Dateisysteme müssen auf diese Hierarchie aufgepfropft 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, mit einem vorhandenen Verzeichnis in der Dateihierarchie verknüpft. Ein Verzeichnis mit einer solchen Zuordnung wird als Einhängepunkt bezeichnet.
- Zum Beispiel wird das Root-Dateisystem beim Booten (bevor der Kernel irgendeinen Prozess startet²) in
/
eingehängt Verzeichnis. - Das proc-Dateisystem, über das einige Unix-Varianten wie Solaris und Linux Informationen über Prozesse offenlegen, ist in
/proc
eingehängt , sodass/proc/42/environ
bezeichnet die Datei/42/environ
auf dem proc-Dateisystem, das (zumindest unter Linux) eine schreibgeschützte Ansicht der Umgebung von Prozess Nummer 42 enthält. - Wenn Sie ein separates Dateisystem haben, z. für
/home
, dann/home/john/myfile.txt
bezeichnet die Datei, deren Pfad/john/myfile.txt
ist aus dem Stamm des Home-Dateisystems.
Unter Linux ist es dank Bind-Mounts möglich, dass auf dasselbe Dateisystem über mehr als einen Pfad zugegriffen werden kann.
Ein typisches Linux-Dateisystem hat viele gemountete Dateisysteme. (Dies ist ein Beispiel; unterschiedliche Distributionen, Versionen und Setups führen dazu, dass unterschiedliche Dateisysteme gemountet werden.)
/
:das Root-Dateisystem, das gemountet wird, bevor der Kernel den ersten Prozess lädt. Der Bootloader teilt dem Kernel mit, was als Root-Dateisystem verwendet werden soll (normalerweise eine Festplattenpartition, könnte aber auch etwas anderes sein, z. B. ein NFS-Export)./proc
:das proc-Dateisystem mit Prozess- und Kernel-Informationen./sys
:das sysfs-Dateisystem mit Informationen über Hardwaregeräte./dev
:ein In-Memory-Dateisystem, in dem Gerätedateien basierend auf verfügbarer Hardware automatisch von udev erstellt werden./dev/pts
:ein spezielles Dateisystem, das Gerätedateien zum Ausführen von Terminalemulatoren enthält./dev/shm
:ein In-Memory-Dateisystem, das von der Standardbibliothek des Systems für interne Zwecke verwendet wird.- Abhängig davon, welche Systemkomponenten Sie ausführen, sehen Sie möglicherweise andere Dateisysteme für spezielle Zwecke wie
binfmt_misc
(wird vom Kernel-Subsystem für ausführbare Fremddateien verwendet),fusectl
(wird von FUSE verwendet),nfsd
(wird vom Kernel-NFS-Server verwendet), … - Jedes Dateisystem, das ausdrücklich in
/etc/fstab
erwähnt wird (und nicht alsnoauto
gekennzeichnet ) wird als Teil des Bootvorgangs gemountet. - Jedes Dateisystem, das nach dem Einstecken eines Wechseldatenträgers wie einem USB-Stick automatisch von HAL (oder einer gleichwertigen Funktion) gemountet wird.
- Jedes Dateisystem, das explizit mit dem
mount
gemountet wurde Befehl.
¹ Hier informell gesprochen.
² Initrd und dergleichen würden den Rahmen dieser Antwort sprengen.
³ Dies ist anders als bei Windows, das eine separate Hierarchie für jedes Dateisystem hat, z. c:
oder \hostnamesharename
.