Устройство Linux / Объяснение

/proc/PID/mountinfo: монтирования глазами процесса

Разберите структуру mountinfo, найдите разделитель полей и отличите источник файловой системы от точки монтирования в пространстве выбранного процесса.

Средний8 минОбщие принципы LinuxLinux · понятия и интерфейсыBash · pipeline semantics

Один путь, разные видимые файлы

Программа и администратор обращаются к одинаковому пути, но видят разные данные. Помимо прав и опечаток проверьте пространство монтирования. Путь имеет смысл относительно окружения процесса, а не только как строка символов.

mountinfo помогает выяснить, какие монтирования видны конкретному PID. Мы прочитаем несколько записей собственной оболочки и разберём структуру, не выполняя mount или umount и не меняя доступное файловое дерево.

Корень монтирования и точка подключения

Слева в записи находятся идентификаторы монтирования и родителя, major:minor устройства, корень внутри файловой системы, точка монтирования и её опции. Затем идут необязательные поля до отдельного дефиса. Справа от дефиса указаны тип файловой системы, источник и опции superblock.

Не рассчитывайте найти тип файловой системы всегда в одной абсолютной колонке: число необязательных полей меняется. Root и mount point тоже не синонимы. Для bind-монтирования корень может обозначать лишь часть исходной файловой системы.

Откройте записи выбранного PID

Пример выводит начало файла и записи procfs. Фильтр по строке « - proc » ищет тип после разделителя, а не произвольное совпадение слова proc в пути.

Локальная Linux-система
mount_pid=$$
head -n 6 "/proc/$mount_pid/mountinfo"
grep -F " - proc " "/proc/$mount_pid/mountinfo"

Проследите путь до источника

Выберите одну строку и сначала найдите отдельный дефис. Разберите правую часть, затем вернитесь к root и mount point слева. Такой порядок уменьшает риск прочитать optional field как тип файловой системы.

Для самостоятельного примера вообразите root /datasets, а mount point /work/input. Файлы процесса под /work/input относятся к выбранному поддереву /datasets источника. Из этого ещё не следует, что путь /datasets доступен самому процессу напрямую. При сравнении контейнера и хоста запишите PID каждой стороны.

Проверьте своё рассуждение

Задача: одинаковый major:minor найден у двух записей с разными точками подключения. Обязательно ли одна строка ошибочная?

Нет. Один источник может быть представлен несколькими монтированиями. Сравните root, mount point и идентификаторы: файловая система и место её подключения — разные сущности.

Не восстанавливайте дерево слепой разбивкой

Пути могут содержать экранированные символы, идентификаторы переиспользуются, а родительская запись может быть скрыта корнем процесса. Для автоматического анализа нужен разбор формата, а не случайный номер колонки. Наблюдение из ограниченного контейнера не показывает всю файловую картину хоста.

Технические источники

Использованы для проверки поведения. Объяснения и учебные сценарии созданы для проекта.

  • Linux man-pages — proc_pid_mountinfo(5)

Проверка текста: 2026-09-11. Нативное исполнение на всей матрице дистрибутивов ещё не подтверждено.

Нужны собственная Linux-система, смонтированный procfs и Bash. Доступность полей зависит от ядра, его конфигурации, прав и пространств имён. Примеры только читают диагностические интерфейсы; браузерный симулятор их не реализует.

От материала к практике

Выберите следующую тему в каталоге Linux или проверьте знакомые команды в учебном терминале.

Поиск по Linux

Поиск локальный. ↑ ↓ — перейти к результату, Enter — открыть.

Навигация