Was bedeuten die Standardverzeichnisse in der Hierarchie des Linux-Dateisystems?

41

Nachdem ich verschiedene Linux-Distributionen zum Basteln installiert habe, wundere ich mich über die Installer, die Partitionslayouts anbieten - für einen einfachen Ausweg nutze ich einfach den gesamten verfügbaren Speicherplatz.

Einige der angebotenen Partitionen haben kryptische Namen, einschließlich / var , swap , / usr und / home . Die Installateure erklären mir das nicht wirklich - welchen Zweck erfüllen sie und welchen, falls vorhanden, sollten sie verwenden?

Grant Palin
quelle

Antworten:

61

Die kurze Antwort zu Verzeichnisnamen: Geben Sie " man hier" in ein Terminal ein :)

Dies ist die Manpage für die Dateisystemhierarchie, die den allgemeinen Zweck der Verzeichnisnamen und deren Inhalt erläutert. Hier können Sie eine Webversion sehen .

Es gibt auch mehr Lektüre auf Wikipedia:

Diese Links erläutern alles darüber, welche Partitionen wie genannt werden und wie sie gespeichert wurden (oder wurden).

Die Antwort auf die Frage, ob nicht nur Verzeichnisse, sondern separate Partitionen in derselben Partition verwendet werden sollen, lautet: Wartbarkeit und Erweiterbarkeit. Wenn Sie beispielsweise eine Partition mit /und /homedarauf haben, kann Joe User seinen /home/joeOrdner füllen , und auf dem gesamten Computer ist kein Speicherplatz mehr verfügbar und es funktioniert nicht mehr (ich vereinfache hier, aber das ist das allgemeine Ergebnis). Wenn Sie haben , /und /homeauf verschiedenen Partitionen, kann Joe Benutzer seine füllen /home/joeOrdner und die /homePartition wird voll sein, aber die Maschine wird weiter betrieben werden, weil /nicht beeinträchtigt wird .

Erweitern Sie dieses Prinzip auf fast alle verschiedenen Verzeichnisse, die sich auf verschiedenen Partitionen befinden, und sehen Sie, wie nützlich dies ist, insbesondere wenn ein Computer rund um die Uhr in einer Mehrbenutzer- und einer Mehrdienstrolle ausgeführt wird.

Ben Williams
quelle
12
+1 für man hierBringe einem Mann das Fischen bei und all das.
George Marian
Ja, danke für den Hinweis auf hier (7). Ich habe immer die FHS-Webseite besucht, ohne zu wissen, dass ich Antworten hatte, die viel einfacher verfügbar waren.
Andol
Das Problem ist, dass diese zwar erklärt werden, wie sie verwendet werden sollen, einige jedoch nicht standardmäßig so verwendet werden wie im Verzeichnis / srv.
Ronaldo Nascimento
7

Bei der Installation haben Sie bei vielen Distributionen die Möglichkeit, verschiedene Verzeichnisse auf verschiedenen Partitionen abzulegen. Beispielsweise entscheiden sich viele Benutzer dafür, dass sich das Verzeichnis / home auf einer anderen Partition befindet als der Rest der Installation. Dies liegt daran, dass alles im Verzeichnis / home einem Benutzer gehört - Dokumente, Videos und alle anderen benutzerspezifischen Daten werden hier abgelegt. Wenn sich ein Benutzer für eine Neuinstallation seines Linux - Betriebssystems entscheidet, indem er das Verzeichnis / home auf eine separate Partition und die tatsächlichen Betriebssystemdateien auf eine andere Partition legt, kann er einfach die Hauptpartition neu schreiben und seine / home - Partition (und alle) verlassen intakt.

Auf diese Weise kann ein Benutzer auch mehrere Linux-Distributionen auf verschiedenen Partitionen installieren, die sich alle dieselbe / home-Partition teilen. Auf diese Weise kann ein Benutzer auf seine Dateien zugreifen, egal welche Linux-Version er verwendet.

Ein gelegentlicher Benutzer sollte sich nicht allzu sehr darum kümmern müssen, ein separates / var, swap, / usr usw. zuzuweisen. Alle diese Verzeichnisse sind Teil des Betriebssystems und haben wenig mit den Dateien des Benutzers zu tun.

Makario
quelle
+1 für den guten Link. Ist / Swap nicht immer eine separate Partition?
George Marian
@ George Marian: Es muss nicht. Es ist möglich, den Dateisystem-Swap (eine Datei im Dateisystem einer vorhandenen Partition) anstelle des Partition-Swaps zu konfigurieren. Auf diese Weise kann das Ubuntu-System auf einer einzelnen Partition arbeiten.
txwikinger
3
Wenn Sie zu Hause spielen, sollten Sie beachten, dass die Verwendung einer Auslagerungsdatei in einem regulären Dateisystem vom Dateisystem abhängig ist. IE: Versuchen Sie dies nicht mit btrfs, da Sie damit (in älteren Kerneln) unbemerkt Daten beschädigen und (in neueren Kerneln) einen Fehler auslösen können, wenn Sie versuchen, den Swap hinzuzufügen.
RAOF
5

