mount(2)

НАЗВА
mount — змонтувати файлову систему

БІБЛІОТЕКА
Стандартна бібліотека C (libc, -lc)

КОРОТКИЙ ОПИС
#include <sys/mount.h>

int mount(const char *джерело, const char *ціль,
          const char *тип_файлової_системи, unsigned long прапорці_монтування,
          const void *_Nullableдані);

ОПИС
mount() долучає файлову систему, яку вказано як джерело (яка часто є шляхом, який посилається на пристрій, але також може бути шляхом до каталогу або файла або фіктивним рядком), до місця (каталогу або файла), який вказано шляхом ціль.

Для монтування файлових систем потрібні відповідні права доступу (Linux: можливість CAP_SYS_ADMIN).

Список значень для аргументу тип_файлової_системи, підтримку яких передбачено у ядрі системи, наведено у файлі /proc/filesystems (наприклад, "btrfs", "ext4", "jfs", "xfs", "vfat", "fuse", "tmpfs", "cgroup", "proc", "mqueue", "nfs", "cifs", "iso9660"). Доступ до додаткових типів можна отримати завантаженням відповідних модулів.

Аргумент дані буде оброблено по-різному різними файловими системами. Типово, це рядок відокремлених комами параметрів, які може бути оброблено для файлової системи. Див. mount(8), щоб дізнатися більше про параметри, які доступні для кожного з типів файлових систем. Цей аргумент може мати значення NULL (бути порожнім), якщо параметрів не задано.

Виклик mount() виконує один із декількох загальних типів дій, залежно від бітів, які вказано аргументом прапорці_монтування. Вибір дії, яку буде виконано, визначається перевіркою бітів, які встановлено в аргументі прапорці_монтування. Перевірки виконуватимуться у такому порядку:

•   Повторно змонтувати наявне монтування: прапорці_монтування включають MS_REMOUNT.

•   Створити монтування-прив'язку: прапорці_монтування включають MS_BIND.

•   Змінити тип поширення наявного монтування: прапорці_монтування включають один з прапорців MS_SHARED, MS_PRIVATE, MS_SLAVE або MS_UNBINDABLE.

•   Пересунути наявне монтування до нового місця: прапорці_монтування включають MS_MOVE.

•   Створити монтування: прапорці_монтування не містять жодного з наведених вище прапорців.

Кожну з цих дій докладно описано нижче на цій сторінці. Можна вказати додаткові прапорці в аргументі прапорці_монтування для внесення змін до поведінки mount(), як це описано нижче.

  Додаткові прапорці монтування
У наведеному нижче списку описано додаткові прапорці, які можна вказати в аргументі прапорці_монтування. Зауважте, що при виконанні деяких типів дій буде проігноровано деякі або усі з цих прапорців, як це описано нижче на цій сторінці.

MS_DIRSYNC (починаючи з Linux 2.5.19)
    Зробити зміни у цій файловій системі синхронними. (Цю властивість можна отримати для окремих каталогів або піддерев ієрархії за допомогою chattr(1).)

MS_LAZYTIME (починаючи з Linux 4.0)
    Зменшити оновлення на диску для часових позначок inode (atime, mtime, ctime) шляхом зберігання цих змін лише в оперативній пам'яті. Часові позначки на диску буде оновлено лише за таких умов:

    •   inode потребує оновлення через деякі зміни, які не пов'язано із часовими позначками файла;

    •   програма використовує fsync(2), syncfs(2) або sync(2);

    •   невилучений inode буде викинуто з оперативної пам'яті;

    •   минуло понад 24 годин з часу, коли inode було записано на диск.

    Цей параметр монтування значно зменшує у кількості дій із запису, які потрібні для оновлення часових позначок inode, особливо mtime та atime. Втім, якщо трапиться аварійне завершення роботи системи, поля atime і mtime на диску можуть розсинхронізуватися, аж до 24 годин.

    Прикладами навантаження, де цей параметр міг би дати суттєві переваги, є частий випадковий запис до попередньо розподілених на диску файлів, а також випадки, де також увімкнено параметр монтування MS_STRICTATIME. (Перевагою поєднання MS_STRICTATIME і MS_LAZYTIME є те, що stat(2) повертатиме належним часом оновлений час доступу (atime), але оновлення atime буде скинуто на диск лише у випадках з наведеного вище списку.)

