Wie ändere ich eine niedrigere Datei über ein OverlayFS-Verzeichnis?

8

Ich möchte, dass sich das OverlayFS von Linux beim Schreiben in eine niedrigere Datei wie AUFS verhält . Ich möchte, dass es in das untere Verzeichnis schreibt . Zum Beispiel habe ich zwei Dateien mit dem Namen L/lowerund U/upper.

mount -t overlay -o lowerdir=L,upperdir=U,workdir=W overlay X

Diese verschmilzt Lund Uin ein einziges OverlayFS Verzeichnis mit dem Namen X. Jetzt sind die beiden Dateien als X/lowerund zugänglich X/upper.

Dann ändere ich die untere Datei über das OverlayFS-Verzeichnis. Hier benimmt es sich schlecht bei mir:

echo 'This is a modification' >> X/lower

Die untere Datei wird nicht geändert L/lower. Stattdessen wird eine neue obere Datei mit dem Namen erstellt U/lowerund meine Änderung dort geschrieben. Das will ich nicht. Ich möchte Xals praktischer Einzelzugriffspunkt für Bearbeitungszwecke dienen.

Wie kann ich die Änderung vornehmen, in die X/lowergeschrieben werden soll L/lower?

Michael Allan
quelle
niedriger ist schreibgeschützt. so funktioniert das. Sie können Overlays jedoch rekursiv über Overlays mounten.
Mikeserv
Ich habe einige Antworten auf meine eigene Frage ( unix.stackexchange.com/q/393930 ) veröffentlicht, die dieses Thema behandelt.
Ejm
Ist ein Wechsel der Rolle von oben und unten eine Option? Oder müssen Sie sowohl nach oben als auch nach unten schreiben? In diesem Fall ist mergerFS möglicherweise besser geeignet. MergerFS kann jedoch nicht COW ausführen.
MAV
@MAV, Was ich damals wollte, war Schreibzugriff auf die Dateien in beiden Lund Uüber X- "einen bequemen, einzelnen Zugriffspunkt für Bearbeitungszwecke" - was AUFS mir gegeben hat.
Michael Allan

Antworten:

1

Sie können in das zugrunde liegende Verzeichnis schreiben, indem Sie das erstellte Overlay nicht für den Zugriff auf die Datei verwenden (in diesem Fall das Verzeichnis "X"). Mach es mit:

echo 'This is a modification' >> L/lower
Luis Lavaire
quelle
Das würde jedoch nicht durch die Überlagerung geschehen , worüber ich frage. Ich möchte X/lowerein einziger Zugriffspunkt für Bearbeitungszwecke sein, unabhängig davon, ob sich die Datei tatsächlich in L/oder in befindet U/. Anscheinend werden die beiden Verzeichnisse zusammengeführt, während sie tatsächlich getrennt bleiben.
Michael Allan
Diese Antwort ist falsch, vorausgesetzt, Sie haben die Überlagerung nicht zuerst ausgehängt. Dies wird sogar explizit und offiziell dokumentiert : "Änderungen an den zugrunde liegenden Dateisystemen, während ein Teil eines bereitgestellten Overlay-Dateisystems nicht zulässig ist. Wenn das zugrunde liegende Dateisystem geändert wird, ist das Verhalten des Overlays undefiniert, führt jedoch nicht zu einem Absturz oder Deadlock . "
MAV