Die Verwendung des gesamten verfügbaren Speicherplatzes ist eine absolut gültige (und wahrscheinlich empfohlene) Option für PCs. Eine solche Partitionierung des Dateisystems ist meiner Meinung nach ein Zwischenstopp aus alten Zeiten, bevor RAID oder die Verwaltung virtueller Volumes in der Software praktisch waren.

In UNIX-ähnlichen Systemen beginnt das Dateisystem im Stammverzeichnis '/'. In den DOS / Windows-Begriffen wäre das 'C:'

Unter DOS / Windows fügen Sie den Tauchbuchstaben D :, E: usw. Laufwerke hinzu. Auf UNIX-ähnlichen Systemen mounten Sie Laufwerke in Verzeichnisse. Früher, als Sie 10 oder 10 Megabyte Festplatten hatten, konnten Sie verschiedene Verzeichnisse in verschiedenen Laufwerken und Partitionen einbinden, um die Illusion eines einzelnen großen Laufwerks zu erzeugen. So ziemlich das RAID 0 eines armen Mannes.

Es gibt viele Gründe, die verschiedenen Root-Verzeichnisse aufzuteilen, aber eine beliebte Idee ist, dass die Swap- und / var-Partitionen die höchste Wahrscheinlichkeit eines Ausfalls aufweisen, da sie so gut wie nie zuvor geschrieben wurden. Indem Sie sie in verschiedene Partitionen aufteilen, können Sie ganz einfach ein weiteres Laufwerk aus dem Backup hinzufügen und es neu mounten.

Auch eine separate / home-Partition kann sehr hilfreich sein, wenn Sie mehrere Linux-Versionen auf einem Computer ausführen. (Zum Beispiel Ubuntu und Red Hat). Da Unix / Linux-Programme die Einstellungen des Benutzers in seinem Heimatverzeichnis ablegen. In der Theorie funktioniert dies jedoch viel besser als in der Praxis. Weil Sie die Auswirkungen der Berechtigungen genau kennen müssen.

Hier sind einige wichtige Verzeichnisse für UNIX-ähnliche Betriebssysteme und deren Erklärungen.

  • /bin - Grundlegende ausführbare Systemdateien
  • /lib - Grundlegende Systembibliotheken (.so unter Linux, .dlls unter Windows).
  • /boot- Wo Sie Kernel leben. Computer startet nicht ohne diesen.
  • /var- Verzeichnis, in dem Dienste Dateien speichern können. Wie Protokolldateien und Postfächer
  • /etc - Systemkonfigurationsdateien
  • /usr- Nicht wesentliche Benutzeranwendungen. (Ein Unix-System kann ohne / usr booten (für Wiederherstellungszwecke), aber es würde keinen großen Spaß machen. In älteren Systemen ist dies dasselbe wie / home.)
  • /home- Benutzerverzeichnisse. Normale Benutzer können nur in ihr eigenes Basisverzeichnis schreiben.
  • Swap (kein Verzeichnis) Dies ist normalerweise eine separate Partition in UNIX. Es gibt kein Auslagerungsverzeichnis, obwohl Sie in Linux Auslagerungsdateien erstellen können.
wm_eddie
quelle
2
Ich würde sagen, dass es auch für einen Desktop / PC eine gute Idee ist, / home in einer separaten Partition zu haben. Auf diese Weise haben Sie weniger Kopfschmerzen, wenn Sie Ihr Home-Verzeichnis füllen.
George Marian
@George Nichts hindert Sie daran, eine Verknüpfung zu Ihrem Home-Verzeichnis auf einem anderen Laufwerk herzustellen. Um die Kompatibilität mit Windows zu gewährleisten, ist meine Home-Partition in meinem Setup NTFS und ich verknüpfe alle Ordner, die ich verwende, mit meinem Home-Ordner. Ich würde den gesamten Ordner mit Symlinks verknüpfen, aber ich möchte die versteckten Inhalte in ~ / separat aufbewahren, falls ich mich für eine Neuinstallation entscheide. Die Verwendung fest codierter Dateipfade, die mit separaten Partitionen verknüpft sind, war vor zwanzig Jahren möglicherweise erforderlich, aber die architektonischen Einschränkungen, die sie erforderlich machten, existieren heute nicht mehr.
Evan Plaice
1
@evan Ich bin verwirrt. Beziehen Sie sich auf das Verknüpfen von Verzeichnissen mit Ihrem Ausgangsverzeichnis oder auf das Verknüpfen Ihres Ausgangsverzeichnisses mit einem anderen Verzeichnis? Wie unterscheidet sich diese Einstellung von der Einstellung / home für eine andere Partition? (Beachten Sie, dass sich "andere Partition" möglicherweise auf einem ganz anderen Laufwerk befindet.) Ich bezog mich auf das Schützen vor Standardverhalten (z. B. Downloads, die in einem Unterverzeichnis Ihres Basisordners abgelegt werden), das versehentlich die Root-Partition füllt.
George Marian
@ George Beide und was auch immer Sie bevorzugen. Der Punkt, den ich versuche zu machen, ist, warum festgelegte Links während der Systeminstallation, wenn Sie einfach ein paar Symlinks hineinwerfen können, danach dasselbe tun und jederzeit leicht geändert werden können.
Evan Plaice
@evan Ein fairer Punkt. Ich hatte nach der Installation noch nie viel Glück damit, also habe ich es immer vorgezogen, es auf die "Standard" -Methode zu machen.
George Marian
1