MS_MANDLOCK
    Виконати обов'язкове блокування файлів у цій файловій системі. (Обов'язкове блокування все ще має бути увімкнено на рівні окремих файлів, як це описано у fcntl(2).) Починаючи з версії Linux 4.5, цей параметр монтування потребує можливості CAP_SYS_ADMIN і ядра, яке налаштовано з використанням параметра CONFIG_MANDATORY_FILE_LOCKING. Обов'язкове блокування було повністю вилучено як застаріле у ядрах Linux 5.15, тому цей прапорець слід вважати застарілим.

MS_NOATIME
    Не оновлювати часи доступу для файлів (усіх типів) у цій файловій системі.

MS_NODEV
    Не дозволяти доступ до пристроїв (особливих файлів) у цій файловій системі.

MS_NODIRATIME
    Не оновлювати час доступу для каталогів у цій файловій системі. Цей прапорець надає доступ до підмножини функціональних можливостей, що надаються MS_NOATIME; тобто, MS_NOATIME неявним чином встановлює MS_NODIRATIME.

MS_NOEXEC
    Не дозволяти виконання програм з цієї файлової системи.

MS_NOSUID
    Не брати до уваги біти set-user-ID і set-group-ID або можливості файла при виконанні програм з цієї файлової системи. Крім того, переходи домену SELinux потребують прав доступу nosuid_transition, що потребує можливості правил nnp_nosuid_transition.

MS_RDONLY
    Змонтувати файлову систему в режимі тільки читання.

MS_REC (починаючи з Linux 2.4.11)
    Використовують у поєднанні із MS_BIND для створення монтування з прив'язкою і у поєднанні із прапорцями типу поширення для рекурсивної зміни типу поширення усіх монтувань у піддереві. Див. нижче, щоб дізнатися більше.

MS_RELATIME (починаючи з Linux 2.6.20)
    Якщо буде виконано доступ до файла у цій файловій системі, оновити час останнього доступу до файла (atime), лише якщо поточне значення atime є меншим або рівним за час останнього внесення змін до файла (mtime) або час останньої зміни стану (ctime). Цей параметр корисний для програм, зокрема mutt(1), які потребують даних щодо того, коли було прочитано файл з часу останнього внесення змін до нього. Починаючи з версії Linux 2.6.30, типовою поведінкою ядра є поведінка, яка забезпечується цим прапорцем (якщо не вказано MS_NOATIME), а для отримання традиційної семантики потрібен прапорець MS_STRICTATIME. Крім того, починаючи з версії Linux 2.6.30, час останнього доступу до файла завжди оновлюється, якщо його вік перевищує 1 день.

MS_SILENT (починаючи з Linux 2.6.17)
    Придушити виведення певних (printk()) повідомлень-попереджень до журналу ядра. Цей прапорець став замінником помилково названого та застарілого прапорця MS_VERBOSE (доступного з часу появи Linux 2.4.12), який мав те саме призначення.

MS_STRICTATIME (починаючи з Linux 2.6.30)
    Завжди оновлювати час останнього доступу (atime) при доступі до файлів у цій файловій системі. (Це типова поведінка ядра до Linux 2.6.30.) Визначення цього прапорця перевизначає ефект встановлення прапорців MS_NOATIME і MS_RELATIME.

MS_SYNCHRONOUS
    Зробити запис у цій файловій системі синхронним (наче вказано прапорець O_SYNC open(2) для усіх відкриттів файлів у цій файловій системі).

MS_NOSYMFOLLOW (починаючи з Linux 5.10)
    Не переходити за символічними посиланням при визначенні шляхів. Попри це, символічні посилання можна буде створювати, а readlink(1), readlink(2), realpath(1) і realpath(3) працюватимуть належним чином.

