summaryrefslogtreecommitdiffstats
path: root/man2/mount.2
diff options
context:
space:
mode:
Diffstat (limited to 'man2/mount.2')
-rw-r--r--man2/mount.2323
1 files changed, 323 insertions, 0 deletions
diff --git a/man2/mount.2 b/man2/mount.2
new file mode 100644
index 000000000..ef15ec5d4
--- /dev/null
+++ b/man2/mount.2
@@ -0,0 +1,323 @@
+.\" Hey Emacs! This file is -*- nroff -*- source.
+.\"
+.\" Copyright (C) 1993 Rickard E. Faith <faith@cs.unc.edu>
+.\" Copyright (C) 1994 Andries E. Brouwer <aeb@cwi.nl>
+.\" Copyright (C) 2002 Michael Kerrisk <mtk16@ext.canterbury.ac.nz>
+.\"
+.\" 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.
+.\"
+.\" Modified 1996-11-04 by Eric S. Raymond <esr@thyrsus.com>
+.\" Modified 2001-10-13 by Michael Kerrisk <mtk16@ext.canterbury.ac.nz>
+.\" Added note on historical behaviour of MS_NOSUID
+.\" Modified 2002-05-16 by Michael Kerrisk <mtk16@ext.canterbury.ac.nz>
+.\" Extensive changes and additions
+.\" Modified 2002-05-27 by aeb
+.\" Modified 2002-06-11 by Michael Kerrisk <mtk16@ext.canterbury.ac.nz>
+.\" Enhanced descriptions of MS_MOVE, MS_BIND, and MS_REMOUNT
+.\" Modified 2004-06-17 by Michael Kerrisk <mtk16@ext.canterbury.ac.nz>
+.\"
+.TH MOUNT 2 2004-06-17 "Linux 2.6" "Linux Programmer's Manual"
+.SH NAME
+mount, umount \- mount and unmount filesystems
+.SH SYNOPSIS
+.B "#include <sys/mount.h>"
+.sp
+.BI "int mount(const char *" source ", const char *" target ,
+.BI "const char *" filesystemtype ", unsigned long " mountflags ,
+.BI "const void *" data );
+.sp
+.BI "int umount(const char *" target );
+.sp
+.BI "int umount2(const char *" target ", int " flags );
+.SH DESCRIPTION
+.B mount
+attaches the filesystem specified by
+.I source
+(which is often a device name, but can also be a directory name
+or a dummy) to the directory specified by
+.IR target .
+
+.BR umount " and " umount2
+remove the attachment of the (topmost) filesystem mounted on
+.IR target .
+
+Appropriate privilege (Linux: the
+.B CAP_SYS_ADMIN
+capability) is required to mount and unmount filesystems.
+
+Since Linux 2.4 a single filesystem can be visible at
+multiple mount points, and multiple mounts can be stacked
+on the same mount point.
+.\" Multiple mounts on same mount point: since 2.3.99pre7.
+
+Values for the
+.IR filesystemtype
+argument supported by the kernel are listed in
+.I /proc/filesystems
+(like "minix", "ext2", "msdos", "proc", "nfs", "iso9660" etc.).
+Further types may become available when the appropriate modules
+are loaded.
+
+The
+.IR mountflags
+argument may have the magic number 0xC0ED (\fBMS_MGC_VAL\fP)
+in the top 16 bits (this was required in kernel versions prior to 2.4, but
+is no longer required and ignored if specified),
+and various mount flags (as defined in <linux/fs.h> for libc4 and libc5
+and in <sys/mount.h> for glibc2) in the low order 16 bits:
+.TP
+.B MS_BIND
+(Linux 2.4 onwards)
+.\" since 2.4.0-test9
+Perform a bind mount, making a file or a directory subtree visible at
+another point within a file system.
+Bind mounts may cross file system boundaries and span
+.BR chroot (2)
+jails.
+The
+.IR filesystemtype ", " mountflags ", and " data
+arguments are ignored.
+.\" with the exception of the "hidden" MS_REC mountflags bit
+.TP
+.B MS_DIRSYNC
+(Since Linux 2.5.19.)
+Make directory changes on this file system synchronous.
+(This property can be obtained for individual directories
+or subtrees using
+.BR chattr (8).)
+.TP
+.B MS_MANDLOCK
+Permit mandatory locking on files in this file system.
+(Mandatory locking must still be enabled on a per-file basis,
+as described in
+.BR fcntl (2).)
+.\" FIXME: More can be said about MS_MOVE
+.TP
+.B MS_MOVE
+Move a subtree.
+.I source
+specifies an existing mount point and
+.I target
+specifies the new location.
+The move is atomic: at no point is the subtree unmounted.
+The
+.IR filesystemtype ", " mountflags ", and " data
+arguments are ignored.
+.TP
+.B MS_NOATIME
+Do not update access times for (all types of) files on this file system.
+.TP
+.B MS_NODEV
+Do not allow access to devices (special files) on this file system.
+.TP
+.B MS_NODIRATIME
+Do not update access times for directories on this file system.
+.TP
+.B MS_NOEXEC
+Do not allow programs to be executed from this file system.
+.\" (Possibly useful for a file system 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
+.B MS_NOSUID
+Do not honour set-UID and set-GID bits when executing
+programs from this file system.
+.\" (This is a security feature to prevent users executing set-UID and
+.\" set-GID programs from removable disk devices.)
+.TP
+.B MS_RDONLY
+Mount file system read-only.
+.TP
+.B MS_REMOUNT
+Remount an existing mount. This is allows you to change the
+.I mountflags
+and
+.I data
+of an existing mount without having to unmount and remount the file system.
+.I source
+and
+.I target
+should be the same values specified in the initial
+.BR mount ()
+call;
+.I filesystemtype
+is ignored.
+.TP
+.B MS_SYNCHRONOUS
+Make writes on this file system synchronous (as though
+the
+.B O_SYNC
+flag to
+.BR open (2)
+was specified for all file opens to this file system).
+.PP
+From Linux 2.4 onwards, the
+.BR MS_NODEV ", " MS_NOEXEC ", and " MS_NOSUID
+flags are settable on a per-mount point basis.
+.PP
+The
+.IR data
+argument is interpreted by the different file systems.
+Typically it is a string of comma-separated options
+understood by this file system.
+See
+.BR mount (8)
+for details of the options available for each filesystem type.
+.PP
+.\" Note: the kernel naming differs from the glibc naming
+.\" umount2 is the glibc name for what the kernel now calls umount
+.\" and umount is the glibc name for oldumount
+Linux 2.1.116 added the
+.BR umount2 ()
+system call, which, like
+.BR umount (),
+unmounts a target, but allows additional
+.I flags
+controlling the behaviour of the operation:
+.TP
+.B MNT_FORCE
+Force unmount even if busy.
+(Since 2.1.116. Only for NFS mounts.)
+.TP
+.B MNT_DETACH
+Perform a lazy unmount: make the mount point unavailable for
+new accesses, and actually perform the unmount when the mount point
+ceases to be busy. (Since 2.4.11.)
+.SH "RETURN VALUE"
+On success, zero is returned. On error, \-1 is returned, and
+.I errno
+is set appropriately.
+.SH ERRORS
+The error values given below result from filesystem type independent
+errors. Each filesystem type may have its own special errors and its
+own special behavior. See the kernel source code for details.
+
+.TP
+.B EACCES
+A component of a path was not searchable. (See also
+.BR path_resolution (2).)
+.br
+Or, mounting a read-only filesystem was attempted without giving the
+MS_RDONLY flag.
+.br
+Or, the block device
+.I source
+is located on a filesystem mounted with the MS_NODEV option.
+.\" mtk: Probably: write permission is required for MS_BIND, with
+.\" the error EPERM if not present; CAP_DAC_OVERRIDE is required.
+.TP
+.B EBUSY
+.I source
+is already mounted. Or, it cannot be remounted read-only,
+because it still holds files open for writing.
+Or, it cannot be mounted on
+.I target
+because
+.I target
+is still busy (it is the working directory of some task,
+the mount point of another device, has open files, etc.).
+Or, it could not be unmounted because it is busy.
+.TP
+.B EFAULT
+One of the pointer arguments points outside the user address space.
+.TP
+.B EINVAL
+.I source
+had an invalid superblock.
+Or, a remount was attempted, while
+.I source
+was not already mounted on
+.IR target .
+Or, a move was attempted, while
+.I source
+was not a mount point, or was '/'.
+Or, an umount was attempted, while
+.I target
+was not a mount point.
+.TP
+.B ELOOP
+Too many link encountered during pathname resolution.
+Or, a move was attempted, while
+.I target
+is a descendant of
+.IR source .
+.TP
+.B EMFILE
+(In case no block device is required:)
+Table of dummy devices is full.
+.TP
+.B ENAMETOOLONG
+A pathname was longer than MAXPATHLEN.
+.TP
+.B ENODEV
+.I Filesystemtype
+not configured in the kernel.
+.TP
+.B ENOENT
+A pathname was empty or had a nonexistent component.
+.TP
+.B ENOMEM
+The kernel could not allocate a free page to copy filenames or data into.
+.TP
+.B ENOTBLK
+.I source
+is not a block device (and a device was required).
+.TP
+.B ENOTDIR
+The second argument, or a prefix of the first argument, is not
+a directory.
+.TP
+.B ENXIO
+The major number of the block device
+.I source
+is out of range.
+.TP
+.B EPERM
+The caller does not have the required privileges.
+.SH "CONFORMING TO"
+These functions are Linux-specific and should not be used in
+programs intended to be portable.
+.SH HISTORY
+The original
+.B umount
+function was called as \fIumount(device)\fP and would return ENOTBLK
+when called with something other than a block device.
+In Linux 0.98p4 a call \fIumount(dir)\fP was added, in order to
+support anonymous devices.
+In Linux 2.3.99-pre7 the call \fIumount(device)\fP was removed,
+leaving only \fIumount(dir)\fP (since now devices can be mounted
+in more than one place, so specifying the device does not suffice).
+.LP
+The original MS_SYNC flag was renamed MS_SYNCHRONOUS in 1.1.69
+when a different MS_SYNC was added to <mman.h>.
+.LP
+Before Linux 2.4 an attempt to execute a set-UID or set-GID program
+on a filesystem mounted with
+.B MS_NOSUID
+would fail with
+.BR EPERM .
+Since Linux 2.4 the set-UID and set-GID bits are just silently ignored
+in this case.
+.\" The change is in patch-2.4.0-prerelease.
+.SH "SEE ALSO"
+.BR path_resolution (2),
+.BR mount (8),
+.BR umount (8)