Provided by: manpages-ru-dev_4.19.0-7_all bug

ИМЯ

       umount, umount2 - размонтирует файловую систему

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <sys/mount.h>

       int umount(const char *target);
       int umount2(const char *target, int flags);

ОПИСАНИЕ

       Вызовы  umount()  и  umount2()  удаляют  подключение  (самого  верхнего уровня) к файловой
       системе, примонтированной к target.

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

       В  Linux  2.1.116  добавлен  системный  вызов  umount2(),   который,   подобно   umount(),
       размонтирует   заданный   объект,   но   позволяет  указать  дополнительные  флаги  flags,
       контролирующие поведение операции:

       MNT_FORCE (начиная с Linux 2.1.116)
              Попросить   файловую   систему   прервать   ожидающие   запросы   перед    попыткой
              размонтирования.   Это  может  позволить  выполнить  размонтирование  без  ожидания
              недоступного сервера, но может привести к  потере  данных.  Если  после  прерывания
              запросов    некоторые   процессы   продолжат   обращаться   к   файловой   системе,
              размонтирование не будет выполнено. В Linux 4.12 MNT_FORCE поддерживается только  в
              следующих  файловых  системах:  9p  (начиная с Linux 2.6.16), ceph (начиная с Linux
              2.6.34), cifs (начиная с Linux 2.6.12),  fuse  (начиная  с  Linux  2.6.16),  lustre
              (начиная с Linux 3.11) и NFS (начиная с Linux 2.1.116).

       MNT_DETACH (начиная с Linux 2.4.11)
              Perform  a  lazy  unmount: make the mount unavailable for new accesses, immediately
              disconnect the filesystem and all filesystems mounted below it from each other  and
              from  the mount table, and actually perform the unmount when the mount ceases to be
              busy.

       MNT_EXPIRE (начиная Linux 2.6.8)
              Mark the mount as expired.  If a mount is not currently in  use,  then  an  initial
              call  to umount2()  with this flag fails with the error EAGAIN, but marks the mount
              as expired.  The mount remains expired as long as it isn't accessed by any process.
              A  second  umount2()   call  specifying MNT_EXPIRE unmounts an expired mount.  This
              flag cannot be specified with either MNT_FORCE or MNT_DETACH.

       UMOUNT_NOFOLLOW (начиная с Linux 2.6.34)
              Не следовать по ссылке, если target является символьной ссылкой. Это флаг  помогает
              избежать  проблем с безопасностью в программах принадлежащих root и с установленным
              битом   set-user-ID,   которые    позволяют    непривилегированным    пользователям
              размонтировать файловые системы.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       On  success, zero is returned.  On error, -1 is returned, and errno is set to indicate the
       error.

ОШИБКИ

       Коды ошибок, описанные ниже, не зависят  от  типа  файловой  системы.  У  каждой  файловой
       системы  могут  быть свои коды ошибок и своё собственное поведение. Подробности смотрите в
       исходном коде ядра Linux.

       EAGAIN Вызов umount2() с флагом MNT_EXPIRE успешно пометил незанятую файловую систему  как
              недействительную.

       EBUSY  Объект target не может быть размонтирован, так как он занят.

       EFAULT Объект target указывает вне адресного пространства, доступного пользователю.

       EINVAL Значение target не является точкой монтирования.

       EINVAL target is locked; see mount_namespaces(7).

       EINVAL Вызов umount2() был вызван с флагом MNT_EXPIRE и с MNT_DETACH или MNT_FORCE.

       EINVAL (начиная с Linux 2.6.34)
              Вызов umount2() был сделан с неверным значением флага flags.

       ENAMETOOLONG
              Значение пути длиннее чем MAXPATHLEN.

       ENOENT Указан пустой путь или одна из его частей не существует.

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

       EPERM  Вызывающий процесс не имеет требуемых привилегий.

ВЕРСИИ

       MNT_DETACH and MNT_EXPIRE are available since glibc 2.11.

СТАНДАРТЫ

       Эти функции есть только в Linux, и они не должны использоваться в переносимых программах.

ЗАМЕЧАНИЯ

   umount() and shared mounts
       Shared  mounts  cause  any mount activity on a mount, including umount() operations, to be
       forwarded to every shared mount in the peer group and  every  slave  mount  of  that  peer
       group.   This means that umount()  of any peer in a set of shared mounts will cause all of
       its peers to be unmounted and all of their slaves to be unmounted as well.

       This propagation of unmount activity can be particularly surprising on systems where every
       mount is shared by default.  On such systems, recursively bind mounting the root directory
       of the filesystem onto a subdirectory and then later  unmounting  that  subdirectory  with
       MNT_DETACH will cause every mount in the mount namespace to be lazily unmounted.

       To ensure umount()  does not propagate in this fashion, the mount may be remounted using a
       mount(2)  call with a mount_flags argument that includes both MS_REC and MS_PRIVATE  prior
       to umount()  being called.

   Историческая справка
       Изначально функция umount() вызывалась как umount(device) и возвращала ENOTBLK при попытке
       работы с любым не блочным устройством. В Linux 0.98p4 был добавлен вызов  umount(dir)  для
       поддержки анонимных устройств. В Linux 2.3.99-pre7 был убран вызов umount(device), остался
       только umount(dir) (теперь устройства могут быть  подключены  более  чем  к  одной  точке,
       поэтому указания только устройства недостаточно).

СМ. ТАКЖЕ

       mount(2), mount_namespaces(7), path_resolution(7), mount(8), umount(8)

ПЕРЕВОД

       Русский    перевод    этой    страницы    руководства    был    сделан   Azamat   Hackimov
       <azamat.hackimov@gmail.com>,   Dmitriy    Ovchinnikov    <dmitriyxt5@gmail.com>,    Dmitry
       Bolkhovskikh  <d20052005@yandex.ru>,  Katrin Kutepova <blackkatelv@gmail.com>, Yuri Kozlov
       <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе  этой  страницы  руководства,  пожалуйста,  отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.