.\" -*- coding: UTF-8 -*- .\" Copyright (C) 1993 Rickard E. Faith .\" and Copyright (C) 1994 Andries E. Brouwer .\" and Copyright (C) 2002, 2005, 2016 Michael Kerrisk .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\" Modified 1996-11-04 by Eric S. Raymond .\" Modified 2001-10-13 by Michael Kerrisk .\" Added note on historical behavior of MS_NOSUID .\" Modified 2002-05-16 by Michael Kerrisk .\" Extensive changes and additions .\" Modified 2002-05-27 by aeb .\" Modified 2002-06-11 by Michael Kerrisk .\" Enhanced descriptions of MS_MOVE, MS_BIND, and MS_REMOUNT .\" Modified 2004-06-17 by Michael Kerrisk .\" 2005-05-18, mtk, Added MNT_EXPIRE, plus a few other tidy-ups. .\" 2008-10-06, mtk: move umount*() material into separate umount.2 page. .\" 2008-10-06, mtk: Add discussion of namespaces. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH MOUNT 2 "21 декабря 2020 г." Linux "Руководство программиста Linux" .SH ИМЯ mount \- применяется для монтирования файловых систем. .SH СИНТАКСИС .nf \fB#include \fP .PP \fBint mount(const char *\fP\fIsource\fP\fB, const char *\fP\fItarget\fP\fB,\fP \fB const char *\fP\fIfilesystemtype\fP\fB, unsigned long \fP\fImountflags\fP\fB,\fP \fB const void *\fP\fIdata\fP\fB);\fP .fi .SH ОПИСАНИЕ Вызов \fBmount\fP() подключает файловую систему, указанную в \fIsource\fP (обычно здесь задаётся название устройства, но также может быть указано имя каталога, или файла, или фиктивное устройство), к пути заданному в \fItarget\fP(каталогу или файлу). .PP Для монтирования файловых систем требуются специальные права (Linux: мандат \fBCAP_SYS_ADMIN\fP). .PP Вариант \fIfilesystemtype\fP доступные ядру перечислены в \fI/proc/filesystems\fP (например: "btrfs", "ext4", "jfs", "xfs", "vfat", "fuse", "tmpfs", "cgroup", "proc", "mqueue", "nfs", "cifs", "iso9660"). Дополнительные типы становятся доступными после загрузки соответствующих модулей. .PP Аргумент \fIdata\fP рассматривается каждой файловой системой по\-своему. Обычно, это строка параметров, перечисленных через запятую, которые понимает файловая система. О том, какие параметры доступны для каждого типа файловой системы смотрите \fBmount\fP(8). .PP Вызов \fBmount\fP() выполняет один из нескольких типов операций, в зависимости от значений, указанных в \fImountflags\fP. Выбор выполняемой операции определяется путем тестирования значений, установленных в \fImountflags\fP, с проведением тестов в следующем порядке: .IP * 3 Перемонтировать существующие точки монтирования: \fImountflags\fP включает \fBMS_REMOUNT\fP. .IP * Создать привязку (bind mount): \fImountflags\fP включает \fBMS_BIND\fP. .IP * Изменить тип существующего монтирования: \fImountflags\fP включает одно из \fBMS_SHARED\fP, \fBMS_PRIVATE\fP, \fBMS_SLAVE\fP или \fBMS_UNBINDABLE\fP. .IP * Переместить существующее монтирование в новое место: \fImountflags\fP включает \fBMS_MOVE\fP. .IP * Создать новое монтирование: \fImountflags\fP не содержит ни один из указанных выше флагов. .PP .\" Каждая из этих операций подробно описана далее на этой странице. Для изменения поведения \fBmount\fP() могут быть указаны дополнительные флаги в \fImountflags\fP, как описано ниже. .SS "Дополнительные флаги для монтирования" .\" .\" FIXME 2.6.25 Added MS_I_VERSION, which needs to be documented. .\" commit 7a224228ed79d587ece2304869000aad1b8e97dd .\" (This is a per-superblock flag) .\" Ниже расположенный список дополнительных флагов, которые можно использовать в \fImountflags\fP. Обратите внимание на то, что некоторые из них или даже все игнорируются операциями. Такие случае будут описаны далее по тексту. .TP \fBMS_DIRSYNC\fP (начиная с Linux 2.5.19) Осуществлять изменения каталогов на этой файловой системе синхронно. Это свойство может быть получено для отдельных каталогов или дерева подкаталогов с помощью \fBchattr\fP(1). .TP \fBMS_LAZYTIME\fP (начиная с Linux 4.0) .\" commit 0ae45f63d4ef8d8eeec49c7d8b44a1775fff13e8 .\" commit fe032c422c5ba562ba9c2d316f55e258e03259c6 .\" commit a26f49926da938f47561f386be56a83dd37a496d Можно уменьшить количество обращений к диску, если сохранять дескрипторы меток времени (atime, mtime, ctime) только в памяти. Временные метки на диске обновляются только в следующих случаях: .RS .IP (а) 5 дескрипторы необходимо обновить для некоторого изменения, не связанного с временными метками файлов; .IP (б) приложение использует \fBfsync\fP(2), \fBsyncfs\fP(2), or \fBsync\fP(2); .IP (в) неиспользуемый дескриптор вытесняется из памяти; или .IP (d) прошло более 24 часов с момента записи дескриптора на диск. .RE .IP Данный параметр монтирования существенно сокращает количество операций записи, необходимых для обновления меток времени inode, особенно mtime и atime. Однако, если произойдёт падение системы, то поля atime и mtime на диске могут оказаться устаревшими на 24 часа. .IP В качестве примеров, где данный параметр может принести значительную выгоду это частые произвольные операции записи в уже выделенные файлы, а также случаи, когда также включён параметр монтирования \fBMS_STRICTATIME\fP (преимущество объединения \fBMS_STRICTATIME\fP и \fBMS_LAZYTIME\fP в том, что \fBstat\fP(2) будет возвращать правильное обновлённое время, но обновления atime будет производиться на диск только в случаях перечисленных выше). .TP \fBMS_MANDLOCK\fP .\" commit 95ace75414f312f9a7b93d873f386987b92a5301 Разрешить обязательную блокировку файлов в этой файловой системе (обязательная блокировка всё равно сначала должна быть включена для определённого файла как описано в \fBfcntl\fP(2)). Начиная с Linux 4.5 этот параметр монтирования требует мандата \fBCAP_SYS_ADMIN\fP и ядро должно быть настроено с параметром \fBCONFIG_MANDATORY_FILE_LOCKING\fP. .TP \fBMS_NOATIME\fP Не обновлять время доступа для (всех типов) файлов в этой файловой системе. .TP \fBMS_NODEV\fP Запретить доступ к устройствам (специальным файлам) в этой файловой системе. .TP \fBMS_NODIRATIME\fP Не обновлять время доступа для каталогов в этой файловой системе. Данный флаг частично предоставляет свойство \fBMS_NOATIME\fP; то есть при \fBMS_NOATIME\fP подразумевается \fBMS_NODIRATIME\fP. .TP \fBMS_NOEXEC\fP .\" (Possibly useful for a filesystem that contains non-Linux executables. .\" Often used as a security feature, e.g., to make sure that restricted .\" users cannot execute files uploaded using ftp or so.) Запретить исполнение программ в этой файловой системе. .TP \fBMS_NOSUID\fP .\" (This is a security feature to prevent users executing set-user-ID and .\" set-group-ID programs from removable disk devices.) Не учитывать биты set\-UID и set\-GID или файловые мандаты при исполнении программ в этой файловой системе. .TP \fBMS_RDONLY\fP Подключить файловую систему в режиме только для чтения. .TP \fBMS_REC\fP (начиная с Linux 2.4.11) Используется вместе с \fBMS_BIND\fP для создания рекурсивной точки монтирования и вместе с флагами типа распространения для рекурсивного изменения типа распространения всех точек монтирования в поддереве. Подробности смотрите далее. .TP \fBMS_RELATIME\fP (начиная с Linux 2.6.20) .\" Matthew Garrett notes in the patch that added this behavior .\" that this lets utilities such as tmpreaper (which deletes .\" files based on last access time) work correctly. При доступе к файлу на этой файловой системе значение времени последнего доступа к файлу (atime) обновляется, только если текущее значение atime меньше или равно времени последнего изменения файла (mtime) или времени последнего изменения состояния файла (ctime). Этот флаг полезен для программ (например, \fBmutt\fP(1)), которым нужно знать, что файл был прочитан с момента его последнего изменения. Начиная с Linux 2.6.30 в ядро это поведение включено по умолчанию (если не указан \fBMS_NOATIME\fP), а чтобы получить обычное поведение нужно указать флаг \fBMS_STRICTATIME\fP. Также, начиная с Linux 2.6.30 время последнего доступа к файлу всегда обновляется, если оно устаревает на один день. .TP \fBMS_SILENT\fP (начиная с Linux 2.6.17) Не выводить определённые (\fIprintk\fP()) предупреждающие сообщения в журнал ядра. Этот флаг заменяет неправильно названный и устаревший флаг \fBMS_VERBOSE\fP (доступный начиная с Linux 2.4.12), который выполняет такую же функцию. .TP \fBMS_STRICTATIME\fP (начиная с Linux 2.6.30) Всегда обновлять время последнего доступа (atime) при доступе к файлам на этой файловой системе (это выполнялось по умолчанию до Linux 2.6.30). Задание этого флага отменяет поведение флагов \fBMS_NOATIME\fP и \fBMS_RELATIME\fP. .TP \fBMS_SYNCHRONOUS\fP Осуществлять запись на эту файловую систему синхронно (как если бы флаг \fBO_SYNC\fP для \fBopen\fP(2) был указан для всех файлов, открытых на этой файловой системе). .TP \fBMS_NOSYMFOLLOW\fP (начиная с Linux 5.10) .\" dab741e0e02bd3c4f5e2e97be74b39df2523fc6e Do not follow symbolic links when resolving paths. Symbolic links can still be created, and \fBreadlink\fP(1), \fBreadlink\fP(2), \fBrealpath\fP(1), and \fBrealpath\fP(3) all still work properly. .PP Начиная с Linux 2.4 одни из показанных выше флагов можно устанавливать на точки монтирования (свой набор на каждой), а другие — на суперблок смонтированной файловой системы, то есть все монтирования одной файловой системы имеют одинаковый набор этих флагов (ранее все флаги применялись к суперблоку). .PP Флаги набора для точки монтирования: .IP * 3 Начиная с Linux 2.4: флаги \fBMS_NODEV\fP, \fBMS_NOEXEC\fP и \fBMS_NOSUID\fP задаются для каждой точки монтирования отдельно. .IP * Additionally, since Linux 2.6.16: \fBMS_NOATIME\fP and \fBMS_NODIRATIME\fP. .IP * Additionally, since Linux 2.6.20: \fBMS_RELATIME\fP. .PP .\" And MS_I_VERSION? Следующие флаги указываются для суперблока: \fBMS_DIRSYNC\fP, \fBMS_LAZYTIME\fP, \fBMS_MANDLOCK\fP, \fBMS_SILENT\fP и \fBMS_SYNCHRONOUS\fP. Начальный настройки этих флагов определяются по первому монтированию файловой системы и будут общими для всех последующих монтирований этой файловой системы. Следовательно, набор флагом можно изменить через операцию перемонтирования (смотрите далее). Эти изменения отразятся на всех точках монтирования, связанных с этой файловой системой. .PP .\" Начиная с Linux 2.6.16 флаг \fBMS_RDONLY\fP может устанавливаться и сбрасываться на точках монтирования по отдельности, а также на нижележащем суперблоке файловой системы. Смонтированная файловая система будет доступна на запись только, если она сама и её точка монтирования не помечены только для чтения. .SS "Перемонтированние существующих точек монтирования." Существующие монтирования можно перемонтировать, указав \fBMS_REMOUNT\fP в \fImountflags\fP. Это позволяет изменить \fImountflags\fP и \fIdata\fP существующих монтирований без необходимости размонтировать и заново монтировать файловую систему. \fItarget\fP должен соответствовать указанному при начальном вызове \fBmount\fP(). .PP Аргументы \fIsource\fP и \fIfilesystemtype\fP игнорируются. .PP Аргументы \fImountflags\fP и \fIdata\fP должны совпадать со значениями, используемыми в первоначальном вызове \fBmount\fP(), за исключением параметров, которые были преднамеренно изменены. .PP .\" FIXME .\" MS_LAZYTIME seems to be available only on a few filesystems, .\" and on ext4, it seems (from experiment that this flag .\" can only be enabled (but not disabled) on a remount. .\" The following code in ext4_remount() (kernel 4.17) seems to .\" confirm this: .\" .\" if (*flags & SB_LAZYTIME) .\" sb->s_flags |= SB_LAZYTIME; .\" See the definition of MS_RMT_MASK in include/uapi/linux/fs.h, .\" which excludes MS_DIRSYNC and MS_SILENT, although SB_DIRSYNC .\" and SB_SILENT are split out as per-superblock flags in do_mount() .\" (Linux 4.17 source code) В \fImountflags\fP можно изменять: \fBMS_LAZYTIME\fP, \fBMS_MANDLOCK\fP, \fBMS_NOATIME\fP, \fBMS_NODEV\fP, \fBMS_NODIRATIME\fP, \fBMS_NOEXEC\fP, \fBMS_NOSUID\fP, \fBMS_RELATIME\fP, \fBMS_RDONLY\fP, \fBMS_STRICTATIME\fP (стирает флаги \fBMS_NOATIME\fP и \fBMS_RELATIME\fP) и \fBMS_SYNCHRONOUS\fP. Попытка изменить флаги \fBMS_DIRSYNC\fP и \fBMS_SILENT\fP при перементировании игнорируется без ошибки. Заметим, что изменения флагов суперблока видимы на всех точках монтирования файловой системы (так как флаги суперблока едины для всех точек монтирования). .PP .\" commit ffbc6f0ead47fa5a1dc9642b0331cb75c20a640e Начиная с Linux 3.17, если не одно из значений \fBMS_NOATIME\fP, \fBMS_NODIRATIME\fP, \fBMS_RELATIME\fP, или \fBMS_STRICTATIME\fP не указано в \fImountflags\fP , то при перемонтировании сохраняются текущие значения этих флагов (а не изменяются на значение по умолчанию \fBMS_RELATIME\fP). .PP .\" See https://lwn.net/Articles/281157/ Начиная с Linux 2.6.26, флаг \fBMS_REMOUNT\fP можно использовать вместе с \fBMS_BIND\fP для изменения только флагов, касающихся точки монтирования. В частности, это полезно для установки или сброса флага «только для чтения» на точке монтирования без изменения нижележащей файловой системы. При значении \fImountflags\fP: .PP .in +4n .EX MS_REMOUNT | MS_BIND | MS_RDONLY .EE .in .PP .\" будет обеспечен доступ к этой точке монтирования в режиме только для чтения, без изменения других точек монтирования. .SS "Создание привязки монтирования" .\" since 2.4.0-test9 Если \fImountflags\fP содержит \fBMS_BIND\fP (доступен, начиная с Linux 2.4), то выполняется привязка монтирования. Привязка монтирования делает видимым файл или поддерево каталогов в другой точке внутри одной иерархии каталогов. Привязки монтирования могут быть в разных файловых системах и перекрывают заключения \fBchroot\fP(2). .PP Аргументы \fIfilesystemtype\fP и \fIdata\fP игнорируются. .PP Остальные биты (кроме \fBMS_REC\fP, описано ниже) в аргументе \fImountflags\fP также игнорируются. Однако посмотрите обсуждение перемонтирования, представленное выше, о том, как сделать существующую привязку монтирования доступной только для чтения. .PP .\" По умолчанию, когда каталогу назначена привязка монтирования, монтируется только этот каталог; если существуют другие подмонтирования в дереве каталогов, то им не назначается привязка монтирования. Если также указан флаг \fBMS_REC\fP, то выполняется операция рекурсивной привязки монтирования: всем подмонтированиям в поддереве \fIsource\fP (отличным от непривязываемых монтирований) также назначается привязка монтирования в соответствующее расположение к поддереве \fItarget\fP. .SS "Изменение типа распространения существующего монтирования" Если \fImountflags\fP содержит один из флагов \fBMS_SHARED\fP, \fBMS_PRIVATE\fP, \fBMS_SLAVE\fP, или \fBMS_UNBINDABLE\fP (все доступны начиная с Linux 2.6.15), то тип распространения существующего монтирования изменяется. Если указано сразу несколько из этих флагов, то возвращается ошибка. .PP При смене типа распространения можно изменять только флаги \fBMS_REC\fP (описан ниже) и \fBMS_SILENT\fP (игнорируется). .PP Аргументы \fIsource\fP, \fIfilesystemtype\fP и \fIdata\fP игнорируются. .PP Назначение флагов типа распространения следующее: .TP \fBMS_SHARED\fP Делает эту точку монтирования общей. События монтирования и размонтирования этой точки сразу же распространяются на другие точки монтирования, являющиеся членами её равноправной группы. Распространение здесь означает, что монтирование или размонтирование автоматически происходит и у всех остальных точек монтирования в равноправной группе. И наоборот, события монтирования и размонтирования, возникшие у точек монтирования равноправной группы, будут распространены и на эту точку монтирования. .TP \fBMS_PRIVATE\fP События монтирования и размонтирования не распространяются в эту точку и от этой точки. .TP \fBMS_SLAVE\fP Если это общая точка монтирования, которая является членом непустой равноправной группы, то она преобразуется в подчинённую точку монтирования. Если это общая точка монтирования, которая является членом пустой равноправной группы, то она преобразуется в индивидуальную точку. В противном случае тип распространения точки монтирования не изменяется. .IP Если точка монтирования подчинённая, то события монтирования и размонтирования распространяются на эту точку монтирования из (главной) общей равноправной группы, в которую она раньше входила. События монтирования и размонтирования этой точки не распространяются на членов группы. .IP Точка монтирования может быть подчинённой одной равноправной группе и в тоже время может распространять события в другую группу, где она является членом. .TP \fBMS_UNBINDABLE\fP Делает эту точку монтирования непривязываемой. Она подобна индивидуальной точке монтирования плюс недоступна привязка монтирования. При рекурсивной привязке (\fBmount\fP() с флагами \fBMS_BIND\fP и \fBMS_REC\fP) в поддереве каталога все непривязываемые монтирования внутри поддерева автоматически удаляются (т. е., не копируются) при копировании этого поддерева для создания целевого поддерева. .PP По умолчанию, изменение типа распространения касается только \fItarget\fP точки монтирования. Если в \fImountflags\fP также указан флаг \fBMS_REC\fP, то тип распространения всех точек монтирования ниже \fItarget\fP также изменяется. .PP .\" Дополнительную информацию по типам распространения монтирования (включая тип распространения по умолчанию, назначаемый новым точкам монтирования) смотрите в \fBmount_namespaces\fP(7). .SS "Перемещение точки монтирования" Если в \fImountflags\fP содержится флаг \fBMS_MOVE\fP (доступен, начиная с Linux 2.4.18), то перемещается поддерево: в \fIsource\fP задаётся существующая точка монтирования, а \fItarget\fP указывается новое расположение, в которое будет перемещена точка монтирования. Перемещение атомарно: поддерево всегда смонтировано. .PP .\" Оставшиеся биты в аргументе \fImountflags\fP игнорируются, как и аргументы \fIfilesystemtype\fP и \fIdata\fP. .SS "Создание новой точки монтирования" В том случае, если ни одно из значений \fBMS_REMOUNT\fP, \fBMS_BIND\fP, \fBMS_MOVE\fP, \fBMS_SHARED\fP, \fBMS_PRIVATE\fP, \fBMS_SLAVE\fP, или \fBMS_UNBINDABLE\fP не указано в \fImountflags\fP, вызов \fBmount\fP() выполняет действие по умолчанию: создаёт новую точку монтирования. В \fIsource\fP задаётся источник новой точки монтирования, а значение \fItarget\fP указывает каталог, в котором будет создана точка монтирования. .PP .\" Используются аргументы \fIfilesystemtype\fP и \fIdata\fP, дополнительные параметры для изменения поведения могут быть указаны в \fImountflags\fP. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При успешном выполнении возвращается 0. В случае ошибки возвращается \-1, а \fIerrno\fP устанавливается в соответствующее значение. .SH ОШИБКИ Коды ошибок, описанные ниже, не зависят от типа файловой системы. У каждой файловой системы могут быть свои коды ошибок и своё собственное поведение. Подробности смотрите в исходном коде ядра Linux. .TP \fBEACCES\fP Поиск запрещён из\-за одной части пути, которая не доступна для просмотра и поиск (см. подробнее в \fBpath_resolution\fP(7)). .TP \fBEACCES\fP Было предпринята попытка монтирования файловой системы доступной только на чтение, но без флага \fBms_rdonly\fP. .IP Файловая система может быть доступна только для чтения по разным причинам: она расположена на оптическом диске, доступном только для чтения; она располагается на устройстве с физической коммутацией, которое было отмечено как доступное только для чтения; реализация файловой системы скомпилирована с поддержкой только на чтение; обнаружены ошибки при первоначальном монтировании файловой системы, из\-за чего она была помечена как доступная только для чтения и её невозможно перемонтировать как доступную для чтения/записи (пока не будут исправлены ошибки). .IP При попытке монтирования файловой системы только для чтениянекоторые файловые системы вместо этого возвращают ошибку \fBEROFS\fP. .TP \fBEACCES\fP .\" mtk: Probably: write permission is required for MS_BIND, with .\" the error EPERM if not present; CAP_DAC_OVERRIDE is required. Блочное устройство \fIsource\fP расположено в файловой системе, которая смонтирована с параметром \fBMS_NODEV\fP. .TP \fBEBUSY\fP Попытка выполнить новое монтирование непосредственно поверх существующей точки монтирования, которая была создана в этом пространстве имён монтирования с тем же \fIисточником\fP и \fIназначением\fP. .TP \fBEBUSY\fP \fIsource\fP не может быть перемонтирован с доступом только на чтение, потому что он все ещё содержит файлы, открытые для записи. .TP \fBEFAULT\fP Один из аргументов\-указателей указывает на каталог за пределами пользовательского адресного пространства. .TP \fBEINVAL\fP \fIисточник\fP имеет недоступный суперблок. .TP \fBEINVAL\fP Была предпринята попытка перемонтирования (\fBMS_REMOUNT\fP), но \fIsource\fP еще не был смонтирован в \fItarget\fP. .TP \fBEINVAL\fP Была предпринята попытка перемещения (\fBMS_MOVE\fP), но смонтированнное дерево в \fIsource\fP содержит неотвязываемые (unbindable) монтирования и \fItarget\fP является точкой монтирования с типом распространения \fBMS_SHARED\fP. .TP \fBEINVAL\fP Была предпринята попытка перемещения (\fBMS_MOVE\fP), но родительское монтирование монтирования \fIsource\fP является точкой монтирования с типом распространения \fBMS_SHARED\fP. .TP \fBEINVAL\fP Была предпринята попытка перемещения (\fBMS_MOVE\fP), но \fIsource\fP не являлся точкой монтирования или был \(aq/\(aq. .TP \fBEINVAL\fP .\" See commit 8823c079ba7136dc1948d6f6dcb5f8022bde438e A bind operation (\fBMS_BIND\fP) was requested where \fIsource\fP referred a mount namespace magic link (i.e., a \fI/proc/[pid]/ns/mnt\fP magic link or a bind mount to such a link) and the propagation type of the parent mount of \fItarget\fP was \fBMS_SHARED\fP, but propagation of the requested bind mount could lead to a circular dependency that might prevent the mount namespace from ever being freed. .TP \fBEINVAL\fP \fImountflags\fP включает более одного значения из \fBMS_SHARED\fP, \fBMS_PRIVATE\fP, \fBMS_SLAVE\fP, или \fBMS_UNBINDABLE\fP. .TP \fBEINVAL\fP \fImountflags\fP включает \fBMS_SHARED\fP, \fBMS_PRIVATE\fP, \fBMS_SLAVE\fP, или \fBMS_UNBINDABLE\fP а также включает флаг, отличный от \fBMS_REC\fP или \fBMS_SILENT\fP. .TP \fBEINVAL\fP Была попытка выполнить связанное монтирование, как несвязанное монтирование. .TP \fBEINVAL\fP В непривилегированном пространстве имён монтирования (т. е., пространстве имён монтирования, принадлежащем пространству имён пользователя, которое было создано непривилегированным пользователем) выполнялась операция связанного монтирования (\fBMS_BIND\fP) без указания (\fBMS_REC\fP), которая привела бы к открытию дерева файловой системы, находящемся ниже одного из подмонтирований каталога, к которому выполнялось связывание. .TP \fBELOOP\fP Во время разбора имён найдено слишком много ссылок. .TP \fBELOOP\fP Сделана попытка перемещения, но \fIцель\fP оказалась подкаталогом \fIисточника\fP. .TP \fBEMFILE\fP (В случае, если не требуются блочные устройства): таблица фиктивных устройств переполнена. .TP \fBENAMETOOLONG\fP Значение пути длиннее чем \fBMAXPATHLEN\fP. .TP \fBENODEV\fP Тип из \fIfilesystemtype\fP в ядре не настроен. .TP \fBENOENT\fP Указан пустой путь или одна из его частей не существует. .TP \fBENOMEM\fP Ядро не может выделить свободную страницу для копирования имени файла или данных. .TP \fBENOTBLK\fP Значение \fIsource\fP не является блочным устройством (а устройство было запрошено). .TP \fBENOTDIR\fP Значение \fItarget\fP или префикс \fIsource\fP не является каталогом. .TP \fBENXIO\fP Старший номер блочного устройства \fIsource\fP вне допустимого диапазона. .TP \fBEPERM\fP Вызывающий процесс не имеет требуемых привилегий. .TP \fBEROFS\fP Было предпринята попытка монтирования файловой системы доступной только на чтение без флага \fBMS_RDONLY\fP. Смотрите описание \fBEACCES\fP, приведённое выше. .SH ВЕРСИИ .\" Определения \fBMS_DIRSYNC\fP, \fBMS_MOVE\fP, \fBMS_PRIVATE\fP, \fBMS_REC\fP, \fBMS_RELATIME\fP, \fBMS_SHARED\fP, \fBMS_SLAVE\fP, \fBMS_STRICTATIME\fP и \fBMS_UNBINDABLE\fP были добавлены в заголовочные файлы glibc начиная с версии 2.12. .SH "СООТВЕТСТВИЕ СТАНДАРТАМ" Данная функция есть только в Linux и не должна использоваться в программах, которые задуманы как переносимые. .SH ЗАМЕЧАНИЯ .\" Multiple mounts on same mount point: since 2.3.99pre7. Начиная с Linux 2.4 одна файловая система может быть смонтирована в множество точек монтирования, также множественное монтирование может осуществляться в одну точку. .PP В верхних 16 битах аргумента \fImountflags\fP может содержаться магическое число 0xC0ED (\fBMS_MGC_VAL\fP) (все остальные флаги из ОПИСАНИЯ находятся в младших 16 битах \fImountflags\fP). Указание \fBMS_MGC_VAL\fP было требованием ядра до версии 2.4, но начиная с Linux 2.4 этого больше не нужно, и число игнорируется, если указано. .PP Изначальный флаг \fBMS_SYNC\fP был переименован в \fBMS_SYNCHRONOUS\fP в 1.1.69, когда в \fI\fP был добавлен другой флаг \fBMS_SYNC\fP. .PP .\" The change is in patch-2.4.0-prerelease. .\" До Linux 2.4 попытка выполнения программ set\-UID или set\-GID на файловой системе, подключённой с параметром \fBMS_NOSUID\fP, вызывает ошибку \fBEPERM\fP. Начиная с Linux 2.4 биты set\-UID и set\-GID в этом случае негласно игнорируются. .SS "Пространства имён монтирования" Starting with kernel 2.4.19, Linux provides mount namespaces. A mount namespace is the set of filesystem mounts that are visible to a process. Mount namespaces can be (and usually are) shared between multiple processes, and changes to the namespace (i.e., mounts and unmounts) by one process are visible to all other processes sharing the same namespace. (The pre\-2.4.19 Linux situation can be considered as one in which a single namespace was shared by every process on the system.) .PP Процесс\-потомок, создаваемый \fBfork\fP(2), использует родительское пространство имён монтирования совместно с родителем; пространство имён монтирования сохраняется при вызове \fBexecve\fP(2). .PP Процесс может получить собственное пространство имён монтирования если: он был создан с помощью \fBclone\fP(2) с флагом \fBCLONE_NEWNS\fP; в этом случае его новое пространство имён инициализируется \fIкопией\fP пространства имён процесса, который вызвал \fBclone\fP(2); или он вызовет \fBunshare\fP(2) с флагом \fBCLONE_NEWNS\fP; в этом случае пространство имён вызвавшего получит свою копию пространства имён, которое он раньше совместно использовал с другими процессами, и дальнейшие монтирования и размонтирования вызвавшим будут невидимы другим процессам (за исключением потомков, которые вызывающий создаст позже) и наоборот. .PP .\" For further details on mount namespaces, see \fBmount_namespaces\fP(7). .SS "Parental relationship between mount points" Each mount point has a parent mount point. The overall parental relationship of all mount points defines the single directory hierarchy seen by the processes within a mount namespace. .PP The parent of a new mount point is defined when the mount point is created. In the usual case, the parent of a new mount is the mount point of the filesystem containing the directory or file at which the new mount is attached. In the case where a new mount is stacked on top of an existing mount, the parent of the new mount is the previous mount that was stacked at that location. .PP .\" The parental relationship between mount points can be discovered via the \fI/proc/[pid]/mountinfo\fP file (see below). .SS "/proc/[pid]/mounts и /proc/[pid]/mountinfo" The Linux\-specific \fI/proc/[pid]/mounts\fP file exposes the list of mount points in the mount namespace of the process with the specified ID. The \fI/proc/[pid]/mountinfo\fP file exposes even more information about mount points, including the propagation type and mount ID information that makes it possible to discover the parental relationship between mount points. See \fBproc\fP(5) and \fBmount_namespaces\fP(7) for details of this file. .SH "СМ. ТАКЖЕ" \fBmountpoint\fP(1), \fBchroot\fP(2), \fBioctl_iflags\fP(2), \fBpivot_root\fP(2), \fBumount\fP(2), \fBmount_namespaces\fP(7), \fBpath_resolution\fP(7), \fBfindmnt\fP(8), \fBlsblk\fP(8), \fBmount\fP(8), \fBumount\fP(8) .SH ЗАМЕЧАНИЯ Эта страница является частью проекта Linux \fIman\-pages\fP версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу \%https://www.kernel.org/doc/man\-pages/. .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан aereiae , Alexey , Azamat Hackimov , Dmitriy S. Seregin , Dmitry Bolkhovskikh , ITriskTI , Max Is , Yuri Kozlov , Иван Павлов и Малянов Евгений Викторович . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .