umount(2) - Online Manual Page Of Unix/Linux

  Command: man perldoc info search(apropos)

WebSearch:
Our Recommended Sites: Full-Featured Editor
 

MOUNT(2)                            Linux Programmer's Manual                            MOUNT(2)



NAME
       mount, umount - mount and unmount filesystems

SYNOPSIS
       #include 

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

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 directory 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 filesys-
       tem can be visible at multiple mount points, and multiple 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  for libc4 and libc5 and
       in  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 vis-
              ible  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_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
              chattr(8).)

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

       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  sys-
              tem.

       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.  Typically 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 behaviour 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 filesys-
       tem 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 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.

       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 .

       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)