Починаючи з Linux 2.4, деякі з вказаних вище прапорців можна встановити на основі окремих монтувань, а інші застосувати до суперблоку змонтованої файлової системи, що означає, що усі монтування тієї самої файлової системи спільно використовують ці прапорці. (У попередніх версіях усі прапорці застосовувалися на рівні суперблоку.)

Прапорці для окремих точок монтування є такими:

•   Починаючи з версії Linux 2.4, прапорці MS_NODEV, MS_NOEXEC і MS_NOSUID встановлюються на рівні точки монтування.

•   Додатково, починаючи з Linux 2.6.16: MS_NOATIME і MS_NODIRATIME.

•   Додатково, починаючи з Linux 2.6.20: MS_RELATIME.

Для окремих суперблоків застосовуються такі прапорці: MS_DIRSYNC, MS_LAZYTIME, MS_MANDLOCK, MS_SILENT і MS_SYNCHRONOUS. Початкові значення цих прапорців визначаються при першому монтуванні файлової системи. Їх буде використано для усіх наступних монтувань тієї самої файлової системи. Надалі, параметри прапорців може бути змінено дією з повторного монтування (див. нижче). Такі зміни стануть видимими через усі монтування, які пов'язано із файловою системою.

Починаючи з Linux 2.6.16, MS_RDONLY можна встановлювати або знімати на основі окремої точки монтування, а також суперблоку базової файлової системи. Змонтована файлова система буде придатною до запису, лише якщо ні файлову систему, ні точку монтування буде позначено прапорцем «лише для читання».

  Повторне монтування наявного монтування
Наявне монтування можна повторно змонтувати, вказавши MS_REMOUNT у mountflags. Це надає вам змогу змінювати прапорці_монтування та дані наявного монтування без виконання демонтування і повторного монтування файлової системи. ціль повинна мати таке саме значення, що і у початковому виклику mount().

Аргументи джерело і тип_файлової_системи буде проігноровано.

Аргументи прапорці_монтування і дані мають збігатися за значеннями з початковим викликом mount(), окрім тих параметрів, які має бути змінено.

Можна змінювати такі прапорці_монтування: MS_LAZYTIME, MS_MANDLOCK, MS_NOATIME, MS_NODEV, MS_NODIRATIME, MS_NOEXEC, MS_NOSUID, MS_RELATIME, MS_RDONLY, MS_STRICTATIME (результатом зміни буде зняття прапорців MS_NOATIME і MS_RELATIME) і MS_SYNCHRONOUS. Спроби змінити значення прапорців MS_DIRSYNC і MS_SILENT під час повторного монтування без питань буде проігноровано. Зауважте, що зміни до прапорців окремих суперблоків можна буде переглянути за усіма монтуваннями пов'язаної файлової системи (оскільки прапорці для окремих суперблоків спільно використовуються усіма монтуваннями).

Починаючи з Linux 3.17, якщо не вказано жодного з прапорців MS_NOATIME, MS_NODIRATIME, MS_RELATIME і MS_STRICTATIME у прапорцях_монтування, дія з повторного монтування зберігатиме наявні значення цих прапорців (а не використовуватиме типове значення MS_RELATIME).

Починаючи з Linux 2.6.26, прапорець MS_REMOUNT можна використовувати разом з MS_BIND для зміни прапорців для окремої точки монтування. Це особливо корисно для встановлення або скасування прапорця «лише для читання» для монтування без зміни параметрів файлової системи базової файлової системи. Аргумент data буде проігноровано. Наявні прапорці для окремої точки монтування буде знято і замінено на ті, які вказано в прапорці_монтування. Це означає, що якщо ви хочете зберегти наявні прапорці для окремої точки монтування, вам слід включити їх до mountflags разом із прапорцями для окремої монтування, які ви хочете встановити (або з прапорцями, які ви хочете вилучити). Визначення прапорці_монтування:

    MS_REMOUNT | MS_BIND | MS_RDONLY

зробить доступ за допомогою цієї точки монтування придатним лише для читання (зі зняттям усіх інших прапорців для окремої точки монтування), не впливаючи на інші точки монтування цієї файлової системи.

  Створення монтування з прив'язкою
