Dateisysteme vs Partitionen vs Verzeichnisse

29

Ich bin neu in Linux, bitte entschuldigen Sie die mögliche Verwirrung, die Sie in dieser Frage haben könnten.

Von dem, was ich verstehe, Dateisystem gibt an, wie eine Partition speichert / Datei verwaltet, mit Standards wie ext2, ext3, ReiserFS, XFS, usw. Gelegentlich sehe ich Leute scheinen zu jedem „zu beziehen directory“ , wie

    /boot filesystem
    /usr/bin filesystem
    /root filesystem
    /bin filesystem

Warum bezeichnen wir diese als filesystems?

Wenn jeder von ihnen eine Partition ist, verwirrt mich das, soweit ich weiß /usrund /usr/bindazu neige, in derselben Partition zu sein, aber ich habe gesehen, dass sich die Leute auf beide /usr filesystemund beziehen /usr/bin filesystem.

Wenn filesystemhier Windows entspricht directory, ist es mir nicht klar, da das Dateisystem anscheinend mehr als nur Verzeichnisse ist. Soweit ich weiß, hat Linux auch kein directoryKonzept. alle sind dateien.

Kenny
quelle
Ich habe noch nie eine Instanz von "the / root filesystem" gesehen. Welches Dateisystem auch immer unter "/" gemountet ist, es ist "das Root-Dateisystem". Einige andere mögliche Einhängepunkte in einer modernen Linux-Distribution wären "/ boot", "/ home" und "/ mnt / xx" oder "/ media / xx" für verschiedene Werte von "xx". Kernel 2.x + (?) Distributionen haben "/ proc" und "/ sys", Systemd hat Mountpunkte "/ var / run / nnnn" für verschiedene numerische UIDs nnnn. Ältere Unix-Installationen mounten möglicherweise "/ usr" über NFS, dies ist jedoch auf einer persönlichen Linux-Distribution unwahrscheinlich. "/ bin" und "/ usr / bin" sind normalerweise keine separaten Mountpunkte.
David
Es gibt eine / root , nicht wahr? Meinen Sie damit, dass es niemals in einem separaten Dateisystem bleibt?
Kenny
Recht. "/ root" ist das Standard-Ausgangsverzeichnis für den Benutzer "root", es ist jedoch normalerweise nur ein anderes Verzeichnis im Root-Dateisystem.
David
Dieses Thema wurde ausführlich auf Ask Ubuntu besprochen , was, IMNSHO, albern ist, da die Konzepte auf Ubuntu, AFAIK, nicht anders sind als auf einer anderen Form von Unix oder Linux. Zum Beispiel, Was ist "mount"? wurde erst vor ein paar Tagen gefragt.
Scott
Ich bin ziemlich beeindruckt von den Fragen. Von wenig Wissen Sie schon sehr viel in dieser Zeit begreifen können , und dass Sie den Abschluss verpaßt haben , dass „/ root - Dateisystem“ auf das Dateisystem beziehen ist die Partition, auf montiert ist /root, denke ich , dass dismissable ist die Komplexität der Berücksichtigung Lage.
Erikbwork

Antworten:

13

Wie ich in https://superuser.com/a/293160/38062 schrieb :

Das Problem ist hier das Wort "Dateisystem". In den POSIX / Unix / Linux-Welten werden verschiedene Bedeutungen verwendet.

  1. Das "Dateisystem" ist manchmal das gesamte Dateisystem, /das auf der Anwendungssoftware des Betriebssystemkerns verwurzelt ist und von dieser für diese bereitgestellt wird. In diesem Sinne spricht man beispielsweise von POSIX-Betriebssystemen mit einem "Single Filesystem Tree ".
  2. Ein "Dateisystem" ist manchmal ein (oder mehrere) Slice (s) eines (oder mehrerer) DASD (s) - eine oder mehrere Sammlungen zusammenhängender Plattensektoren, die als ein einzelnes Volume mit einem bestimmten Format formatiert sind - wie durch eine bestimmte Plattenpartitionierung abgegrenzt planen. In diesem Sinne spricht man beispielsweise von "Formatieren meines /usrDateisystems ". " /usr" hier ist der (erwartete) Einhängepunkt des Datenträgers oder (in einigen Partitionsschemata) dessen identifizierende Bezeichnung.
  3. Ein "Dateisystem" ist manchmal ein abstrakter zusammenfügbarer Baum von Dateien und Verzeichnissen, der von einem Dateisystemtreiber (dh der VFS-Schicht) für den Rest des Systems bereitgestellt wird. Mit dieser Bedeutung spricht man beispielsweise von "Mounten des proc-Dateisystems auf /proc" oder "Verwenden eines tmpfs-Dateisystems für /tmp".

