diff options
Diffstat (limited to 'man2/mount.2')
-rw-r--r-- | man2/mount.2 | 323 |
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) |