Якщо до прапорців_монтування включено MS_BIND (доступний з Linux 2.4), буде виконано монтування з прив'язкою. Монтування з прив'язкою робить файл або ієрархію каталогу видимою із іншої точки у у тій самій ієрархії каталогів. Монтування з прив'язкою можуть перетинати межі файлової системи і виходити за межі пісочниць chroot(2).

Аргументи тип_файлової_системи і дані буде проігноровано.

Решту бітів (окрім MS_REC, як це описано нижче) в аргументі прапорці_монтування також буде проігноровано. (Монтування з прив'язкою матиме ті самі параметри монтування, що і базове монтування.) Втім, ознайомтеся із обговоренням щодо повторного монтування вище, щоб дізнатися про спосіб зробити наявне монтування з прив'язкою придатним лише до читання.

Типово, якщо каталог є змонтованим із прив'язкою, буде змонтовано лише цей каталог; якщо у ієрархії каталогів є якісь інші підлеглі монтування, їх не буде змонтовано з прив'язкою. Якщо також вказано прапорець MS_REC, буде виконано рекурсивну дію з монтування з прив'язкою: усі підлеглі монтування у підлеглій ієрархії джерело (окрім неприв'язуваних монтувань) також буде змонтовано з прив'язкою до відповідних місць у підлеглій ієрархії ціль.

  Зміна типу поширення наявного монтування
Якщо до прапорців_монтування включено одне зі значень MS_SHARED, MS_PRIVATE, MS_SLAVE або MS_UNBINDABLE (усі доступні з версії Linux 2.6.15), буде змінено тип поширення наявного монтування. Якщо вказано декілька з цих прапорців, результатом буде помилка.

Єдиними іншими прапорцями, які може бути вказано при зміні типу поширення, є MS_REC (описано нижче) і MS_SILENT (який буде проігноровано).

Аргументи джерело, тип_файлової_системи і дані буде проігноровано.

Призначення прапорців типу поширення є таким:

MS_SHARED
    Зробити це монтування спільним. Події з монтування та демонтування безпосередньо під цим монтуванням поширюватимуться на інші монтування, які є учасниками групи вузлів цього монтування. Поширення тут означає, що ту саму дію з монтування або демонтування буде автоматично виконано для усіх інших монтувань у групі вузлів. І навпаки, події з монтування або демонтування, які виконуватимуться під монтуваннями вузлів, поширюватимуться до цього монтування.

MS_PRIVATE
    Зробити це монтування приватним. Події з монтування і демонтування не поширюватимуться всередину і назовні від цього монтування.

MS_SLAVE
    Якщо це спільне монтування, яке є учасником групи вузлів, яка містить інших учасників, перетворити його на підлегле монтування. Якщо це спільне монтування, яке є учасником групи вузлів, яка не містить інших учасників, перетворити його на приватне монтування. В інших випадках тип поширення монтування буде залишено без змін.

    Якщо монтування є підлеглим, події з монтування або демонтування поширюватимуться до цього монтування з (основної) спільної групи вузлів, учасником якої було раніше це монтування. Події з монтування і демонтування під цим монтуванням не поширюватимуться до жодного вузла.

    Монтування може бути підлеглим монтуванням іншої групи вузлів, одночасно поділяючи події з монтування і демонтування з групою вузлів, учасником якої воно є.

MS_UNBINDABLE
    Зробити це монтування неприв'язним. Таке монтування подібне до приватного, а на додачу, це монтування не можна буде використати як монтування з прив'язкою. Коли виконується рекурсивне монтування з прив'язкою (mount() з прапорцями MS_BIND і MS_REC) для підлеглої ієрархії каталогу, усі неприв'язні монтування у підлеглій ієрархії буде автоматично прибрано (тобто не відтворено) при відтворенні цієї підлеглої ієрархії для відтворення підлеглої ієрархії цілі.

Типово, зміна типу поширення стосується лише монтування ціль. Якщо також вказано прапорець MS_REC у прапорці_монтування, буде також змінено тип поширення для усіх монтувань у цілі.

