Wie erstelle ich eine Schleife im Linux-Dateisystem? Ich möchte die Directed Acyclic Graph (DAG) -Eigenschaft des Linux-Dateisystems brechen. Ist das möglich? Ich habe diesen Zustand einmal gesehen, als ich den Scratchbox Cross Compiler auf meinem Ubuntu installiert habe.
Ich weiß nicht, wie ich es jetzt reproduzieren soll.
Einige andere Responder haben bereits geantwortet, wie man ein Mount mit dem Loopback-Gerät einrichtet, aber Sie haben speziell nach bind
mounts gefragt, die ein wenig anders sind. Wenn Sie einen Bind-Mount verwenden möchten, geben Sie einfach --bind
im Befehl mount an. Zum Beispiel:
Dadurch wird der Speicherort des Dateisystems unter /original/path
auch zugänglich gemacht durch /new/path
. Beachten Sie, dass dies
Nun nehme ich an, dass ich ein bind
mount für /something
:
Ich kann auf Dateien wie /something/myfile
über den Pfad /new_something/myfile
zugreifen. Aber ich werde nicht über den Pfad /something/underneath/that/otherfile
auf Dateien wie /new_something/underneath/that/otherfile
zugreifen können. Sie müssen für jedes Dateisystem eine separate Mount-Datei bind
einrichten. oder wenn Sie einen relativ neuen Kernel haben, können Sie rbind
mounts verwenden, die Mountpoints folgen:
Ein Vorbehalt zu rbind
mounts: Sie behandeln nicht den Fall, dass ein Dateisystem gemountet wird, nachdem rbind
eingerichtet wurde. Nehmen wir an, ich habe ein solches Mount:
Dann richte ich mein rbind
wie oben ein und dann moate /something/underneath/that
: Das rbind
wird das neue Mount nicht magisch durch den rbind
Ort sichtbar machen. Beachten Sie auch, dass Sie anscheinend aufgrund eines Fehlers im Kernel ein rbind
mount nicht aushängen können.
Auch für den Fall, dass Sie meinen "Wie richte ich Bind-Mounts mit dem Systemaufruf von mount (2) ein?": Sie müssen das MS_BIND
-Flag (definiert in mount.h
) beim Aufruf von mount(2)
angeben für ein normales bind
mount. Für ein rbind
mount müssen Sie MS_BIND
und das Dokument% c_de% des Dokuments angeben (definiert in MS_REC
).
Hoffe das hilft,
Eric Melski
Es sieht so aus, als ob alle bisherigen Antworten auf das Mounten auf Loopback-Geräten und das Erstellen einer Schleife mit Bind-Mounts gerichtet sind .
Wie Sie wahrscheinlich herausgefunden haben,
%Vor% Mit können Sie nur auf test/test/test
und nicht weiter zugreifen. Nicht einmal
funktioniert, weil das rekursive bind-mount effektiv nach vorhandenen Mounts auf der Quelle sucht und sie im Ziel bindet.
Was Sie verlangt haben, ist nicht möglich, da Bind-Mounts keine Mount-Punkte kreuzen. Wenn Sie wirklich eine Dateisystemschleife simulieren möchten, verwenden Sie ein Pseudo-Bind-Mount wie localfs . Ich habe es selbst nicht versucht, es kann blockieren, wenn ich versuche, ein von mir bereitgestelltes Dateisystem zu lesen. Gerade jetzt habe ich versucht, einen NFS-Baum mit crossmnt
zu exportieren und ihn unter sich zu mounten, scheitert aber aus ähnlichen Gründen.
Dabei steht / path / to / device für den Pfad zu der Partition, die Sie mounten möchten, oder für den Pfad zu einem Festplatten-Image und / path / to / mount / location für den Pfad zu dem Ordner, den Sie mounten möchten Gerät / Bild unter
Sie müssen möglicherweise auch den Typ des Dateisystems wie folgt angeben (der fat16 / fat32 verwendet):
%Vor%Sie können auch eine von Grund auf neu erstellen:
Erstellen Sie zuerst die Image-Datei und initialisieren Sie sie.
%Vor%Als nächstes erstellen Sie eine gültige Partition mit einem FS-Typ Ihrer Wahl
%Vor%Montiere dein neues Bild
%Vor%Sie können jetzt Dateien und Verzeichnisse in Ihrem neuen Image erstellen / kopieren.
Viel Spaß,
Jeach!
Tags und Links linux filesystems mount