Sie sehen die Bedeutung 1, wenn Sie " /usr/binDateisystem" sehen. Es ist ein Dateisystembaum, der im Verzeichnis verwurzelt ist /usr/bin. Ja, Linux sehr viel tut das Konzept der Verzeichnisse haben.

Die Bedeutungen 2 und 3 verstehen Sie falsch. Die Leute sprechen nicht von einem Dataset /usr/binauf der Disc, der durch das Aufteilen / Partitionieren von Discs abgegrenzt wird. Sie sprechen auch nicht von /usr/bineinem bestimmten Dateisystemtreibertyp oder einem bestimmten Datenträgerformat.

Weitere Lektüre

  • Ramesh Bangia (2010). "Dateisystem". Wörterbuch der Informationstechnologie . Laxmi Publications, Ltd. ISBN 9789380298153. p. 224.
  • Dateisystem . "Basisdefinitionen". Die Open Group Base-Spezifikationen . Problem 7 IEEE 1003.1. Die offene Gruppe. 2013.
  • Binh Nguyen (16.08.2004). "Dateisystem". Das Linux-Wörterbuch . Version 0.16. p. 616.
JdeBP
quelle
7

Natürlich benutzt Linux das Konzept der Verzeichnisse. Das Konzept der Verzeichnisse ist das gleiche wie in Windows.

Das Konzept von Dateisystemen ist auch sehr ähnlich zu dem, was in Windows verwendet wird. Windows verwendet normalerweise NTFS oder FAT - Linux verwendet normalerweise ext2, ext3, ext4 und so weiter, das ist der Unterschied.

Der Unterschied besteht darin, dass unter Linux die Dateien / Verzeichnisse aller verfügbaren Partitionen in einem einzigen Baum organisiert sind. Unter Windows verweisen Sie mit einem Buchstaben auf verschiedene Partitionen, z. B. "a:", "c:". Unter Linux beginnt der vollständige Pfad zu einer verfügbaren Datei mit "/" - dem Stammverzeichnis. Auf Ihrer Festplatte befindet sich beispielsweise eine separate Partition mit Dateien, die zum Booten des Systems erforderlich sind: Sie führen den Befehl 'mount' mit den entsprechenden Argumenten aus, und der Inhalt dieser Partition wird unter "/ boot /" verfügbar. Wenn also "/ boot" - und "/ home" -Pfade auf Daten in unterschiedlichen Partitionen verweisen, können diese Partitionen unterschiedliche Dateisysteme haben. Hat wahrscheinlich dein Missverständnis verursacht.

Verzeichnisse, die sich physisch auf derselben Partition befinden, hätten immer "dasselbe Dateisystem". Wenn jemand über das Dateisystem eines Verzeichnisses spricht, handelt es sich tatsächlich um das Dateisystem der Partition, auf der sich dieses Verzeichnis befindet.

(Kleinere und wahrscheinlich nicht wichtige Korrektur: Manchmal ist das Dateisystem virtuell und es gibt keine entsprechende Partition. Zum Beispiel enthält "/ proc" etwas, das Dateien sehr ähnlich sieht, aber diese "Dateien" sind virtuell, sie befinden sich nicht auf jede Festplatte und enthält Informationen über laufende Prozesse. Und es gibt ein spezielles "procfs" -Dateisystem, das eine übliche dateiähnliche Schnittstelle zu diesen Daten bietet.)

