Was macht Linux mit vorhandenen Dateien in einem Einhängepunkt?
52
Wenn ich versuche, einen Ordner zu mounten, in dem sich bereits Dateien befinden, gibt Linux eine Fehlermeldung aus oder zeigt es das gemountete Dateisystem und die Dateien an, die sich bereits im Ordner befinden?
Könnte es immer mit ein paar Testdateien ausprobieren, nein?
Chris
Ich würde von wenn ich könnte. Es hat einfach geklappt, dass ich nichts zum Testen hatte. Ich habe versucht, das fragliche Laufwerk abzumelden und zu mounten, aber die Ergebnisse waren nicht schlüssig, da beide die gleichen Dateien hatten.
schlank
Gibt es eine Möglichkeit, den Ordner unbeschreiblich zu machen, sodass Dateien dort nicht existieren können?
Endolith
Antworten:
33
Es wird nur gemountet und die Dateien verschwinden, wenn der Ordner nicht gemountet wird.
Was meinst du mit verschwinden? Sie existieren weiterhin auf dem Server und werden einfach nicht angezeigt oder sind die gelöscht?
Slim
Ich werde schnell nachsehen, aber ich denke, sie sind gelöscht.
Azz
17
+1 Die Dateien sind einfach unsichtbar, während das Verzeichnis "über" ihnen eingehängt wird. Sie gehen nie wirklich weg, die sind einfach unzugänglich ...
sleske
10
Es funktioniert wie ein Stapel, wenn Sie etwas anderes einhängen, wird der vorherige Inhalt ausgeblendet. Wenn Sie den Ladevorgang beenden, wird das vorherige Zeug wieder sichtbar.
Vtest
4
Ich bin verwirrt darüber, wie jemand, der sagte, er käme zurück, wenn der Ordner nicht geladen ist, 3 Minuten später sagen konnte, er sei gelöscht. Zum Glück für alle anderen ist Ersteres die Realität hier.
Underscore_d
111
Wenn Sie ein Dateisystem in ein Verzeichnis mounten /mount-point, können Sie nicht mehr /mount-pointdirekt unter auf Dateien zugreifen . Sie sind noch vorhanden, /mount-pointbeziehen sich aber jetzt auf das Stammverzeichnis des bereitgestellten Dateisystems und nicht auf das Verzeichnis, das als Bereitstellungspunkt diente, sodass auf den Inhalt dieses Verzeichnisses zumindest auf diese Weise nicht zugegriffen werden kann. Zum Beispiel:
# touch /mount-point/somefile
# ls /mount-point/somefile
/mount-point/somefile
# mount /dev/something /mount-point
# ls /mount-point/somefile
ls: cannot access /mount-point/somefile: No such file or directory
Es gibt verschiedene Möglichkeiten, eine zusammengeführte Ansicht des bereitgestellten Dateisystems und der bereits vorhandenen Daten zu erhalten. Sie benötigen jedoch eine zusätzliche Ebene, das so genannte Unionsdateisystem .
Unter Linux gibt es eine Möglichkeit, die versteckten Dateien anzuzeigen. Mit können Sie mount --bindeine andere Ansicht des Dateisystems abrufen, in dem sich der Einhängepunkt befindet. Zum Beispiel
mount --bind / /other-root-view
Sie sehen alle Dateien im Root-Dateisystem unter /other-root-view.
# cat /other-root-view/etc/hostname
darkstar
Insbesondere /mount-pointwird jetzt zugänglich sein /other-root-view/mount-point, und da /other-root-view/mount-pointes sich nicht um einen Mount-Punkt handelt, können Sie seinen Inhalt dort sehen:
# ls /mount-point/somefile
ls: cannot access /mount-point/somefile: No such file or directory
# ls /other-root-view/mount-point/somefile
/other-root-view/mount-point/somefile
Gilles, diese Antwort hat mir gerade den Hintern gerettet, als ich einige Sternchenaufnahmen abrufen musste, die unter einem NSF-Mount-Punkt gespeichert wurden! Ich dachte immer --bind hat die gleiche Perspektive wie der Benutzer. Danke!
Andyortlieb
Was ist mit Verzeichnissen? Kann ich trotzdem auf ein /mount-point/1/anderes Dateisystem /mount-point/zugreifen, wenn ich es bei eingehängt habe /mount-point/1/?
CMCDragonkai
@ CMCDragonkai Ja, indirekt durch Verwendung eines Bind-Mount, wie in meiner Antwort beschrieben.
Gilles 'SO - hör auf böse zu sein'
Giles, das ist eine brillante Technik und hat mir geholfen zu analysieren, was sich auf meinem eigenen System befindet. Es hat auch bei einer anderen Frage geholfen, nämlich wie die Verwendung aller Stammverzeichnisse überprüft werden kann, ohne Mount-Punkte zu durchlaufen. Lösung: mkdir /r; mount --bind / /r; du -sh /r/*. Thanks
Manngo
@Manngo zum späteren Nachschlagen, dies ist nicht erforderlich. du -x(äquivalent zu du --one-file-system) hätte das ohne die Notwendigkeit von --bindSpielereien getan.
Antworten:
Es wird nur gemountet und die Dateien verschwinden, wenn der Ordner nicht gemountet wird.
quelle
Wenn Sie ein Dateisystem in ein Verzeichnis mounten
/mount-point
, können Sie nicht mehr/mount-point
direkt unter auf Dateien zugreifen . Sie sind noch vorhanden,/mount-point
beziehen sich aber jetzt auf das Stammverzeichnis des bereitgestellten Dateisystems und nicht auf das Verzeichnis, das als Bereitstellungspunkt diente, sodass auf den Inhalt dieses Verzeichnisses zumindest auf diese Weise nicht zugegriffen werden kann. Zum Beispiel:Es gibt verschiedene Möglichkeiten, eine zusammengeführte Ansicht des bereitgestellten Dateisystems und der bereits vorhandenen Daten zu erhalten. Sie benötigen jedoch eine zusätzliche Ebene, das so genannte Unionsdateisystem .
Unter Linux gibt es eine Möglichkeit, die versteckten Dateien anzuzeigen. Mit können Sie
mount --bind
eine andere Ansicht des Dateisystems abrufen, in dem sich der Einhängepunkt befindet. Zum BeispielSie sehen alle Dateien im Root-Dateisystem unter
/other-root-view
.Insbesondere
/mount-point
wird jetzt zugänglich sein/other-root-view/mount-point
, und da/other-root-view/mount-point
es sich nicht um einen Mount-Punkt handelt, können Sie seinen Inhalt dort sehen:quelle
/mount-point/1/
anderes Dateisystem/mount-point/
zugreifen, wenn ich es bei eingehängt habe/mount-point/1/
?mkdir /r; mount --bind / /r; du -sh /r/*
. Thanksdu -x
(äquivalent zudu --one-file-system
) hätte das ohne die Notwendigkeit von--bind
Spielereien getan.