クエリオーバーレイ

クエリオーバーレイ

マウントされたオーバーレイファイルシステム()を照会して親ディレクトリと子ディレクトリを確認する方法を探していますが、overlayfsこれまでは適切なコマンドが見つかりませんでした。このような検査を行う方法はありますか?

overlayfs次のコマンドを使用してインストールしました。

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

このmountコマンドは十分な情報を提供しません。

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]

ベストアンサー1

カーネルはマウントオプション(フルリスト)を公開します/proc/mounts。 overlayfs の場合、これにはlowerdir次の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

通常、パス自体にファイルシステム情報のフィールド区切り文字として使用されるスペースとコンマを含めることができるため、これを解析するのは難しい場合があります。あると仮定できればいいえパスにスペースやカンマがある場合は、次のように管理できます。

$ 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

おすすめ記事