xref: /dragonfly/lib/libc/sys/mount.2 (revision 82730a9c)
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. Neither the name of the University nor the names of its contributors
13.\"    may be used to endorse or promote products derived from this software
14.\"    without specific prior written permission.
15.\"
16.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26.\" SUCH DAMAGE.
27.\"
28.\"     @(#)mount.2	8.3 (Berkeley) 5/24/95
29.\" $FreeBSD: src/lib/libc/sys/mount.2,v 1.20.2.8 2003/01/17 22:02:42 joerg Exp $
30.\" $DragonFly: src/lib/libc/sys/mount.2,v 1.6 2008/02/09 00:10:29 swildner Exp $
31.\"
32.Dd May 24, 1995
33.Dt MOUNT 2
34.Os
35.Sh NAME
36.Nm mount ,
37.Nm unmount
38.Nd mount or dismount a filesystem
39.Sh LIBRARY
40.Lb libc
41.Sh SYNOPSIS
42.In sys/param.h
43.In sys/mount.h
44.Ft int
45.Fn mount "const char *type" "const char *dir" "int flags" "void *data"
46.Ft int
47.Fn unmount "const char *dir" "int flags"
48.Sh DESCRIPTION
49The
50.Fn mount
51function grafts
52a filesystem object onto the system file tree
53at the point
54.Ar dir .
55The argument
56.Ar data
57describes the filesystem object to be mounted.
58The argument
59.Ar type
60tells the kernel how to interpret
61.Ar data
62(See
63.Ar type
64below).
65The contents of the filesystem
66become available through the new mount point
67.Ar dir .
68Any files in
69.Ar dir
70at the time
71of a successful mount are swept under the carpet so to speak, and
72are unavailable until the filesystem is unmounted.
73.Pp
74By default only the super-user may call the
75.Fn mount
76function.
77This restriction can be removed by setting the sysctl
78.Va vfs.usermount
79to a non-zero value.
80.Pp
81The following
82.Ar flags
83may be specified to
84suppress default semantics which affect filesystem access.
85.Bl -tag -width MNT_SYNCHRONOUS
86.It Dv MNT_RDONLY
87The filesystem should be treated as read-only;
88Even the super-user may not write on it.
89Specifying MNT_UPDATE without this option will upgrade
90a read-only filesystem to read/write.
91.It Dv MNT_NOEXEC
92Do not allow files to be executed from the filesystem.
93.It Dv MNT_NOSUID
94Do not honor setuid or setgid bits on files when executing them.
95This flag is set automatically when the caller is not the super-user.
96.It Dv MNT_NOATIME
97Disable update of file access times.
98.It Dv MNT_NODEV
99Do not interpret special files on the filesystem.
100This flag is set automatically when the caller is not the super-user.
101.It Dv MNT_SUIDDIR
102Directories with the SUID bit set chown new files to their own owner.
103.It Dv MNT_SYNCHRONOUS
104All I/O to the filesystem should be done synchronously.
105.It Dv MNT_ASYNC
106All I/O to the filesystem should be done asynchronously.
107.It Dv MNT_FORCE
108Force a read-write mount even if the filesystem appears to be unclean.
109Dangerous.
110.It Dv MNT_NOCLUSTERR
111Disable read clustering.
112.It Dv MNT_NOCLUSTERW
113Disable write clustering.
114.El
115.Pp
116The flag
117.Dv MNT_UPDATE
118indicates that the mount command is being applied
119to an already mounted filesystem.
120This allows the mount flags to be changed without requiring
121that the filesystem be unmounted and remounted.
122Some filesystems may not allow all flags to be changed.
123For example,
124many filesystems will not allow a change from read-write to read-only.
125.Pp
126The flag
127.Dv MNT_RELOAD
128causes the vfs subsystem to update its data structures pertaining to
129the specified already mounted filesystem.
130.Pp
131The
132.Fa type
133argument names the filesystem.
134The types of filesystems known to the system can be obtained with
135.Xr lsvfs 1 .
136.Pp
137.Fa Data
138is a pointer to a structure that contains the type
139specific arguments to mount.
140The format for these argument structures is described in the
141manual page for each filesystem.
142By convention filesystem manual pages are named
143by prefixing ``mount_'' to the name of the filesystem as returned by
144.Xr lsvfs 1 .
145Thus the
146.Nm NFS
147filesystem is described by the
148.Xr mount_nfs 8
149manual page.
150.Pp
151The
152.Fn unmount
153function call disassociates the filesystem from the specified
154mount point
155.Fa dir .
156.Pp
157The
158.Fa flags
159argument may specify
160.Dv MNT_FORCE
161to specify that the filesystem should be forcibly unmounted or made read-only
162(if MNT_UPDATE and MNT_RDONLY are also specified)
163even if files are still active.
164Active special devices continue to work,
165but any further accesses to any other active files result in errors
166even if the filesystem is later remounted.
167.Pp
168The
169.Dv MNT_SUIDDIR
170option requires the SUIDDIR option to have been compiled into the kernel
171to have any effect.
172See the
173.Xr mount 8
174and
175.Xr chmod 2
176pages for more information.
177.Sh RETURN VALUES
178.Rv -std
179.Sh ERRORS
180The
181.Fn mount
182function will fail when one of the following occurs:
183.Bl -tag -width Er
184.It Bq Er EPERM
185The caller is neither the super-user nor the owner of
186.Ar dir ,
187or
188.Ar dir
189belongs to a filesystem that does not support stacked mounts.
190.It Bq Er ENAMETOOLONG
191A component of a pathname exceeded 255 characters,
192or the entire length of a path name exceeded 1023 characters.
193.It Bq Er ELOOP
194Too many symbolic links were encountered in translating a pathname.
195.It Bq Er ENOENT
196A component of
197.Fa dir
198does not exist.
199.It Bq Er ENOTDIR
200A component of
201.Ar name
202is not a directory,
203or a path prefix of
204.Ar special
205is not a directory.
206.It Bq Er EBUSY
207Another process currently holds a reference to
208.Fa dir .
209.It Bq Er EFAULT
210.Fa Dir
211points outside the process's allocated address space.
212.El
213.Pp
214The following errors can occur for a
215.Em ufs
216filesystem mount:
217.Bl -tag -width Er
218.It Bq Er ENODEV
219A component of ufs_args
220.Ar fspec
221does not exist.
222.It Bq Er ENOTBLK
223.Ar Fspec
224is not a block device.
225.It Bq Er ENXIO
226The major device number of
227.Ar fspec
228is out of range (this indicates no device driver exists
229for the associated hardware).
230.It Bq Er EBUSY
231.Ar Fspec
232is already mounted.
233.It Bq Er EMFILE
234No space remains in the mount table.
235.It Bq Er EINVAL
236The super block for the filesystem had a bad magic
237number or an out of range block size.
238.It Bq Er ENOMEM
239Not enough memory was available to read the cylinder
240group information for the filesystem.
241.It Bq Er EIO
242An I/O error occurred while reading the super block or
243cylinder group information.
244.It Bq Er EFAULT
245.Ar Fspec
246points outside the process's allocated address space.
247.El
248.Pp
249The following errors can occur for a
250.Em nfs
251filesystem mount:
252.Bl -tag -width Er
253.It Bq Er ETIMEDOUT
254.Em Nfs
255timed out trying to contact the server.
256.It Bq Er EFAULT
257Some part of the information described by nfs_args
258points outside the process's allocated address space.
259.El
260.Pp
261The following errors can occur for a
262.Em mfs
263filesystem mount:
264.Bl -tag -width Er
265.It Bq Er EMFILE
266No space remains in the mount table.
267.It Bq Er EINVAL
268The super block for the filesystem had a bad magic
269number or an out of range block size.
270.It Bq Er ENOMEM
271Not enough memory was available to read the cylinder
272group information for the filesystem.
273.It Bq Er EIO
274A paging error occurred while reading the super block or
275cylinder group information.
276.It Bq Er EFAULT
277.Em Name
278points outside the process's allocated address space.
279.El
280.Pp
281The
282.Fn unmount
283function may fail with one of the following errors:
284.Bl -tag -width Er
285.It Bq Er EPERM
286The caller is neither the super-user nor the user who issued the corresponding
287.Xr mount 2
288call.
289.It Bq Er ENOTDIR
290A component of the path is not a directory.
291.It Bq Er ENAMETOOLONG
292A component of a pathname exceeded 255 characters,
293or an entire path name exceeded 1023 characters.
294.It Bq Er ELOOP
295Too many symbolic links were encountered in translating the pathname.
296.It Bq Er EINVAL
297The requested directory is not in the mount table.
298.It Bq Er EBUSY
299A process is holding a reference to a file located
300on the filesystem.
301.It Bq Er EIO
302An I/O error occurred while writing cached filesystem information.
303.It Bq Er EFAULT
304.Fa Dir
305points outside the process's allocated address space.
306.El
307.Pp
308A
309.Em ufs
310or
311.Em mfs
312mount can also fail if the maximum number of filesystems are currently
313mounted.
314.Sh SEE ALSO
315.Xr lsvfs 1 ,
316.Xr mountctl 2 ,
317.Xr mfs 8 ,
318.Xr mount 8 ,
319.Xr sysctl 8 ,
320.Xr umount 8
321.Sh HISTORY
322.Fn Mount
323and
324.Fn unmount
325function calls appeared in
326.At v6 .
327.Sh BUGS
328Some of the error codes need translation to more obvious messages.
329