1.\" Copyright (c) 1980, 1989, 1993 2.\" The Regents of the University of California. All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 3. All advertising materials mentioning features or use of this software 13.\" must display the following acknowledgement: 14.\" This product includes software developed by the University of 15.\" California, Berkeley and its contributors. 16.\" 4. Neither the name of the University nor the names of its contributors 17.\" may be used to endorse or promote products derived from this software 18.\" without specific prior written permission. 19.\" 20.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 21.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 24.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30.\" SUCH DAMAGE. 31.\" 32.\" @(#)mount.2 8.3 (Berkeley) 5/24/95 33.\" $FreeBSD$ 34.\" 35.Dd February 23, 2005 36.Dt MOUNT 2 37.Os 38.Sh NAME 39.Nm mount , 40.Nm nmount , 41.Nm unmount 42.Nd mount or dismount a file system 43.Sh LIBRARY 44.Lb libc 45.Sh SYNOPSIS 46.In sys/param.h 47.In sys/mount.h 48.Ft int 49.Fn mount "const char *type" "const char *dir" "int flags" "void *data" 50.Ft int 51.Fn unmount "const char *dir" "int flags" 52.In sys/uio.h 53.Ft int 54.Fn nmount "struct iovec *iov" "u_int niov" "int flags" 55.Sh DESCRIPTION 56The 57.Fn mount 58system call grafts 59a file system object onto the system file tree 60at the point 61.Fa dir . 62The argument 63.Fa data 64describes the file system object to be mounted. 65The argument 66.Fa type 67tells the kernel how to interpret 68.Fa data 69(See 70.Fa type 71below). 72The contents of the file system 73become available through the new mount point 74.Fa dir . 75Any files in 76.Fa dir 77at the time 78of a successful mount are swept under the carpet so to speak, and 79are unavailable until the file system is unmounted. 80.Pp 81The 82.Fn nmount 83system call behaves similarly to 84.Fn mount , 85except that the mount options (file system type name, device to mount, 86mount-point name, etc.) are passed as an array of name-value pairs 87in the array 88.Fa iov , 89containing 90.Fa niov 91elements. 92The following options are required by all file systems: 93.Bl -item -offset indent -compact 94.It 95.Li fstype Ta file system type name (e.g., Dq Li procfs ) 96.It 97.Li fspath Ta mount point pathname (e.g., Dq Li /proc ) 98.El 99.Pp 100Depending on the file system type, other options may be 101recognized or required; 102for example, most disk-based file systems require a 103.Dq Li from 104option containing the pathname of a special device 105in addition to the options listed above. 106.Pp 107By default only the super-user may call the 108.Fn mount 109system call. 110This restriction can be removed by setting the 111.Va vfs.usermount 112.Xr sysctl 8 113variable 114to a non-zero value. 115.Pp 116The following 117.Fa flags 118may be specified to 119suppress default semantics which affect file system access. 120.Bl -tag -width MNT_SYNCHRONOUS 121.It Dv MNT_RDONLY 122The file system should be treated as read-only; 123even the super-user may not write on it. 124Specifying MNT_UPDATE without this option will upgrade 125a read-only file system to read/write. 126.It Dv MNT_NOEXEC 127Do not allow files to be executed from the file system. 128.It Dv MNT_NOSUID 129Do not honor setuid or setgid bits on files when executing them. 130This flag is set automatically when the caller is not the super-user. 131.It Dv MNT_NOATIME 132Disable update of file access times. 133.It Dv MNT_SNAPSHOT 134Create a snapshot of the file system. 135This is currently only supported on UFS2 file systems, see 136.Xr mksnap_ffs 8 137for more information. 138.It Dv MNT_SUIDDIR 139Directories with the SUID bit set chown new files to their own owner. 140This flag requires the SUIDDIR option to have been compiled into the kernel 141to have any effect. 142See the 143.Xr mount 8 144and 145.Xr chmod 2 146pages for more information. 147.It Dv MNT_SYNCHRONOUS 148All I/O to the file system should be done synchronously. 149.It Dv MNT_ASYNC 150All I/O to the file system should be done asynchronously. 151.It Dv MNT_FORCE 152Force a read-write mount even if the file system appears to be unclean. 153Dangerous. 154Together with 155.Dv MNT_UPDATE 156and 157.Dv MNT_RDONLY , 158specify that the file system is to be forcibly downgraded to a read-only 159mount even if some files are open for writing. 160.It Dv MNT_NOCLUSTERR 161Disable read clustering. 162.It Dv MNT_NOCLUSTERW 163Disable write clustering. 164.El 165.Pp 166The flag 167.Dv MNT_UPDATE 168indicates that the mount command is being applied 169to an already mounted file system. 170This allows the mount flags to be changed without requiring 171that the file system be unmounted and remounted. 172Some file systems may not allow all flags to be changed. 173For example, 174many file systems will not allow a change from read-write to read-only. 175.Pp 176The flag 177.Dv MNT_RELOAD 178causes the vfs subsystem to update its data structures pertaining to 179the specified already mounted file system. 180.Pp 181The 182.Fa type 183argument names the file system. 184The types of file systems known to the system can be obtained with 185.Xr lsvfs 1 . 186.Pp 187The 188.Fa data 189argument 190is a pointer to a structure that contains the type 191specific arguments to mount. 192The format for these argument structures is described in the 193manual page for each file system. 194By convention file system manual pages are named 195by prefixing ``mount_'' to the name of the file system as returned by 196.Xr lsvfs 1 . 197Thus the 198.Tn NFS 199file system is described by the 200.Xr mount_nfs 8 201manual page. 202It should be noted that a manual page for default 203file systems, known as UFS and UFS2, does not exist. 204.Pp 205The 206.Fn unmount 207system call disassociates the file system from the specified 208mount point 209.Fa dir . 210.Pp 211The 212.Fa flags 213argument may include 214.Dv MNT_FORCE 215to specify that the file system should be forcibly unmounted 216even if files are still active. 217Active special devices continue to work, 218but any further accesses to any other active files result in errors 219even if the file system is later remounted. 220.Pp 221If the 222.Dv MNT_BYFSID 223flag is specified, 224.Fa dir 225should instead be a file system ID encoded as 226.Dq Li FSID : Ns Ar val0 : Ns Ar val1 , 227where 228.Ar val0 229and 230.Ar val1 231are the contents of the 232.Vt fsid_t 233.Va val[] 234array in decimal. 235The file system that has the specified file system ID will be unmounted. 236.Sh RETURN VALUES 237.Rv -std 238.Sh ERRORS 239The 240.Fn mount 241and 242.Fn nmount 243system calls will fail when one of the following occurs: 244.Bl -tag -width Er 245.It Bq Er EPERM 246The caller is neither the super-user nor the owner of 247.Fa dir . 248.It Bq Er ENAMETOOLONG 249A component of a pathname exceeded 255 characters, 250or the entire length of a path name exceeded 1023 characters. 251.It Bq Er ELOOP 252Too many symbolic links were encountered in translating a pathname. 253.It Bq Er ENOENT 254A component of 255.Fa dir 256does not exist. 257.It Bq Er ENOTDIR 258A component of 259.Fa name 260is not a directory, 261or a path prefix of 262.Fa special 263is not a directory. 264.It Bq Er EBUSY 265Another process currently holds a reference to 266.Fa dir . 267.It Bq Er EFAULT 268The 269.Fa dir 270argument 271points outside the process's allocated address space. 272.El 273.Pp 274The following errors can occur for a 275.Em ufs 276file system mount: 277.Bl -tag -width Er 278.It Bq Er ENODEV 279A component of ufs_args 280.Fa fspec 281does not exist. 282.It Bq Er ENOTBLK 283The 284.Fa fspec 285argument 286is not a block device. 287.It Bq Er ENXIO 288The major device number of 289.Fa fspec 290is out of range (this indicates no device driver exists 291for the associated hardware). 292.It Bq Er EBUSY 293.Fa fspec 294is already mounted. 295.It Bq Er EMFILE 296No space remains in the mount table. 297.It Bq Er EINVAL 298The super block for the file system had a bad magic 299number or an out of range block size. 300.It Bq Er ENOMEM 301Not enough memory was available to read the cylinder 302group information for the file system. 303.It Bq Er EIO 304An I/O error occurred while reading the super block or 305cylinder group information. 306.It Bq Er EFAULT 307The 308.Fa fspec 309argument 310points outside the process's allocated address space. 311.El 312.Pp 313The following errors can occur for a 314.Em nfs 315file system mount: 316.Bl -tag -width Er 317.It Bq Er ETIMEDOUT 318.Em Nfs 319timed out trying to contact the server. 320.It Bq Er EFAULT 321Some part of the information described by nfs_args 322points outside the process's allocated address space. 323.El 324.Pp 325The 326.Fn unmount 327system call may fail with one of the following errors: 328.Bl -tag -width Er 329.It Bq Er EPERM 330The caller is neither the super-user nor the user who issued the corresponding 331.Fn mount 332call. 333.It Bq Er ENAMETOOLONG 334The length of the path name exceeded 1023 characters. 335.It Bq Er EINVAL 336The requested directory is not in the mount table. 337.It Bq Er ENOENT 338The file system ID specified using 339.Dv MNT_BYFSID 340was not found in the mount table. 341.It Bq Er EINVAL 342The file system ID specified using 343.Dv MNT_BYFSID 344could not be decoded. 345.It Bq Er EINVAL 346The specified file system is the root file system. 347.It Bq Er EBUSY 348A process is holding a reference to a file located 349on the file system. 350.It Bq Er EIO 351An I/O error occurred while writing cached file system information. 352.It Bq Er EFAULT 353The 354.Fa dir 355argument 356points outside the process's allocated address space. 357.El 358.Pp 359A 360.Em ufs 361mount can also fail if the maximum number of file systems are currently 362mounted. 363.Sh SEE ALSO 364.Xr lsvfs 1 , 365.Xr mksnap_ffs 8 , 366.Xr mount 8 , 367.Xr umount 8 368.Sh HISTORY 369The 370.Fn mount 371and 372.Fn unmount 373functions appeared in 374.At v6 . 375.Sh BUGS 376Some of the error codes need translation to more obvious messages. 377