Wiele osób twierdzi, że Linux nie przechowuje informacji o łączeniach bindów, więc nie ma sposobu na uzyskanie listy ich i ich źródeł. Oto kilka przykładów:
z jednego z komentarzy tutaj :
IIRC ta informacja nie jest nigdzie przechowywana: po tym
mount --bind
, dwie kopie są równoważne, nie ma jednej, która byłaby bardziej „oryginalna” niż druga. W końcu nie byłoby oryginału, gdybyś już odmontował/mnt
.-
Jedynym sposobem, aby zapamiętać, które montowania były powiązaniami, jest dziennik poleceń montowania, które pozostały
/etc/mtab
. Operacja łączenia z łączeniem jest wskazywana przez opcję łączenia z łączeniem (co powoduje ignorowanie typu systemu plików). Ale mount nie ma opcji, aby wyświetlić listę tylko systemów plików zamontowanych z określonym zestawem opcji. -
To celowe. Oba punkty montowania są w pełni równe pod każdym względem, więc jądro nie utrzymuje żadnych flag, aby je rozróżnić.
Powyższe jest jednak nonsensem. Narzędzie findmnt
jest w stanie wyświetlić listę ścieżek źródłowych montowań powiązań (w formie device[source-path]
; Próbuję też, aby wyświetlała tylko ścieżkę źródłową, a nie urządzenie). Jeśli jądro Linuksa ma utrzymywać mocowanie do wiązania, to informacje te muszą być gdzieś przechowywane , w przeciwnym razie nie wiedziałby, że /home
jest to związane /users
. Więc gdzie są te dane? Czy jest przechowywany w jakimś niejasnym regionie w pamięci RAM? Czy gdzieś findmnt
zagląda /proc
?
/proc/self/mountinfo
stosunkowo niedawno został zrestrukturyzowany. Byłem na mojej maszynie RHEL6, przed którą nie miałem informacji o ścieżce, ale moja maszyna RHEL7 ma i jak wspomniano w twoim linku, Wheezy również.
/dev/A
jest zamontowany w, /B
a ty robisz mount --bind /B /C
, starsze jądra pamiętają tylko /B → /dev/A
i /C → /dev/A
nie pamiętają żadnych relacji między /B
i /C
. Zatem odmontowanie w /B
naturalny sposób nie ma wpływu /C
. Nowsze jądra pamiętają, że /C
był to montaż typu bind /B
, ale w sposób, który nie przeszkadza w /C
kontynuowaniu pracy, jeśli /B
jest odmontowany, nie wiem dokładnie jak.
findmnt
i jakie masz opcje? Mój nie drukuje go w ten sposób i patrząc na kod źródłowy,_PATH_PROC_MOUNTINFO
którego używa, który/proc/self/mountinfo
nie zawiera tych informacji.