Warum etwas anderes als / home auf eine separate Partition stellen?

53

So vor kurzem ein Debian 5.0.5 Installer bot mir getrennt zu haben /usr, /home, /varund /tmpPartitionen (auf einem physischen Datenträger).

Was ist der praktische Grund dafür? Ich verstehe, dass /homees vorteilhaft sein kann, eine separate Partition anzulegen, da Benutzerdateien separat verschlüsselt werden können, aber warum für irgendetwas anderes?

Alex B
quelle
10
Ein weiterer guter Grund für die /homeTrennung ist, dass Sie Ihr System neu installieren und / oder Distributionen frei wechseln können, ohne Ihre persönlichen Dateien zu verlieren.
David Z
4
@ David Zaslavsky: Ich würde es nicht zum Vertauschen von Distributionen empfehlen. In den meisten Fällen treten Konflikte mit den versteckten Konfigurationsdateien in Ihrem Home-Verzeichnis auf.
Troubadour
7
@Troubadour: Eigentlich glaube ich nicht. Diese Konfigurationsdateien werden von bestimmten Anwendungen dort abgelegt und haben im Allgemeinen nichts mit der Distribution zu tun, auf der Sie sich befinden. So kann beispielsweise der Inhalt von ~/.mozilla/firefoxvon Firefox auf Ubuntu oder Fedora oder Gentoo gleichermaßen gut genutzt werden. ~/.bashrchat immer den gleichen Effekt auf Bash, egal welches zugrunde liegende System Sie ausführen. Ich habe eine ganze Reihe von Distributionen gewechselt und hatte nie wirklich ein Problem mit diesen Konfigurationsdateien.
David Z
3
@David Zaslavsky: Es könnten Probleme auftreten, wenn die neue Distribution frühere Versionen von Anwendungen als die vorherige verwendet, da sie möglicherweise nicht wissen, wie sie diese Konfigurationsdateien lesen sollen. Davon abgesehen habe ich nicht versucht, selbst etwas in dieser Art zu tun.
Intuited
Wenn Sie sowohl eine Festplatte als auch eine SSD verwenden, möchten Sie möglicherweise den größten Teil der Installation auf der SSD ausführen, möchten aber beispielsweise / home und / var auf der Festplatte ablegen, um eine große Anzahl zu vermeiden von schreibt an die ssd.
Kevin

Antworten:

55
  1. Verlustminimierung: Befindet /usrsich eine Partition auf einer separaten Partition, /usrbedeutet dies nicht, dass Sie sie nicht wiederherstellen können /etc.
  2. Sicherheit: /kann nicht immer ro sein (muss /rootmöglicherweise rw usw. sein), /usrkann aber . Es kann verwendet werden, um so viel wie möglich ro zu machen.
  3. Verwenden eines anderen FS: Ich möchte möglicherweise ein anderes System für /tmp(nicht zuverlässig, aber für viele Dateien schnell) und /home(muss zuverlässig sein) verwenden. Ähnliches /varenthält Daten, obwohl /usrdies nicht so /usrstabil sein kann, aber nicht so sehr /tmp.
  4. Dauer von fsck: Kleinere Partitionen bedeuten, dass die Überprüfung einer Partition schneller ist.
  5. Erwähntes Auffüllen von Partitionen, obwohl andere Methode Quoten sind.
Maciej Piechotka
quelle
23

Ein separater /usrComputer kann nützlich sein, wenn Sie mehrere Computer haben, die dasselbe Betriebssystem verwenden. Sie können eine einzelne Zentrale /usrfreigeben, anstatt sie auf jedem System zu duplizieren. /usrkann schreibgeschützt gemountet werden.

/varund /tmpkann durch Benutzerprogramme oder Daemons aufgefüllt werden. Daher kann es sicher sein, diese in separaten Partitionen zu haben, die verhindern würden, dass /die Root-Partition zu 100% voll ist und Ihr System schwer treffen würde. Um zu vermeiden, dass zwei unterschiedliche Partitionen für diese vorhanden sind, ist es nicht ungewöhnlich /tmp, einen Symlink zu sehen /var/tmp.

Didier Trosset
quelle
Ich schätze, ich kann / var und / tmp verstehen, aber da der Installer angeboten hat, eine einzelne Festplatte zu partitionieren , ist die Nützlichkeit einer separaten /usrziemlich begrenzt?
Alex B
Hiermit können Sie /usrüber NFS Daten für andere Systeme freigeben. Sie können es aber auch dann freigeben, wenn es sich nicht um eine separate Partition handelt. Das stimmt. Laut denken. Ist schreibgeschütztes Mounten ein guter Grund?
Didier Trosset
Wie führen Sie Updates mit dieser Art von Setup durch? Oft (zumindest unter Linux) nehmen Pakete Änderungen an Dateien in systemlokalen Verzeichnissen vor, zum Beispiel in /etc.
Intuited
+1 für / usr Nur-Lese-Mount. Hängen Sie es erneut ein, bevor Sie Aktualisierungen vornehmen.
LawrenceC
13

Da normale Benutzer können die Dinge dazu führen , geschrieben zu werden /varund /tmp, und damit potenziell Probleme für das gesamte System führen. Auf diese Weise können Benutzerprozesse /varund /tmpnicht die Root-Fs füllen . Ein separates /usrist nützlich für /usrüber NFS oder andere entfernte fs.

(Ich hoffe das ist klar, ich habe noch keinen Kaffee getrunken)

KellyClowers
quelle
Der erste Satz ist die beste Erklärung, danke.
Greenoldman
11

