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

FreeBSD Manual Pages

  
 
  

home | help
MOUNT(2)		      System Calls Manual		      MOUNT(2)

NAME
       mount, unmount -- mount or dismount a filesystem

LIBRARY
       Standard	C Library (libc, -lc)

SYNOPSIS
       #include	<sys/param.h>
       #include	<sys/mount.h>

       int
       mount(const char	*type, const char *dir,	int flags, void	*data);

       int
       unmount(const char *dir,	int flags);

DESCRIPTION
       The  mount()  function  grafts a	filesystem object onto the system file
       tree at the point dir.  The argument data describes the filesystem  ob-
       ject  to	 be mounted.  The argument type	tells the kernel how to	inter-
       pret data (See type below).  The	 contents  of  the  filesystem	become
       available  through  the	new  mount point dir.  Any files in dir	at the
       time of a successful mount are swept under the carpet so	to speak,  and
       are unavailable until the filesystem is unmounted.

       The  following  flags  may  be  specified to suppress default semantics
       which affect filesystem access.

       MNT_RDONLY	The filesystem should be treated  as  read-only;  Even
			the  super-user	 may  not  write  on  it.   Specifying
			MNT_UPDATE without this	option will  upgrade  a	 read-
			only filesystem	to read/write.

       MNT_NOEXEC	Do not allow files to be executed from the filesystem.

       MNT_NOSUID	Do  not	honor setuid or	setgid bits on files when exe-
			cuting them.

       MNT_NOATIME	Disable	update of file access times.

       MNT_NODEV	Do not interpret special files on the filesystem.

       MNT_SUIDDIR	Directories with the SUID bit set chown	new  files  to
			their own owner.

       MNT_SYNCHRONOUS	All  I/O  to  the  filesystem  should be done synchro-
			nously.

       MNT_ASYNC	All I/O	to the filesystem  should  be  done  asynchro-
			nously.

       MNT_FORCE	Force  a  read-write  mount even if the	filesystem ap-
			pears to be unclean.  Dangerous.

       MNT_NOCLUSTERR	Disable	read clustering.

       MNT_NOCLUSTERW	Disable	write clustering.

       The flag	MNT_UPDATE indicates that the mount command is	being  applied
       to  an  already	mounted	filesystem.  This allows the mount flags to be
       changed without requiring that the  filesystem  be  unmounted  and  re-
       mounted.	  Some filesystems may not allow all flags to be changed.  For
       example,	many filesystems will not allow	a change  from	read-write  to
       read-only.

       The  flag MNT_RELOAD causes the vfs subsystem to	update its data	struc-
       tures pertaining	to the specified already mounted filesystem.

       The type	argument names the filesystem.	The types of filesystems known
       to the system can be obtained with lsvfs(1).

       Data is a pointer to a structure	that contains the type specific	 argu-
       ments  to mount.	 The format for	these argument structures is described
       in the manual page for each filesystem.	By convention filesystem  man-
       ual pages are named by prefixing	``mount_'' to the name of the filesys-
       tem  as	returned by lsvfs(1).  Thus the	NFS filesystem is described by
       the mount_nfs(8)	manual page.

       The unmount() function call disassociates the filesystem	from the spec-
       ified mount point dir.

       The flags argument may specify MNT_FORCE	to specify that	the filesystem
       should be forcibly unmounted  or	 made  read-only  (if  MNT_UPDATE  and
       MNT_RDONLY  are also specified) even if files are still active.	Active
       special devices continue	to work, but any further accesses to any other
       active files result in errors even  if  the  filesystem	is  later  re-
       mounted.

       The  MNT_SUIDDIR	 option	 requires the SUIDDIR option to	have been com-
       piled into the kernel  to  have	any  effect.   See  the	 mount(8)  and
       chmod(2)	pages for more information.

RETURN VALUES
       Upon  successful	 completion,  the  value  0 is returned; otherwise the
       value -1	is returned and	the global variable errno is set  to  indicate
       the error.

ERRORS
       The mount() function will fail when one of the following	occurs:

       [EPERM]		  The caller is	not the	super-user.

       [ENAMETOOLONG]	  A  component	of a pathname exceeded 255 characters,
			  or the entire	length of a path  name	exceeded  1023
			  characters.

       [ELOOP]		  Too  many  symbolic links were encountered in	trans-
			  lating a pathname.

       [ENOENT]		  A component of dir does not exist.

       [ENOTDIR]	  A component of name is not a directory,  or  a  path
			  prefix of special is not a directory.

       [EBUSY]		  Another process currently holds a reference to dir.

       [EFAULT]		  Dir  points  outside the process's allocated address
			  space.

       The following errors can	occur for a ufs	filesystem mount:

       [ENODEV]		  A component of ufs_args fspec	does not exist.

       [ENOTBLK]	  Fspec	is not a block device.

       [ENXIO]		  The major device number of fspec  is	out  of	 range
			  (this	 indicates no device driver exists for the as-
			  sociated hardware).

       [EBUSY]		  Fspec	is already mounted.

       [EMFILE]		  No space remains in the mount	table.

       [EINVAL]		  The super block for the filesystem had a  bad	 magic
			  number or an out of range block size.

       [ENOMEM]		  Not enough memory was	available to read the cylinder
			  group	information for	the filesystem.

       [EIO]		  An  I/O error	occurred while reading the super block
			  or cylinder group information.

       [EFAULT]		  Fspec	points outside the process's allocated address
			  space.

       The following errors can	occur for a nfs	filesystem mount:

       [ETIMEDOUT]	  Nfs timed out	trying to contact the server.

       [EFAULT]		  Some part of the information described  by  nfs_args
			  points   outside  the	 process's  allocated  address
			  space.

       The following errors can	occur for a mfs	filesystem mount:

       [EMFILE]		  No space remains in the mount	table.

       [EINVAL]		  The super block for the filesystem had a  bad	 magic
			  number or an out of range block size.

       [ENOMEM]		  Not enough memory was	available to read the cylinder
			  group	information for	the filesystem.

       [EIO]		  A  paging  error  occurred  while  reading the super
			  block	or cylinder group information.

       [EFAULT]		  Name points outside the process's allocated  address
			  space.

       The unmount() function may fail with one	of the following errors:

       [EPERM]		  The caller is	not the	super-user.

       [ENOTDIR]	  A component of the path is not a directory.

       [ENAMETOOLONG]	  A  component	of a pathname exceeded 255 characters,
			  or an	entire path name exceeded 1023 characters.

       [ELOOP]		  Too many symbolic links were encountered  in	trans-
			  lating the pathname.

       [EINVAL]		  The requested	directory is not in the	mount table.

       [EBUSY]		  A  process  is holding a reference to	a file located
			  on the filesystem.

       [EIO]		  An I/O error occurred	while writing cached  filesys-
			  tem information.

       [EFAULT]		  Dir  points  outside the process's allocated address
			  space.

       A ufs or	mfs mount can also fail	if the maximum number  of  filesystems
       are currently mounted.

SEE ALSO
       lsvfs(1), mfs(8), mount(8), umount(8)

BUGS
       Some of the error codes need translation	to more	obvious	messages.

HISTORY
       Mount() and unmount() function calls appeared in	Version	6 AT&T UNIX.

FreeBSD	4.7			 May 24, 1995			      MOUNT(2)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mount&sektion=2&manpath=FreeBSD+4.7-RELEASE>

home | help