lesnik
quelle
Sie haben "Dateisystem eines Verzeichnisses" erwähnt, wird es in alle seine Unterverzeichnisse kaskadiert. Ist es möglich, dass ein Verzeichnis und seine Unterverzeichnisse unterschiedliche Dateisysteme haben? Zum Beispiel / a und / a / b , mit / b ist eine andere Partition mit einem eigenen Dateisystem F2 auf einem mit Dateisystem F1 gemountet ?
Kenny
Ob Verzeichnisse auf derselben Partition tatsächlich Teil desselben Dateisystems sind, kann für einige sehr moderne Dateisysteme wie ZFS oder btrfs etwas unscharf werden. Sie können ein ZFS-Volume mit mehreren Dateisystemen haben, die es gemeinsam nutzen, mit ihren eigenen, völlig unterschiedlichen Mountpunkten.
Charles Duffy
@Kenny Ja, du hast recht. Live-Beispiel: Ich lege eine CD in das CD-Laufwerk ein. Mein Linux hängt die CD unter "/ mount / cdrom" ein. Das Verzeichnis "/ mount" (und alle darin erstellten Dateien) befindet sich auf meiner Festplatte. Der Inhalt von "/ mount / cdrom" befindet sich jedoch bereits auf CD.
Lesnik
6

Eine Festplatte ist in eine oder mehrere Partitionen unterteilt . Für Windows gibt es normalerweise nur eine, möglicherweise mit einer Wiederherstellungspartition, die sich irgendwo versteckt. Eine Partition ist ein logisch zusammenhängender Bereich der Festplatte, z. B. "Sektoren 1 bis 10.000.000".

Auf einer Partition kann ein Dateisystem aufgebaut werden. Für Windows ist dies NTFS oder FAT. Für Linux ist dies eine der extVersionen oder verschiedene andere Optionen.

Innerhalb eines Dateisystems befinden sich Dateien und Verzeichnisse. Linux hat Verzeichnisse, ich habe keine Ahnung, wie Sie darauf gekommen sind, dass dies nicht der Fall ist.

Wie präsentiert ein Betriebssystem dem Benutzer mehrere Partitionen auf mehreren Festplatten? Unter Windows wird dies mit getan Laufwerksbuchstabe : C:, D:usw. Unter Linux gibt es keine Laufwerksbuchstabe und alles mit getan Bereitstellungspunkten : in einem bestimmten Verzeichnis, umleiten Zugang zu einem anderen Dateisystem (+) Oft , wenn Sie Einsatz einer CD. oder USB-Stick erscheint irgendwo unter /mediaoder /mnt.

/usrund befinden /usr/binsich normalerweise im selben Dateisystem, müssen es aber nicht sein. Leute meinen möglicherweise "das Dateisystem, das zufällig das /usr/binVerzeichnis enthält", wenn sie diese Formulierung verwenden.

(+) Sie können dies auch mit NTFS-Knotenpunkten tun, aber die Leute tun dies selten. Bis ihnen die Laufwerksbuchstaben ausgehen.

pjc50
quelle
Korrigieren Sie mich, wenn ich falsch liege: Unter Linux kann eine physische Festplatte in mehrere Partitionen unterteilt werden, von denen jede ein eigenes Dateisystem hat. Analog zu der Art und Weise, wie eine Festplatte unter Windows mehrere Partitionen enthält, kann eine FAT und die andere NTFS sein?
Kenny
1
Ja, Sie haben Recht: aber es ist nicht analog, es ist genau derselbe zugrunde liegende Mechanismus. Dual-Boot-Maschinen verfügen möglicherweise über NTFS- und ext3-Partitionen auf derselben Festplatte, und der Festplattenmanager jedes Betriebssystems sieht die gleichen Partitionen. Es ist nur so, dass Windows die ext3-Partitionen nicht sehen kann, um die Dateien zu sehen.
pjc50
3

Es ist möglich, ein gesamtes Linux-System auf einer Partition zu belassen, wobei sich alle Unterverzeichnisse auf einem Dateisystem befinden.

Es ist auch möglich, es auf mehrere Partitionen zu verteilen, wobei sich bestimmte Verzeichnisunterbäume auf verschiedenen Dateisystemen befinden. Zum Beispiel ist es üblich , zu setzen /home, /tmp, /usr, und /varauf separate Dateisystemen. Um eine Ihrer Fragen zu beantworten, /usr/binwird es manchmal auch ein eigenes Dateisystem geben.

Dieses Schema bietet Vorteile. /varFüllt sich das System beispielsweise mit vielen E-Mails, ist der Rest des Systems nicht betroffen. Auch wenn ein Dateisystem aufgrund eines Absturzes oder Ähnlichem beschädigt ist, sind andere Dateisysteme immer noch in Ordnung und es ist einfacher, das System wiederherzustellen.

