쿼리 오버레이

쿼리 오버레이

마운트된 오버레이 파일 시스템( )을 쿼리하여 상위 및 하위 디렉터리를 확인하는 방법을 찾고 있지만 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

답변2

mount자체적으로 디렉터리를 overlayfs 유형으로 나열하고 마운트 옵션에 upperdir 및 lowerdir을 나열합니다.

관련 정보