Overlays abfragen

8

Ich suche nach einer Möglichkeit, ein gemountetes Overlay-Dateisystem ( overlayfs) abzufragen , um das obere und untere Verzeichnis zu überprüfen, aber bis jetzt habe ich keinen geeigneten Befehl dafür gefunden. Gibt es eine Möglichkeit, eine solche Überprüfung durchzuführen?

Ich habe das overlayfsmit einem Befehl wie dem folgenden gemountet :

mount -t overlayfs -o lowerdir=/mnt/root-ro,upperdir=/data/root-rw overlayfs-root ${rootmnt}

Der mountBefehl gab mir nicht genügend Informationen:

root@ubuntu12:~# mount -l
overlayfs-root on / type overlayfs (rw)
/dev/sda1 on /mnt/root-ro type ext4 (ro,relatime,data=ordered) [ROOT]
/dev/sdb1 on /data type ext4 (rw,errors=remount-ro) [DATA]
enzo1959
quelle
1
Welche Art von "Overlay" -Dateisystem verwenden Sie?
Celada
1
Ich benutze Overlays
Enzo1959
Oh! Ich wusste nicht, dass es tatsächlich ein Dateisystem namens "overlayfs" gibt. Ich kenne nur aufs und unionfs. Die beiden letzteren bieten eine einfache Möglichkeit, die zugrunde liegenden Zweige abzufragen, aber ich würde nichts über Overlays wissen.
Celada
Bitte Celada, erzähl mir von der Methode, die für aufs und unionfs geeignet ist, damit ich überprüfen kann, ob etwas Ähnliches auch für Overlays funktioniert
enzo1959
aufs: Unter /sys/fs/aufsbefindet sich ein Verzeichnis pro Instanz des aktuell gemounteten aufs-Dateisystems. Innerhalb jedes Verzeichnis gibt es Dateien br0, br1und so weiter, die die Namen von jedem der Zweige dieser AUFS Instanz enthalten.
Celada

Antworten:

2

Der Kernel macht die (vollständige Liste der) Mount-Optionen über verfügbar /proc/mounts. Für Overlays umfasst dies die Optionen lowerdirund upperdir:

$ cd /tmp
$ mkdir lower upper overlay
$ sudo mount -t overlayfs -o lowerdir=/tmp/lower,upperdir=/tmp/upper none /tmp/overlay
$ tail -n 1 /proc/mounts
none /tmp/overlay overlayfs rw,relatime,lowerdir=/tmp/lower,upperdir=/tmp/upper 0 0

Im allgemeinen Fall kann das Parsen schwierig sein, da die Pfade selbst Leerzeichen und Kommas enthalten können, die als Feldtrennzeichen in den Dateisysteminformationen verwendet werden. Wenn Sie davon ausgehen können, dass die Pfade keine Leerzeichen oder Kommas enthalten, können Sie möglicherweise Folgendes verwalten:

$ LOWER=$(tail -n 1 /proc/mounts | egrep -om1 'lowerdir=[^, ]*' | sed s/lowerdir=//)
$ UPPER=$(tail -n 1 /proc/mounts | egrep -om1 'upperdir=[^, ]*' | sed s/upperdir=//)
$ echo $LOWER $UPPER
/tmp/lower /tmp/upper
Thomas Nyman
quelle
Beachten Sie, dass Sie in Ubuntu die Optionen im Befehl mount hinzufügen mkdir workdirund ergänzen müssen workdir=/tmp/workdir.
Programster
0

mount listet Ihr Verzeichnis selbst als Overlayfs-Typ und Upperdir und Lowerdir in den Mount-Optionen auf.

tavish
quelle
Ich sehe, dass ein Tutorial sagte, dass Moiunt die Details von montierten Overlays beschlagen wird, aber in der Praxis gibt mir das Mount auf Ubuntu 12 nicht genug Informationen.
Enzo1959