umount(2) | System Calls Manual | umount(2) |
umount, umount2 — демонтування файлової системи
Стандартна бібліотека C (libc, -lc)
#include <sys/mount.h>
int umount(const char *ціль); int umount2(const char *ціль, int прапорці);
umount() і umount2() вилучають долучення (найвищої) файлової системи, яку змонтовано до цілі.
Для демонтування файлових систем потрібні відповідні права доступу (Linux: можливість CAP_SYS_ADMIN).
У Linux 2.1.116 додано системний виклик umount2(), який, подібно до umount(), демонтує ціль, але уможливлює додаткове керування прапорцями поведінкою виконаної дії:
Якщо функцію буде успішно виконано, буде повернуто нуль. Якщо станеться помилка, буде повернуто -1 і встановлено errno для позначення помилки.
Значення помилок, які вказано нижче, є результатом обчислення кодів помилок, які є незалежними від типу файлової системи. У кожного типу файлової системи можуть бути власні спеціалізовані коди помилок і власна спеціалізована поведінка. Див. початковий код ядра Linux, щоб дізнатися більше.
MNT_DETACH і MNT_EXPIRE доступні у glibc, починаючи з версії 2.11.
Ці функції є специфічними для Linux. Ними не слід користуватися у програмах, які підлягають портуванню на інші операційні системи.
Спільне монтування спричиняє переспрямування будь-яких дій із монтуванням, зокрема дій umount(), до будь-якого спільного монтування у групі вузлів та будь-якого підлеглого монтування у цій групі вузлів. Це означає, що виконання umount() для будь-якого вузла у наборі спільних монтувань спричинятиме демонтування усіх його вузлів, а також демонтування усіх його підлеглих монтувань.
Таке поширення дій з демонтування може бути дещо несподіваним у системах, де усі монтування є типово спільними. У таких системах рекурсивне монтування з прив'язуванням кореневого каталогу файлової системи до підкаталогу, а наступне демонтування цього підкаталогу за допомогою MNT_DETACH призведе до лінивого демонтування усіх монтувань у просторі назв монтування.
Щоб заборонити поширення umount() у цей спосіб, монтування можна повторно змонтувати за допомогою виклику mount(2) із аргументом прапорці_монтування, який включатиме одразу MS_REC і MS_PRIVATE, перед викликом umount().
Виклик початкової версії функції umount() здійснювався як umount(пристрій) і повертав ENOTBLK при виклику із чимось відмінним від блокового пристрою. У Linux 0.98p4 було додано виклик umount(dir) для реалізації підтримки анонімних пристроїв. У Linux 2.3.99-pre7 виклик umount(пристрій) було вилучено — лишився лише виклик umount(катало) (оскільки з того часу пристрої можна було монтувати у декілька місць, тому визначення пристрою стало недостатньо).
mount(2), mount_namespaces(7), path_resolution(7), mount(8), umount(8)
Український переклад цієї сторінки посібника виконано Maxim V. Dziumanenko <mvd@mylinux.com.ua> і Yuri Chornoivan <yurchor@ukr.net>
Цей переклад є безкоштовною документацією; будь ласка, ознайомтеся з умовами GNU General Public License Version 3. НЕ НАДАЄТЬСЯ ЖОДНИХ ГАРАНТІЙ.
Якщо ви знайшли помилки у перекладі цієї сторінки підручника, будь ласка, надішліть електронний лист до списку листування перекладачів: trans-uk@lists.fedoraproject.org.
4 грудня 2022 року | Сторінки підручника Linux 6.03 |