Докладніший опис типів поширення монтування (включно зі стандартним типом поширення, який надається новим монтуванням), див. mount_namespaces(7).

  Пересування монтування
Якщо прапорці_монтування містить прапорець MS_MOVE (доступний з версії Linux 2.4.18), пересунути підлеглу ієрархію: джерело вказує на наявне монтування, а ціль вказує нове місце, до якого має бути переміщено монтування. Пересування є атомарним: без точки підлеглу ієрархією буде демонтовано.

Решту бітів у аргументі прапорці_монтування буде проігноровано, так само, як аргументи тип_файлової_системи і дані.

  Створення нової точки монтування
Якщо не вказано жодного з прапорців MS_REMOUNT, MS_BIND, MS_MOVE, MS_SHARED, MS_PRIVATE, MS_SLAVE і MS_UNBINDABLE у прапорцях_монтування, mount() виконає типову дію: створення монтування. Джерело вказує на джерело для нового монтування, а ціль вказує на каталог, у якому слід створити точку монтування.

Для внесення змін до поведінки виклику буде використано аргументи тип_файлової_системи і дані і подальші біти, які може бути вказано у прапорцях_монтування.

ПОВЕРНУТЕ ЗНАЧЕННЯ
Якщо функцію буде успішно виконано, буде повернуто нуль. Якщо станеться помилка, буде повернуто -1 і встановлено errno для позначення помилки.

ПОМИЛКИ
Значення помилок, які вказано нижче, є результатом обчислення кодів помилок, які є незалежними від типу файлової системи. У кожного типу файлової системи можуть бути власні спеціалізовані коди помилок і власна спеціалізована поведінка. Див. початковий код ядра Linux, щоб дізнатися більше.

EACCES
    Компонент шляху виявився непридатним для пошуку. (Див. також path_resolution(7).)

EACCES
    Було виконано спробу монтування придатної лише для читання файлової системи без зазначення прапорця MS_RDONLY.

    Файлова система може бути придатною лише для читання з різних причин, зокрема: файлову систему розташовано на придатному лише для читання оптичному диску; файлову систему розташовано на пристрої із фізичним перемикачем, який переведено у стан, який робить диск придатним лише для читання; реалізацію файлової системи було зібрано із підтримкою лише читання; або під час початкового монтування файлової системи було виявлено помилки, отже файлову систему позначено як придатну лише для читання і її не може бути повторно змонтовано для читання і запису (аж до виправлення помилок).

    У деяких файлових системах, замість цього, буде повернуто помилку EROFS у відповідь на спробу монтування придатної лише для читання файлової системи.

EACCES
    Блоковий пристрій source розташовано у файловій системі, яку змонтовано з параметром MS_NODEV.

EBUSY
    Виконано спробу насаджування нової точки монтування безпосередньо на наявну точку монтування, яку було створено у цьому просторі назв монтування із тим самим джерелом і ціллю.

EBUSY
    джерело не може бути повторно змонтовано у режимі лише читання, оскільки на ньому усе ще зберігаються файли, які відкрито для запису.

EFAULT
    Один із аргументів-вказівників вказує на місце поза простором адрес користувача.

EINVAL
    джерело містить некоректний суперблок.

EINVAL
    Було виконано спробу повторного монтування (MS_REMOUNT), але джерело не було вже змонтовано до цілі.

EINVAL
    Було виконано спробу пересування (MS_MOVE), але в ієрархії монтування у джерело включено непридатні до прив'язування монтування, а ціль є монтуванням, типом поширення якого є MS_SHARED.

EINVAL
    Було виконано спробу пересування (MS_MOVE), але батьківське монтування монтування джерело належить до типу поширення MS_SHARED.

EINVAL
    Було виконано спробу пересування (MS_MOVE), але джерело не було монтуванням або було «/».

EINVAL
    Було надіслано запит щодо дії з прив'язки (MS_BIND), де джерело вказує на магічне посилання простору назв монтування (тобто магічне посилання /proc/pid/ns/mnt або монтування з прив'язкою до такого посилання), а типом поширення батьківського монтування цілі було MS_SHARED, але поширення бажаного монтування з прив'язкою може призвести до циклічних залежностей, що може заважати будь-якому вивільненню простору назв монтування.

