Consultando um overlayfs

7

Estou procurando uma maneira de consultar um sistema de arquivos de sobreposição montada ( overlayfs ) para verificar seu diretório superior e inferior, mas até agora não encontrei nenhum comando adequado para isso. Existe uma maneira de fazer tal verificação?

Eu montei o overlayfs com um comando como o abaixo:

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

O comando mount não me forneceu informações suficientes:

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]
    
por enzo2 15.05.2013 / 10:24

2 respostas

2

O kernel expõe a (lista completa de) opções de montagem via /proc/mounts . Para overlayfs, isso inclui as opções lowerdir e 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

No caso geral, a análise pode ser complicada, pois os próprios caminhos podem conter espaços e vírgulas que são usados como separadores de campo nas informações do sistema de arquivos. Se você puder supor que não há espaços ou vírgulas no nos caminhos, talvez consiga gerenciar algo como:

$ 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
    
por 18.10.2013 / 12:33
0

mount irá listar seu diretório como tipo overlayfs e upperdir e lowerdir nas opções de montagem.

    
por 23.05.2013 / 12:22