Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MOUNT(2)		   Linux Programmer's Manual		      MOUNT(2)

NAME
       mount, umount - mount and unmount filesystems.

SYNOPSIS
       #include	<sys/mount.h>

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

       int umount(const	char *target);

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

DESCRIPTION
       mount attaches the filesystem specified by source  (which  is  often  a
       device name, but	can also be a directory	name or	a dummy) to the	direc-
       tory specified by target.

       umount and umount2 remove the attachment	of  the	 (topmost)  filesystem
       mounted on target.

       Only the	super-user may mount and unmount filesystems.  Since Linux 2.4
       a single	filesystem can be visible at multiple mount points, and	multi-
       ple mounts can be stacked on the	same mount point.

       Values  for  the	 filesystemtype	 argument  supported by	the kernel are
       listed in /proc/filesystems (like  "minix",  "ext2",  "msdos",  "proc",
       "nfs",  "iso9660"  etc.).   Further types may become available when the
       appropriate modules are loaded.

       The mountflags argument may have	the magic number  0xC0ED  (MS_MGC_VAL)
       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:

       MS_BIND
	      (Linux 2.4 onwards) 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  chroot(2)
	      jails.   The  filesystemtype, mountflags,	and data arguments are
	      ignored.

       MS_MANDLOCK
	      Permit mandatory locking on files	in this	file system.   (Manda-
	      tory  locking  must  still  be  enabled  on a per-file basis, as
	      described	in fcntl(2).)

       MS_MOVE
	      Move a subtree.  source specifies	an existing  mount  point  and
	      target  specifies	 the  new location.  The move is atomic: at no
	      point is the subtree unmounted.  The filesystemtype, mountflags,
	      and data arguments are ignored.

       MS_NOATIME
	      Do not update access times for (all types	of) files on this file
	      system.

       MS_NODEV
	      Do not allow access to devices (special files) on	this file sys-
	      tem.

       MS_NODIRATIME
	      Do not update access times for directories on this file system.

       MS_NOEXEC
	      Do not allow programs to be executed from	this file system.

       MS_NOSUID
	      Do  not  honour set-UID and set-GID bits when executing programs
	      from this	file system.

       MS_RDONLY
	      Mount file system	read-only.

       MS_REMOUNT
	      Remount an existing mount.  This is allows  you  to  change  the
	      mountflags  and  data  of	 an  existing  mount without having to
	      unmount and remount the file system.  source and	target	should
	      be  the  same  values  specified	in  the	 initial mount() call;
	      filesystemtype is	ignored.

       MS_SYNCHRONOUS
	      Make writes on this  file	 system	 synchronous  (as  though  the
	      O_SYNC  flag to open(2) was specified for	all file opens to this
	      file system).

       From Linux 2.4 onwards, the MS_NODEV, MS_NOEXEC,	 and  MS_NOSUID	 flags
       are settable on a per-mount point basis.

       The  data argument is interpreted by the	different file systems.	 Typi-
       cally it	is a string of comma-separated options understood by this file
       system.	 See  mount(8)	for  details of	the options available for each
       filesystem type.

       Linux 2.1.116 added the umount2() system	call,  which,  like  umount(),
       unmounts	 a  target, but	allows additional flags	controlling the	behav-
       iour of the operation:

       MNT_FORCE
	      Force unmount even  if  busy.   (Since  2.1.116.	Only  for  NFS
	      mounts.)

       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.)

RETURN VALUE
       On  success,  zero is returned.	On error, -1 is	returned, and errno is
       set appropriately.

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.

       EPERM  The user is not the super-user.

       ENODEV Filesystemtype not configured in the kernel.

       ENOTBLK
	      Source is	not a block device (and	a device was required).

       EBUSY  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 target	because	target is still	busy (it is the	 work-
	      ing  directory  of some task, the	mount point of another device,
	      has open files, etc.).  Or, it could not be unmounted because it
	      is busy.

       EINVAL Source  had an invalid superblock.  Or, a	remount	was attempted,
	      while source was not already mounted on target.  Or, a move  was
	      attempted,  while	source was not a mount point, or was '/'.  Or,
	      an umount	was attempted, while target was	not a mount point.

       ENOTDIR
	      The second argument, or a	prefix of the first argument, is not a
	      directory.

       EFAULT One  of  the  pointer  arguments points outside the user address
	      space.

       ENOMEM The kernel could not allocate a free page	to copy	 filenames  or
	      data into.

       ENAMETOOLONG
	      A	pathname was longer than MAXPATHLEN.

       ENOENT A	pathname was empty or had a nonexistent	component.

       ELOOP  Too  many	 link  encountered  during pathname resolution.	 Or, a
	      move was attempted, while	target is a descendant of source.

       EACCES A	component of a path was	not searchable.
	      Or, mounting a read-only filesystem was attempted	without	giving
	      the MS_RDONLY flag.
	      Or,  the	block device Source is located on a filesystem mounted
	      with the MS_NODEV	option.

       ENXIO  The major	number of the block device source is out of range.

       EMFILE (In case no block	device is required:) Table of dummy devices is
	      full.

CONFORMING TO
       These  functions	 are Linux-specific and	should not be used in programs
       intended	to be portable.

HISTORY
       The original umount function was	called	as  umount(device)  and	 would
       return  ENOTBLK	when  called with something other than a block device.
       In Linux	0.98p4 a call umount(dir)  was	added,	in  order  to  support
       anonymous  devices.   In	 Linux 2.3.99-pre7 the call umount(device) was
       removed,	leaving	only umount(dir) (since	now devices can	be mounted  in
       more than one place, so specifying the device does not suffice).

       The  original  MS_SYNC flag was renamed MS_SYNCHRONOUS in 1.1.69	when a
       different MS_SYNC was added to <mman.h>.

       Before Linux 2.4	an attempt to execute a	set-UID	or set-GID program  on
       a filesystem mounted with MS_NOSUID would fail with EPERM.  Since Linux
       2.4 the set-UID and set-GID bits	are  just  silently  ignored  in  this
       case.

SEE ALSO
       mount(8), umount(8)

Linux 2.5			  2002-06-11			      MOUNT(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | CONFORMING TO | HISTORY | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=mount&sektion=2&manpath=Red+Hat+9>

home | help