EINVAL
    У параметрі прапорці_монтування містилося декілька MS_SHARED, MS_PRIVATE, MS_SLAVE або MS_UNBINDABLE.

EINVAL
    У параметрі прапорці_монтування міситься MS_SHARED, MS_PRIVATE, MS_SLAVE або MS_UNBINDABLE, а також міститься прапорець, відмінний від MS_REC або MS_SILENT.

EINVAL
    Спроба монтування прив'язки для непридатного до прив'язки монтування.

EINVAL
    У непривілейованому просторі назв монтування (тобто просторі назв монтування, власником якого є простір назв користувача, який було створено непривілейованим користувачем) було виконано спробу монтування з прив'язкою (MS_BIND) без визначення (MS_REC), яка б відкрила ієрархію файлової системи під одним з підлеглих монтувань каталогу, прив'язка якого виконується.

ELOOP
    Під час обробки шляху виявлено забагато посилань.

ELOOP
    Було виконано спробу пересування, а ціль є нащадком джерела.

EMFILE
    (У випадку, коли не потрібен блоковий пристрій:) Таблицю фіктивних пристроїв переповнено.

ENAMETOOLONG
    Довжина шляху перевищує MAXPATHLEN.

ENODEV
    У ядрі не налаштовано тип_файлової_системи.

ENOENT
    Шлях є порожнім або містить компонент, якого не існує.

ENOMEM
    Ядру не вдалося розмістити у пам'яті вільну сторінку для копіювання туди назв файлів або даних.

ENOSPC
    Після цього системного виклику у деяких просторах назв монтування кількість монтувань перевищить обмеження. Цим обмеженням керує параметр /proc/sys/fs/mount-max, див. proc_sys_fs(5), щоб дізнатися більше про це обмеження. Це обмеження застосовується як до простору назв монтування, де відбувається дія з монтування, так і до будь-яких просторів назв монтування, на які поширюватиметься монтування. Див. mount_namespaces(7), щоб дізнатися більше про простори назв монтування та поширення монтування.

