Para mostrar o caminho de origem da montagem vinculada para montagem após v2.25.2

Para mostrar o caminho de origem da montagem vinculada para montagem após v2.25.2

ATUALIZAÇÃO, estou reabrindo esta pergunta porque findmntnão é a resposta.

Basicamente o resumo do OP é que desde a versão 2.25.2, mount não mostra mais seu caminho de origem:

$ mkdir -v /export/crash
mkdir: created directory '/export/crash'

$ mount -v --bind /export/crash /var/crash
mount: /export/crash bound on /var/crash.

$ mount | grep crash 
/dev/sdb2 on /var/crash type ext3 (rw,noatime,nodiratime,data=ordered)

Antes da montagem v2.25.2, ela era usada para relatar a origem da montagem:

$ mount | grep crash 
/export/crash on /var/crash type ext3 (rw,noatime,nodiratime,data=ordered)

Isto é muito inconveniente para mim, pois

  • Eu era capaz de fazer umount mount_sourceantes, mas agora só posso fazerumount mount_target
  • Vinculo a montagem de determinada fonte como somente leitura e tenho um script para ativar e desativar o RW para essas montagens de ligação. Mas com a nova montagem (v2.25.2+), não consigo mais fazer isso.

E esta findmntnão é a resposta para os meus problemas acima:

$ findmnt | grep crash
└─/var/crash   /dev/sdb2[/crash]   ext3    rw,noatime,nodiratime,data=ordered

Ou seja, não mostra que /var/crashvem de /export/crashnenhum dos dois. (NB, se você testar com bind mount from /tmp/crashou similar, você verá /tmp/crashna fonte, mas preciso ver a /exportparte, meu ponto de montagem).

Por favor ajude.

== O seguinte é o OP original ==:

A sintaxe para bind mount sempre foi

mount --bind olddir newdir

No entanto, notei uma diferença em como mountos relatórios de ligação são montados entre o Ubuntu 14.10 Utopic e o Ubuntu 15.04 Vivid, ou seja, monte v2.25.1 e monte v2.25.2.

No Ubuntu 14.10 Utopic, os mountrelatórios que o bind é montado assim:

$ mount | grep www
/my/path/to/www on /var/www type none (rw,bind)

$ mount -V   
mount from util-linux 2.25.1 (libmount 2.25.0: selinux, assert, debug)

Porém no Ubuntu 15.04 Vivid, é assim:

$ mount | grep www 
/dev/sda11 on /var/www type ext3 (rw,noatime,nodiratime,data=ordered)

$ mount -V   
mount from util-linux 2.25.2 (libmount 2.25.0: selinux, assert, debug)

Ou seja, o caminho de origem da montagem de ligação está faltando no mountrelatório. Para ambos os casos, uso a sintaxe exata para bind mount conforme acima.

Como posso fazer mountshow bind mount source path no Ubuntu 15.04 Vivid (mount v2.25.2)?

Responder1

O que você pode fazer é grep o/proc/self/mountinfo:

$ less /proc/self/mountinfo | grep /my/mount
221 84 8:3 /bind/source /my/mount rw,relatime shared:32 - ext4 /dev/sda3 rw,data=ordered

Responder2

Você já pensou em usar findmnt?

mountarmazena suas informações em /proc/mounts (ou /proc/self/mounts), que tem um link simbólico para /etc/mtab. mountsimplesmente criará um cat neste arquivo e não armazenará mais informações de ligação.

informação relacionada