Die Swap-Partition wird auch für den Ruhezustand verwendet. Wenn Sie Ihren Laptop oder Desktop in den Ruhezustand versetzen möchten, benötigen Sie eine Auslagerungspartition oder Auslagerungsdatei, die groß genug ist, um das ausgeführte Betriebssystem und Ihre geöffneten Anwendungen aufzunehmen.

Es wird oft vorgeschlagen, dass die Swap-Partition dieselbe Größe hat wie Ihr RAM-Speicher.

jr0cket
quelle
1

Sie können während der Installation separate Partitionen erstellen. Eine /homePartition bedeutet, dass Ihre persönlichen Benutzereinstellungen bei jeder Installation von Ubuntu erhalten bleiben.

/- Ist die Wurzel.
/var- (oben erklärt)
/dev- enthält "Links" zu registrierten Geräten. ie / dev / Video0 ist eine Capture-Karte ...

/bin /sbin - Bewerbungen enthalten

Noch besser: Wikipedia hat eine großartige Seite: http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

Das Größte, was ich finde, ist eine 2. Partition (die größte) für deine Sachen und wie ich schon sagte, jedes Mal, wenn du sie neu installierst oder aktualisierst. Wählen Sie diese Partition erneut aus und stellen Sie sicher, dass Sie das Kontrollkästchen für das Format deaktivieren und dann ist alles wieder da. Sogar deine Tapete!

MJ
quelle
1

Nun, swapwird ein Swap Space verwendet. Es ist wie eine Auslagerungsdatei in Windows. Es ergänzt irgendwie RAM.

/home wird für Benutzerdaten wie Eigene Dateien in Windows verwendet,

/usr ist, wo die meisten Programme ähnlich wie C: \ Windows sind, und

/var Enthält Daten, die geändert werden, wenn das System normal läuft.

Was den Grund angeht, warum die Partitionen getrennt sind, denke ich, dass es hauptsächlich daran liegt, dass Ihr Betriebssystem ausfällt und Ihre Daten nicht ausfallen. Aber ich bin mir wirklich nicht sicher.

Cody Harlow
quelle
Unterschied zwischen /varvs /etc?
Pacerier
1

Historisch gesehen , ist es als Best-Practice zu haben /home, swapund andere kritische Knoten befinden sich in unterschiedlichen Partitionen, unterschiedlichen physischen Datenträgern oder auch verschiedene physikalische Maschinen. Obwohl der Einfachheit halber (besser oder schlechter) und mit dem Aufkommen billiger externer oder Cloud-basierter Backups alles jetzt in einer einzigen großen Partition gespeichert ist und Sie Ihre persönlichen Daten einfach an einem anderen Ort sichern.

/usrsteht für Unix System Resources

/sbin, System-Binärdateien

Entgegen der landläufigen /etcMeinung steht es nicht für und so weiter . Stattdessen steht es für Extended Tool Chest . Entgegen der landläufigen Meinung ist dies jedoch immer noch umstritten.

Hier finden Sie weitere Informationen zu diesen Ordnern und ihrer Organisation.

Eric Carvalho
quelle
0

Swap sollte separat aufbewahrt werden, wenn Sie es verwenden. Verwenden Sie dafür das 1,5-2,0-fache Ihrer RAM-Größe.

Der Rest kann zusammengehalten werden und spielt keine Rolle (Linux / Unix ist kein Windows und hat eine einzelne Verzeichnishierarchie, egal ob Ihr / var-Verzeichnis eine separate Partition ist oder nicht, es sieht genauso aus). Der Hauptzweck der Partitionierung besteht darin, verschiedene Dateisysteme zu verwenden und mögliche Szenarien mit "voller Festplatte" aufzuteilen (z. B. wenn / var mit Protokollen einer verrückten App gefüllt ist, funktioniert / home noch).

Als Randbemerkung empfehle ich dringend, LVM zu verwenden, mit dem man beliebig viele frei skalierbare und entfernbare Partitionen erstellen und der Familie sogar neue Festplatten hinzufügen kann. Das Erlernen einer Befehlszeile ist jedoch erforderlich, sodass es nicht für Anfänger geeignet ist.

Mekk
quelle