ENOTBLK
    джерело не є блоковим пристроєм (і пристрій є обов'язковим).

ENOTDIR
    ціль або префікс джерела, не є каталогом.

ENXIO
    Основний номер блокового пристрою джерело перебуває поза припустимим діапазоном.

EPERM
    Команда, з якої викликано функцію, не має потрібних прав доступу.

EPERM
    Було виконано спробу змінити (MS_REMOUNT) прапорець MS_RDONLY, MS_NOSUID або MS_NOEXEC або один з прапорців «atime» (MS_NOATIME, MS_NODIRATIME, MS_RELATIME) наявного монтування, але монтування заблоковано; див. mount_namespaces(7).

EROFS
    Було виконано спробу монтування придатної лише для читання файлової системи без зазначення прапорця MS_RDONLY. Див. EACCES вище.

СТАНДАРТИ
Linux.

ЖУРНАЛ
Визначення MS_DIRSYNC, MS_MOVE, MS_PRIVATE, MS_REC, MS_RELATIME, MS_SHARED, MS_SLAVE, MS_STRICTATIME та MS_UNBINDABLE було додано до заголовків glibc у версії 2.12.

Починаючи Linux 2.4, одну файлову систему може бути змонтовано до декількох точок монтування, а декілька монтувань може бути накладено на ту саму точку монтування.

Аргумент прапорці_монтування може містити магічне число 0xC0ED (MS_MGC_VAL) у верхніх 16 бітах. (Усі інші прапорці, обговорення яких можна знайти у розділі «ОПИС», займають нижні за порядком 16 бітів прапорців_монтування.) Визначення MS_MGC_VAL було необхідним у версіях ядра до 2.4, але, починаючи з Linux 2.4, вже не є необхідним — його буде проігноровано, якщо його вказано.

Початковий прапорець MS_SYNC було перейменовано на MS_SYNCHRONOUS у 1.1.69, коли було додано різні MS_SYNC до <mman.h>.

До Linux 2.4 спроба виконати програму із set-user-ID або set-group-ID для файлової системи, яку змонтовано з MS_NOSUID, завершиться помилкою з EPERM. Починаючи з Linux 2.4, у цьому випадку біти set-user-ID і set-group-ID буде просто без повідомлень проігноровано.

ПРИМІТКИ

  Простори назв монтування
Починаючи з версії Linux 2.4.19, у Linux передбачено простори назв монтування. Простір назв монтування — це набір монтувань файлової системи, які є видимими для процесу. Простори назв монтування можуть поділятися (і, зазвичай, поділяються) декількома процесами, а зміни у просторі назв (тобто монтування і демонтування) у результаті роботи одного процесру є видимими для усіх інших процесів, які спільно використовують той самий простір назв. (Ситуацію у Linux до версії 2.4.19 можна розглядати як таку, коли один простір назв спільно використовували усі процеси у системі.)

Дочірній процес, створений fork(2), матиме той самий простір назв монтування, що і батьківський; простір назв монтування зберігається у межах execve(2).

Процес може отримувати приватний простір назв монтування, якщо його було створено за допомогою прапорця CLONE_NEWNS clone(2). У цьому випадку його новий простір назв буде ініціалізовано так, щоб він був копією простору назв процесу, який викликав clone(2). Також це можливе, якщо процес викликає unshare(2) із прапорцем CLONE_NEWNS, що спричиняє те, що простір монтування процесу виклику отримує приватну копію простору назв, який він раніше поділяв із іншими процесами, отже наступні монтування і демонтування з процесу виклику будуть невидимими для інших процесів (окрім дочірніх процесів, які процес виклику надалі створюватиме), і навпаки.

Щоб дізнатися про простори назв монтувань, ознайомтеся із сторінкою підручника щодо mount_namespaces(7).

  Батьківські зв'язки між монтуваннями
У кожного монтування є батьківське монтування. Загалом, родинні зв'язки усіх монтувань визначають єдину ієрархію каталогів, яку бачать процес у просторі назв монтування.

Батьківське монтування нового монтування визначається при створенні монтування. У звичному випадку батьківським монтуванням нового монтування є монтування файлової системи, яке містить каталог або файл, до якого долучено нове монтування. У випадку, коли нове монтування розташовано у стосі вище за наявне монтування, батьківським монтуванням нового монтування буде попереднє монтування, яке було у стосі у відповідному місці.

Батьківський взаємозв'язок між монтуваннями можна виявити за допомогою файла /proc/pid/mountinfo (див. нижче).

  /proc/pid/mounts і /proc/pid/mountinfo
Специфічний для Linux файл /proc/pid/mounts надає доступ до списку точок монтування у просторі назв монтування процесу із вказаним ідентифікатором. Крім того, файл /proc/pid/mountinfo надає доступ до навіть ширших відомостей щодо монтувань, зокрема типу поширення та даних щодо ідентифікатора монтування, що уможливлює виявлення батьківських зв'язків між монтуваннями. Подробиці щодо цього файла наведено на сторінках підручника щодо proc(5) і mount_namespaces(7).

ДИВ. ТАКОЖ
mountpoint(1), chroot(2), FS_IOC_SETFLAGS(2const), mount_setattr(2), pivot_root(2), umount(2), mount_namespaces(7), path_resolution(7), findmnt(8), lsblk(8), mount(8), umount(8)

ПЕРЕКЛАД
Український переклад цієї сторінки посібника виконано Maxim V. Dziumanenko <mvd@mylinux.com.ua> і Yuri Chornoivan <yurchor@ukr.net>

Цей переклад є безкоштовною документацією; будь ласка, ознайомтеся з умовами GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html). НЕ НАДАЄТЬСЯ ЖОДНИХ ГАРАНТІЙ.

Якщо ви знайшли помилки у перекладі цієї сторінки підручника, будь ласка, надішліть електронний лист до списку листування перекладачів: trans-uk@lists.fedoraproject.org.