Wie kann ich auf die Originaldateien (das Lowerdir) eines Overlays zugreifen, das am selben Speicherort wie das Lowerdir angehängt ist?

410
Anonymous

Die Situation, in der ich mich befand, ist, dass ich Fedora Linux von einem halb lesbaren Ort aus ausführen muss. Ich kann das Dateisystem bearbeiten, Dateien und ähnliches einfügen, aber beim Neustart geht alles verloren, und als zusätzlichen Ärger kann ich auch den verfügbaren Speicherplatz nicht ohne weiteres vergrößern. Ich habe zwar Zugriff auf einige beschreibbare Medien, also dachte ich, ich würde das tun:

sudo mount --bind /usr /home/username/Store/Orig/usr sudo mount -t overlay ovl_usr -o lowerdir=/usr,upperdir=/home/username/Store/usr,workdir=/home/username/Store/Work/usr /usr 

Die zweite Zeile funktioniert gut, es ist die erste Zeile, die nicht funktioniert. Sie soll mir nicht überlagerten Zugriff auf den ursprünglichen Inhalt von geben /usr. Ich würde erwarten, dass, da die Bindung montiert erstellt wird, bevor das Overlay auf montiert ist /usr, /home/username/Store/Orig/usrwürde immer noch den alten Inhalt sehen. Aber nein, /home/username/Store/Orig/usrzeigt die überlagerten Dateien genauso /usr.

Gibt es eine Möglichkeit, auf den ursprünglichen Inhalt von zuzugreifen /usr?

2

1 Antwort auf die Frage

1
Kamil Maciorowski

Ich denke, Sie erleben ein "gemeinsames" Verhalten, während Sie "privat" brauchen. Sehen man 8 mount:

Die gemeinsamen Unterbaumoperationen.
Seit Linux 2.6.15 ist es möglich, ein Mount und seine Submounts als Shared, Private, Slave oder Unbindbar zu kennzeichnen. Ein gemeinsam genutzter Mount bietet die Möglichkeit, Spiegel dieses Mount zu erstellen, sodass Mount- und Umounts in einem der Spiegel auf den anderen Spiegel übertragen werden. […] Ein privater Mount hat keine Ausbreitungsfähigkeiten. […]

Lösung: nach mount --bind …und vor dem mount -t overlay …Aufruf:

sudo mount --make-private /home/username/Store/Orig/usr 
Ich werde es versuchen, sobald ich kann. Sie sagen also, dass die Bindung an der ursprünglichen Position auch an der neuen Position sichtbar ist, weil das Bind-Mount gemeinsam genutzt wird? Und dass das Binding Mount also privat sein würde, würde das Problem lösen. Anonymous vor 6 Jahren 0
@Anonymous Ja. Kamil Maciorowski vor 6 Jahren 0
Ich habe es getestet und es scheint zu funktionieren - danke! Eine Sache, die nicht Teil der genauen Frage war, auf die Sie vielleicht trotzdem hingewiesen haben möchten, ist die Tatsache, dass Probleme auftreten können, wenn der Besitz und die Berechtigungen des ursprünglichen / des neuen / usr voneinander abweichen. Ich arbeite jetzt mit chown und chmod herum, um alles zu reparieren. Wenn ich es nur von Anfang an richtig eingerichtet hätte ... Anonymous vor 6 Jahren 0