O Linux expõe informações sobre sistemas de arquivos montados em /proc/mounts
. As opções de compartilhamento são muito recentes para serem exibidas nesse arquivo, mas aparecem em /proc/self/mountinfo
¹. A documentação para este arquivo está em filesystems/proc.txt
na documentação do kernel. O arquivo é gerado por show_mountinfo
in fs/namespace.c
. Uma linha de amostra é assim:
42 18 98:0 / /mount_point rw shared:1 - ext3 /dev/sda1 rw,errors=continue
^^^^^^^^
O formato dos primeiros 6 campos é fixo. Em seguida, aparecem zero ou mais campos marcados, como shared:GROUP
, master:GROUP
, propagate_from:GROUP
ou unbindable
, indicando a função da montagem em um grupo de pares, se houver. O -
introduz a parte específica do sistema de arquivos, sempre composta do nome do tipo de sistema de arquivos, nome do dispositivo e opções de montagem específicas do sistema de arquivos.
Assim:
</proc/self/mountinfo awk -vmount_point='/mount/point' '
$5 == mount_point {
i = 7;
while ($i != "-") {if ($i ~ /^shared:/) exit 0; ++i}
exit 1;
}'
¹ Em kernels Linux recentes, cada processo tem seu próprio namespace de sistema de arquivos e /proc/mounts
é um link simbólico para /proc/self/mounts
.