Saiba qual diretório é “mount -o bind” perguntando ao kernel (Linux)

5

Se eu fizer mount -o bind /my/dir /mnt/tmp , posso ver o conteúdo de /my/dir em /mnt/temp . No entanto, se eu digitar cat /proc/mounts , recebo a seguinte saída:

/dev/sda7 /my ext4 rw,relatime,user_xattr,barrier=1,data=ordered 0 0
/dev/sda7 /mnt/tmp ext4 rw,relatime,user_xattr,barrier=1,data=ordered 0 0

Como você pode ver, eu sei que sda7 é o dispositivo subjacente, mas não sei qual diretório dentro desse sistema de arquivos é "mount bound" em /mnt/temp .

Como posso saber que sem digitar mount que não depende do kernel, mas em /etc/mtab ? Gostaria de obter as informações do próprio kernel.

EDITAR: seria bom se a solução também pudesse funcionar para diretórios ligados no momento da montagem de /etc/fstab com este tipo de linha: /my/dir /mnt/temp none bind 0 0

    
por Totor 20.11.2013 / 19:24

1 resposta

7

Você pode obter essas informações em /proc/self/mountinfo :

# mkdir -p /my/dir
# mkdir /mnt/temp
# mount -o bind /my/dir /mnt/temp
# grep temp /proc/self/mountinfo 
26 22 202:1 /my/dir /mnt/temp rw,noatime - ext3 /dev/xvda1 rw,errors=continue,user_xattr,acl,barrier=0,data=ordered

Aqui está o patch que implementou isso no kernel: link

Você também pode usar o comando findmnt :

# findmnt /mnt/temp
TARGET    SOURCE              FSTYPE OPTIONS
/mnt/temp /dev/xvda1[/my/dir] ext3   rw,noatime,errors=continue,user_xattr,acl,barrier=0,data=ordered

EDIT : Também verifiquei que esse método funciona quando montado via /etc/fstab .

# tail -1 /etc/fstab 
/my/dir  /mnt/temp  none  bind  0 0
    
por 20.11.2013 / 20:05