Многие люди продолжают утверждать, что Linux не хранит информацию о bind mounts, поэтому нет способа получить их список и их источники. Вот некоторые примеры:
из одного из комментариев здесь :
IIRC эта информация нигде не хранится: после того
mount --bind
, как две копии эквивалентны, нет ни одной, которая более «оригинальна», чем другая. Ведь не может быть оригинала, если вы уже разобрались/mnt
.из ответа на этом сайте :
Таким образом, единственный способ запомнить, какие монтирования были bind mounts - это журнал оставленных в нем команд монтирования
/etc/mtab
. Операция монтирования связывания указывается с помощью опции монтирования связывания (которая приводит к игнорированию типа файловой системы). Но mount не имеет возможности перечислять только файловые системы, смонтированные с определенным набором опций.-
Это намеренно. Обе точки монтирования полностью одинаковы во всех отношениях, поэтому ядро не сохраняет никаких флагов для их различения.
Выше чепуха, хотя. Инструмент findmnt
может перечислять исходные пути монтируемых привязок (в форме device[source-path]
; я также пытаюсь заставить его перечислять только исходный путь, а не устройство). Если ядро Linux должно поддерживать монтирование, тогда эта информация должна храниться где-то , иначе она не может знать, с чем /home
она связана /users
. Так где эти данные? Хранится ли он в какой-то непонятной области в ОЗУ? Есть ли findmnt
смотреть в /proc
где - нибудь?
/proc/self/mountinfo
сравнительно недавно была реструктурирована. Я был на моей машине RHEL6, у которой раньше не было информации о пути, но моя машина RHEL7 делает, и, как упоминалось в вашей ссылке, Wheezy также делает.
/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
что в нем тоже нет этой информации.