Das Problem ist, dass ein vollständiges Root-Dateisystem das Linux-System in einem Ausmaß unbrauchbar macht, dass sogar ein Administrator es ohne eine Wiederherstellungs-CD oder ähnliches repariert. Wenn /tmpund /varinsbesondere /homein einer separaten Partition sind, kann die Root-Fs nicht ohne einen Administrator aufgefüllt werden. Berücksichtigen Sie /usrden Mix, in dem alle üblichen Installationen abgelegt werden, und selbst die Installation neuer Software kann dieses Problem nicht verursachen.

txwikinger
quelle
Es sei denn, es installiert sich in /opt:)
Troubadour
1
Gut. Sie können auch hierfür eine andere Partition erstellen oder einen Link erstellen, sodass sich / opt tatsächlich in der Partition / usr befindet. Das Prinzip ist immer noch dasselbe.
txwikinger 20.08.10
10

Im Allgemeinen sind die Argumente für separate Partitionen:

  1. Sicherheit: Sie können beispielsweise eine schreibgeschützte Partition bereitstellen, um zu verhindern, dass böswillige Benutzer (oder Prozesse) Binärdateien überschreiben oder durch Trojaner ersetzen. Wenn Ihre ssh-Binärdatei in / usr / local / bin und / usr / local schreibgeschützt gemountet ist, ist es für jeden schwierig, diese Binärdatei zu ersetzen.

  2. Flexibilität / Komfort: Wenn Sie beispielsweise / var auf einer eigenen Partition einrichten und diese zu 80% voll ist, können Sie die Größe ändern oder sie bei Bedarf sogar auf eine andere Festplatte verschieben. Ich müsste das lieber tun, als mich mit einem System zu befassen, dessen '/' zu 100% voll ist, weil die Protokolle unter / var irgendwie durcheinander geraten sind. Verschiedene Partitionen können auch völlig unterschiedliche Dateisysteme haben, sodass Ihr Betriebssystem ext3 (zum Beispiel) und Ihre Datenbank ext4 oder Ihr Objekt-Repository XFS oder Ihre benutzerdefinierte App ... Raw-Geräte verwenden kann!

Jonesy
quelle
Wie werden Systemaktualisierungen normalerweise im ersten Fall behandelt?
Intuited
6

Traditionell geschah dies auf Grund der Besonderheiten der DEC-Hardware, auf der es entwickelt wurde. Es war wirtschaftlicher, eine kleine, schnelle Festplatte für Root und Swap und eine größere, langsamere Festplatte für Benutzerdaten zu kaufen ( /usr). In gewisser Hinsicht blieb die Konvention einfach hängen.

Es gibt jedoch noch einige Gründe dafür. Einige häufige sind:

  • Putting / boot auf einer separaten, kleinen Partition am Anfang der Festplatte. Ältere PC-BIOS-Firmware bootet nur von den ersten 1024 Spuren der Festplatte. Dies ist bei moderner Hardware weniger wahrscheinlich.

  • Platzieren ausgelasteter Partitionen wie /varoder /tmpauf separaten Datenträgern, um Engpässe beim Zugriff auf Benutzerdaten zu beseitigen.

  • Verschiedene Dateisysteme auf verschiedenen Partitionen. Möglicherweise möchten Sie ein Journalling-Dateisystem /usrfür Partitionen verwenden, die Dateien für ein DBMS wie Oracle hosten, jedoch nicht für Partitionen. Das DBMS führt ein eigenes Journalling durch, und das Journalling-Dateisystem kann einen erheblichen Overhead verursachen.

  • Wenn Sie Benutzerdaten auf einer separaten Festplatte oder Partition haben, können Sie diese problemlos auf eine größere Festplatte migrieren, ohne größere Eingriffe am Computer vornehmen zu müssen.

  • Möglicherweise möchten Sie freigegebene Daten wie Basisverzeichnisse oder Anwendungsbinärdateien über NFS bereitstellen.

  • fsckBei großen Volumes dauert es für bestimmte Dateisystemtypen sehr lange. Möglicherweise möchten Sie unterschiedliche Zeitpläne für die Dateisystemwartung für Systembereiche (häufig) und Benutzerbereiche (weniger häufig).

Betroffen vonTunbridgeWells
quelle
5

Das Formatieren eines Dateisystems kann auch schneller sein als das rm -rf'ing. Vor allem, wenn Sie Tausende kleiner Dateien löschen müssen. Squid-Cache, den Sie vollständig neu erstellen möchten ... Unmengen von Bilddateien, die Sie für die Verarbeitung benötigen, die jedoch nach der Erstellung des Endergebnisses weggeworfen werden können. OBJ-Dateien aus großen Kompilierungen ... usw.

gabe.
quelle
4

Ein Ordner, den ich manchmal auf einer separaten Partition abgelegt habe, ist /usr/local/so angelegt, dass jede Software, die ich separat vom Paketmanager meiner Distribution erstellt und installiert habe, möglicherweise wiederverwendet werden kann, wenn ich meine Distribution ändere / aktualisiere oder eine andere Distribution daneben installiert. Es ist offensichtlich nicht garantiert, dass es über alle möglichen Kombinationen hinweg funktioniert, aber es schadet nicht.

Troubadour
quelle
2

Ich habe /tmpein tmpfs angelegt, damit der Inhalt im RAM statt auf der Festplatte gespeichert wird. Das wäre für /etcoder /usraber nicht sinnvoll .

Es kann jedoch von Vorteil sein, unterschiedliche Verzeichnisse in unterschiedlichen Dateisystemen ablegen zu können. dh /homeauf einem schnellen / experimentellen Dateisystem wie ext4 gegenüber einem stabilen / zuverlässigen Dateisystem wie ext2 für /etc.

jonescb
quelle