Beim Systemstart ist zunächst nur das Root-Dateisystem verfügbar. Dort gespeicherte Programme werden während des Startvorgangs ausgeführt. Eines dieser Programme mountwird mehrmals mit Daten aus der Datei /etc/fstab, der Dateisystemtabelle, ausgeführt. Ein Beispiel: Ursprünglich /homeist dies nur ein gewöhnliches Verzeichnis im Root-Dateisystem. Dann führen wir diesen Befehl als root aus:

mount /dev/sda7 /home

Dies teilt das System mit, dass das Dateisystem auf der Partition /dev/sda7 sollte werden montiert auf dem Verzeichnis /home. Nun gilt alles in diesem Dateisystem als darunter /home.

Sie können sehen, was gerade gemountet ist, indem Sie ausführen df.

Tom Zych
quelle
3

Wir bezeichnen diese manchmal als filesystems, weil diese Verzeichnisse manchmal Einhängepunkte sind. Soviel zu der einzigen Frage, die Sie gestellt haben ...

filesystem kann sich auf zwei verschiedene Dinge beziehen ... oder tatsächlich auf zwei sehr verschiedene Aspekte derselben Sache:

  1. Die logische Struktur, die zum Organisieren von Daten auf einem Speichermedium verwendet wird.
  2. Die vom Betriebssystem verwendete Methode, um Prozessen einen einheitlichen Zugriff auf Daten zu bieten.

Das Konzept von Dateien und Verzeichnissen ist eine Metapher. Zu einem Computer gibt es nur Daten und alle Medien sind nichts als Geräte, die Daten aufnehmen können. Einige Geräte erlauben das Lesen und Schreiben von Daten (zB Festplatte), andere Geräte erlauben nur das Lesen von Daten (zB CD-ROM) und es gibt sogar Geräte, die nur das Schreiben von Daten erlauben (zB Drucker). Wir verwenden die Datei- und Verzeichnismetapher, um Daten zu strukturieren, sodass wir auf kleine Datenblöcke zugreifen können und nicht auf alles gleichzeitig.

Die Dateisysteme, die wir auf Speichermedien, z. B. ext4, xfs, fat, ablegen, übernehmen den strukturierenden Teil. Wir verwenden sie, um Datenblöcke (Dateien) mit Beschriftungen zu versehen und eine konsistente strukturierte Liste aller Beschriftungen (Verzeichnisse) zu erstellen. Die strukturierte Liste ist eigentlich ein Baum. Der wichtigste Aspekt ist, dass ein Baum genau einen Anfang hat, seine Wurzel. Diese Struktur beizubehalten und sicherzustellen, dass die Daten zugänglich sind und bleiben, ist eine ziemliche Aufgabe, weshalb es nicht nur eine Variante des Dateisystems gibt.

Der andere Aspekt von Dateisystemen ist, dass es Aufgabe des Betriebssystems ist, die auf Speichergeräten gespeicherten Daten für alle Programme zugänglich zu machen. Dies wird durch zwei Dinge erreicht:

  1. Das Betriebssystem bietet genau eine (Programmier-) Schnittstelle für den Zugriff auf und die Interaktion mit Dateien und Verzeichnissen. Für Programme / Prozesse spielt es keine Rolle, ob das Dateisystem auf dem Speichergerät ext2, xfs, fat oder was auch immer ist. Programme / Prozesse greifen einheitlich auf Dateien und Verzeichnisse zu.

  2. Das Betriebssystem organisiert alle Speichermedien, dh deren Dateisysteme, in einer übergeordneten Struktur. Programme greifen über diese übergeordnete Struktur auf Dateien und Verzeichnisse zu und müssen nicht direkt mit den Speichergeräten interagieren. Auf diese Weise müssen sich die Programme nicht darum kümmern, auf welchem ​​Gerät sich die Daten tatsächlich befinden. Diese übergeordnete Struktur wird oft als "virtuelles Dateisystem" des Kernels bezeichnet.

