The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

mount (2)
  • mount (1) ( Solaris man: Команды и прикладные программы пользовательского уровня )
  • mount (2) ( Solaris man: Системные вызовы )
  • mount (2) ( FreeBSD man: Системные вызовы )
  • >> mount (2) ( Русские man: Системные вызовы )
  • mount (2) ( Linux man: Системные вызовы )
  • mount (8) ( FreeBSD man: Команды системного администрирования )
  • mount (8) ( Русские man: Команды системного администрирования )
  • mount (8) ( Linux man: Команды системного администрирования )
  • Ключ mount обнаружен в базе ключевых слов.
  •  

    НАЗВАНИЕ

    mount, umount - подключает и отключает файловые системы  

    СИНТАКСИС

    #include <sys/mount.h>

    int mount(const char *source, const char *target, const char *filesystemtype, unsigned long mountflags, const void *data);

    int umount(const char *target);

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

    ОПИСАНИЕ

    mount подключает файловую систему, определяемую source (обычно это имя является названием устройства, но может также быть именем каталога или dummy), к каталогу, заданному в target.

    umount и umount2 отключает (самую последнюю) файловую систему, подключенную к target.

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

    Значения для аргумента filesystemtype поддерживаемые ядром, перечислены в /proc/filesystems (например: "minix", "ext2", "msdos", "proc", "nfs", "iso9660" и т.п.). остальные типы могут стать доступными, если будут загружены соответствующие модули.

    Аргумент mountflags может иметь "волшебное" число 0xC0ED (MS_MGC_VAL) в основных 16 битах (это требовалось в версиях ядра вплоть до 2.4, но более не требуется и игнорируется, даже если указано), а остальные флаги подключения (как определено в <linux/fs.h> для libc4 и libc5 и в <sys/mount.h> для glibc2) в дополнительных 16 битах:

    MS_BIND (начиная с Linux 2.4) Выполнить привязку подключения, при этом файл или каталог становятся видимыми в других точках внутри файловой системы. Привязки подключения могут нарушать ограничения файловой системы и лимиты chroot(2).

    Аргументы filesystemtype, mountflags, и data игнорируются.

    MS_DIRSYNC
    (начиная с Linux 2.5.19.) Осуществлять изменения каталогов на этой файловой системе синхронно (Это свойство может быть получено для отдельных каталогов или дерева подкаталогов, используя chattr(8).)
    MS_MANDLOCK
    Разрешить жесткую блокировку файлов в этой файловой системе. (Жесткая блокировка все равно сначала должна быть включена для файлов, как описано в fcntl(2).)
    MS_MOVE
    Переместить подкаталоги source указывает на существующую точку подключения, а target определяет новое расположение. Перемещение производится на самом низком уровне, и ни в один момент подкаталог не будет являться "отключенным". Аргументы filesystemtype, mountflags, и data игнорируются.
    MS_NOATIME
    Не обновлять время доступа для (всех типов) файлов в этой файловой системе.
    MS_NODEV
    Запретить доступ к устройствам (особым файлам) в этой файловой системе.
    MS_NODIRATIME
    Не обновлять время доступа для каталогов в этой файловой системе.
    MS_NOEXEC
    Запретить программам исполнение в этой файловой системе.
    MS_NOSUID
    Не учитывать биты set-UID и set-GID при исполнении программ в этой файловой системе.
    MS_RDONLY
    Подключать файловую систему в режиме только-для-чтения.
    MS_REMOUNT
    Переподключить уже существующее подключение. При этом можно изменить mountflags и data уже существующего подключения без фактического отключения-подключения файловой системы. source и target должны соответствовать значениям, указанным для mount() в первом вызове (при начальном подключении); параметр filesystemtype игнорируется.
    MS_SYNCHRONOUS
    Осуществлять записи на эту файловую систему синхронно (как если бы флаг O_SYNC для open(2) был указан для всех файлах, открытых на этой файловой системе).

    Начиная с Linux 2.4 и далее, флаги MS_NODEV, MS_NOEXEC, и MS_NOSUID можно устанавливать для каждого отдельного подключения.

    Аргумент data интерпретируется разными файловыми системами. Обычно это строка опций, разделенных запятой, понимаемых этим типом файловой системы. Смотрите mount(8) для подробной информации об опциях для каждого типа файловой системы.

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

    MNT_FORCE
    Принудительно отключать, даже если устройство занято. (Начиная с 2.1.116. Только для подключений NFS.)
    MNT_DETACH
    Выполнить отложенное отключение: точка подключения становится недоступной для новых запросов о доступе, но фактически отключается, когда перестает быть занятой (снимаются все текущие запросы и работы с файловой системой). (Начиная с 2.4.11.)
     

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

    При удачном завершении вызова возращаемое значение равно нулю. При ошибке возвращается -1, а переменной errno присваивается номер ошибки.  

    НАЙДЕННЫЕ ОШИБКИ

    Коды ошибок, описанные ниже, не зависят от типа запускаемой файловой системы. У каждой файловой системы могут быть свои коды ошибок и свое собственное поведение. Подробности смотрите в исходных текстах ядра.
    EPERM
    Функция вызвана не суперпользователем.
    ENODEV
    Такой тип filesystemtype не определен в ядре.
    ENOTBLK
    Source не является блочным устройством (если устройство было запрошено).
    EBUSY
    Source уже подключен, или его нельзя вновь запустить в режиме "только для чтения", вследствие того, что в нем все еще есть открытые для записи файлы, или устройство не может быть подключено к каталогу target потому, что каталог target занят (является рабочим каталогом некоторого процесса, точкой подключения другого устройства, в нем есть открытые файлы и т.п.).
    EINVAL
    Source содержит неправильный суперблок. Или была сделана попытка переподключения source, а он не подключен к каталогу target. Или была сделана попытка перемещения, а source не является точкой подключения, или является "/". Или была попытка отключения каталога, а target не является точкой подключения ни одного из устройств.
    ENOTDIR
    Второй аргумент, или префикс первого аргумента не являются именами каталогов.
    EFAULT
    Один из аргументов-указателей указывает на каталог за пределами адресного пространства.
    ENOMEM
    Ядро не может выделить свободную страницу памяти для копирования имен файлов или данных.
    ENAMETOOLONG
    Длина полного имени файла превысила MAXPATHLEN.
    ENOENT
    Путь пуст или содержит несуществующий компонент.
    ELOOP
    Во время разбора имен найдено слишком много ссылок. Или сделана попытка перемещения, а target является подкаталогом source.
    EACCES
    Компонент пути не может быть прочитан
    или была попытка запуска незаписываемой файловой системы ("только для чтения") без указания на флаг MS_RDONLY,
    или блочное устройство Source находится на файловой системе, подключенной с помощью опции MS_NODEV.
    ENXIO
    Основное число блочного устройства source выходит за допустимые пределы.
    EMFILE
    (В случае, если не требуются блочные устройства): таблица простых устройств переполнена.
     

    СООТВЕТСТВИЕ СТАНДАРТАМ

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

    ПРИМЕЧАНИЯ ПО ИСТОРИИ

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

    Флаг MS_SYNC был переименован в MS_SYNCHRONOUS в версии 1.1.69, когда был добавлен другой флаг MS_SYNC в <mman.h>.

    До Linux 2.4 поппытка выполнения программ set-UID или set-GID на файловой системе, подключенной с параметром MS_NOSUID вызовет ошибку EPERM. С Linux 2.4 биты set-UID и set-GID в этом случае негласно игнорируются.  

    СМ. ТАКЖЕ

    mount(8), umount(8)


     

    Index

    НАЗВАНИЕ
    СИНТАКСИС
    ОПИСАНИЕ
    ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
    НАЙДЕННЫЕ ОШИБКИ
    СООТВЕТСТВИЕ СТАНДАРТАМ
    ПРИМЕЧАНИЯ ПО ИСТОРИИ
    СМ. ТАКЖЕ


    Поиск по тексту MAN-ов: 




    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру