Muitas pessoas continuam dizendo que o Linux não mantém informações sobre montagens de ligação, portanto não há como obter uma lista delas e de suas fontes. aqui estão alguns exemplos:
-
As informações do IIRC não são mantidas em nenhum lugar: depois
mount --bind
, as duas cópias são equivalentes, não há uma que seja mais "original" que a outra. Afinal, não poderia haver original se você já estivesse desmontado/mnt
. -
Portanto, a única maneira de lembrar quais montagens eram montagens de ligação é o log de comandos de montagem restantes
/etc/mtab
. Uma operação de montagem de ligação é indicada pela opção de montagem de ligação (que faz com que o tipo de sistema de arquivos seja ignorado). Mas mount não tem opção para listar apenas sistemas de arquivos montados com um conjunto específico de conjuntos de opções. de um relatório de bug do Debian :
Isso é intencional. Ambos os pontos de montagem são totalmente iguais em todos os aspectos, portanto o kernel não mantém nenhum sinalizador para diferenciá-los.
O acima é um absurdo embora. A ferramenta findmnt
é capaz de listar os caminhos de origem das montagens de ligação (na forma de device[source-path]
; também estou tentando fazê-lo listar apenas o caminho de origem e não o dispositivo). Se o kernel do Linux deve manter uma montagem de ligação, essas informações precisam ser armazenadas em algum lugar , caso contrário, não é possível saber a que /home
está vinculado /users
. Então, onde estão esses dados? É armazenado em alguma região obscura na RAM? Será que findmnt
olhar em /proc
algum lugar?
/proc/self/mountinfo
relativamente recentemente foi reestruturado. Eu estava na minha máquina RHEL6 antes da qual não tinha as informações do caminho, mas minha máquina RHEL7 tem e, como mencionado no seu link, o Wheezy também.
/dev/A
montado em /B
e você faz mount --bind /B /C
, os kernels mais antigos lembram apenas /B → /dev/A
e /C → /dev/A
, eles não se lembram de nenhuma relação entre /B
e /C
. Portanto, desmontar /B
naturalmente não tem efeito /C
. Os kernels mais recentes lembram que /C
era uma montagem obrigatória /B
, mas de uma maneira que não impede /C
que o trabalho continue se /B
for desmontado, não sei exatamente como.
findmnt
você está executando e quais opções você está dando? O meu não imprime dessa maneira e, olhando o código-fonte que parece estar usando, o_PATH_PROC_MOUNTINFO
que parece ser o/proc/self/mountinfo
que também não tem essas informações.