Wie kann ich unter Linux ein Unterverzeichnis auf eine Festplatte mounten?

12

Nehmen wir an, ich habe zwei Festplatten (A, B) und die folgenden Verzeichnisse:

  • / var / www
  • / var / www / upload

Derzeit, wenn ich eine Datei nach / var / www ODER / var / www / upload hochlade; es wird in Laufwerk A gespeichert.

Wie lege ich den Ordner / var / www / upload auf Laufwerk B fest? Wenn ich also eine Datei nach / var / www / upload hochlade, wird sie auf Laufwerk B gespeichert, aber wenn ich eine Datei nach / var / www hochlade, es wird in Laufwerk A gespeichert.


quelle

Antworten:

23

Ich ging davon aus, dass die Festplatte A nicht als Root-Dateisystem (/) angehängt ist. Wenn dies der Fall ist, ignorieren Sie einfach die Zeilen mit Laufwerk A.

Bearbeiten Sie Ihre / etc / fstab:

/ dev / diskA / var / www / auto Standardeinstellungen 1 2
/ dev / diskB / var / www / automatische Standardeinstellungen für das Hochladen 1 2

Sie können "auto" durch das Dateisystem ersetzen, das Sie auf dieser Partition haben, aber das obige sollte trotzdem funktionieren.

Wenn die Datenträger A und B an anderer Stelle bereitgestellt sind, können Sie versuchen, eine Verknüpfung zu erstellen:

ln -s / path / to / driveA_mountpoint / var / www /
In -s / path / to / driveB_mountpoint / var / www / upload

Hinweis: / var / www und Verzeichnis "upload" auf Laufwerk A dürfen nicht vorhanden sein, sonst schlägt dies fehl.

Persönlich bevorzuge ich die Bind-Option von mount:

mount -o bindet / var / www / / path / an / driveA_mountpoint
mount -o bindet / var / www / upload / path / to / driveB_mountpoint

Erwägen Sie jedoch, / etc / fstab zu bearbeiten - dies ist wahrscheinlich der beste Weg.

minder
quelle
3
Diese Antwort setzt voraus, dass Laufwerk a nicht das Stammlaufwerk ist. Wenn A das Stammlaufwerk ist, müssen Sie nur ein leeres Verzeichnis erstellen (/ var / www / upload) und dann einen fstab-Eintrag für Laufwerk b im obigen Beispiel erstellen.
Roy Rico
3
@minder - um ein Bind-Reittier in deine /etc/fstab:/path/orig /new/path/mount bind defaults 0 0
warren
1
Sie haben einen Tippfehler im ersten Codeblock: /dev/diskB /ver/www/uploadvervar
Frederic Leitenberger
3

ist Festplatte B montiert? Wenn es so ist,

ln -s /path/to/hard/drive/B/mount/point /var/www/upload

Andernfalls

mount -t <fstype> -o defaults /dev/<hard driver B> /var/www/upload
Cian
quelle
Dies wird funktionieren, aber ich denke, es wird eine bessere Lösung sein, wenn Sie es zur fstab hinzufügen, da es beim Booten der Maschine erneut eingebunden wird, was in Ihrem Beispiel nicht der Fall ist.
Roy Rico