Das Hinzufügen des Dateisystems eines Speichergeräts zum virtuellen Dateisystem wird als "Mounten" eines Dateisystems bezeichnet. Wenn Ihr Linux startet, erstellt der Kernel das virtuelle Dateisystem (VFS). Direkt nach der Erstellung ist es leer und besteht nur aus seinem Eintrittspunkt, auch bekannt als seine Wurzel, transkribiert /. Anschließend stellt der Kernel ein Dateisystem im Stammverzeichnis des VFS bereit. Dies ist entweder eine Ramdisk oder sofort ein Dateisystem auf einer Partition auf einer Festplatte. Da diese Partition im Stammverzeichnis des VFS hinzugefügt wird, wird sie häufig als Root-Dateisystem bezeichnet.

Jetzt kommt der Teil, in dem die Linien verschwimmen und wir sehen, dass Dateisysteme auf Speichergeräten und das VFS des Kernels tatsächlich zwei Aspekte derselben Betriebssystemaufgabe sind: Beim Mounten eines Root-Dateisystems enthält das VFS viele Dateien und Verzeichnisse, von denen alle existieren auf der Root-Partition. Jedes Verzeichnis kann jedoch zu einem "Einhängepunkt" werden. Ein Einhängepunkt ist der Ort, an dem das VFS den Einstiegspunkt in ein Dateisystem auf einem Speichergerät legt. Dies bedeutet, dass wir dem VFS immer dann mitteilen, wenn wir ein Dateisystem in einem Verzeichnis bereitstellen, dass wir statt auf die in diesem Verzeichnis gespeicherten Daten auf die Daten auf einem anderen Speichergerät zugreifen möchten. Bereitstellungspunkte sind normalerweise leere Verzeichnisse, damit der Zugriff auf Daten nicht durch das Bereitstellen anderer Dateisysteme unmöglich wird.

Bei der Installation Ihres Betriebssystems liegt es an Ihnen, ob Sie alle Daten in einem Dateisystem ablegen möchten, das dann zu Ihrem Root-Dateisystem wird, oder ob Sie Ihre Daten auf mehrere Dateisysteme aufteilen möchten. Letzteres setzt voraus, dass Ihr Betriebssystem alle einzelnen Dateisysteme bereitstellt, um alle Daten zugänglich zu machen. Wie Sie die Dinge aufteilen, hängt davon ab, wie Sie Ihr System gestalten. Aus diesem Grund werden die Verzeichnisse, die Sie aus Ihrer Installation kennen, manchmal als Dateisysteme bezeichnet.

Für die Computer, die wir normalerweise zu Hause haben, ist es nicht mehr erforderlich, Ihre Installation in mehrere Dateisysteme aufzuteilen. Es kann immer noch gute Gründe dafür geben, aber dies ist nicht Gegenstand dieses Beitrags.

Um den Rest dieses Beitrags kurz zu halten: Partitionen sind ein weiteres Mittel zur Strukturierung von Daten auf Speichergeräten. Mit Partitionen wird zusammenhängender Speicherplatz von einem physischen Speichergerät abgetrennt und dem Betriebssystem als einzelne Speichergeräte angeboten (auf denen Dateisysteme zum Einbinden in das VFS bereitgestellt werden können). Ein Grund dafür kann sein, dass man nur eine Festplatte hat, aber viele verschiedene Dateisysteme verwenden möchte. Die Partition, auf der sich das Root-Dateisystem befindet, wird häufig als Root-Partition bezeichnet.

Bananguin
quelle
1

Du machst ein bisschen Verwirrung. Filesystembezeichnet einen Mechanismus, durch den die Dateien auf einem Speichergerät oder einem Massenspeicher wie einer Festplatte oder einer CD-ROM und in einigen Fällen auch auf dem RAM gespeichert und organisiert werden.

Auch Windows verwendet Dateisysteme wie NTFSoder früher FAT.

Ihr Beispiel zeigt eine gängige Vorgehensweise für Linux- und Unix-Systeme, bei der ein eigenes System aus verschiedenen Dateisystemen besteht, die in Verzeichnissen mit dem Namen mount point eingebunden sind. Auf diese Weise kann bei Problemen der Schaden auf ein oder mehrere, jedoch nicht auf alle Dateisysteme begrenzt werden.

FS ist also nicht gleichbedeutend mit directory, und auch unter Linux gibt es Verzeichnisse, die eine spezielle Art von Datei darstellen

LilloX
quelle