Дуже багато людей говорять про те, що Linux не зберігає інформацію про прив'язування кріплень, тому немає можливості отримати список їх та їх джерел. Ось кілька прикладів:
-
IIRC ця інформація ніде не зберігається: після того
mount --bind
, як дві копії є рівнозначними, не існує жодної, яка є "оригінальнішою", ніж інша. Зрештою, оригіналу не могло бути, якби ви його вже відключили/mnt
. -
Таким чином, єдиний спосіб запам'ятати, які кріплення були прив’язаними кріпленнями - це журнал команд монтування, що залишилися
/etc/mtab
. Операція кріплення прив’язки позначається параметром прив'язки (що призводить до ігнорування типу файлової системи). Але mount не має можливості перелічити лише файлові системи, встановлені з певним набором наборів параметрів. -
Це навмисно. Обидві точки монтажу повністю рівні в усіх відношеннях, тому ядро не зберігає жодних прапорів для їх розмежування.
Все вище - це нісенітниця. Інструмент findmnt
може перелічити вихідні шляхи прив'язки кріплення (у вигляді device[source-path]
; я також намагаюся дозволити йому вказати лише вихідний шлях, а не пристрій). Якщо ядро Linux має підтримувати прив'язку, то ця інформація повинна зберігатися десь , інакше воно не могло б знати, на що /home
це пов'язано /users
. То де ж ці дані? Чи зберігається вона в якомусь незрозумілому регіоні оперативної пам’яті? Є чи findmnt
дивитися в /proc
де - небудь?
/proc/self/mountinfo
відносно недавно була реструктурована Я був на моїй машині RHEL6, перед якою не було інформації про шлях, але моя машина RHEL7 так і є, як згадується у вашому посиланні.
/dev/A
це встановлено у /B
вас, ви mount --bind /B /C
старіші ядра пам’ятаєте лише, /B → /dev/A
і /C → /dev/A
вони не пам’ятають жодних зв’язків між /B
і /C
. Тож відключення /B
природно ніяк не впливає /C
. Новіші ядра пам’ятають, що це /C
була прив'язка /B
, але таким чином, який не заважає /C
продовжувати працювати, якщо /B
він відключений, я не знаю, як саме.
findmnt
запущено та які варіанти ви надаєте? Шахта не роздруковує його таким чином і, дивлячись на вихідний код, який він, як видається, використовує,_PATH_PROC_MOUNTINFO
який виглядає,/proc/self/mountinfo
який також не містить цієї інформації.