xref: /freebsd/share/man/man5/fstab.5 (revision ab0b9f6b3073e6c4d1dfbf07444d7db67a189a96)
1.\" Copyright (c) 1980, 1989, 1991, 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.\"     @(#)fstab.5	8.1 (Berkeley) 6/5/93
33.\" $FreeBSD$
34.\"
35.Dd September 10, 2013
36.Dt FSTAB 5
37.Os
38.Sh NAME
39.Nm fstab
40.Nd static information about the file systems
41.Sh SYNOPSIS
42.In fstab.h
43.Sh DESCRIPTION
44The file
45.Nm
46contains descriptive information about the various file
47systems.
48.Nm
49is only read by programs, and not written;
50it is the duty of the system administrator to properly create
51and maintain this file.
52Each file system is described on a separate line;
53fields on each line are separated by tabs or spaces.
54The order of records in
55.Nm
56is important because
57.Xr fsck 8 ,
58.Xr mount 8 ,
59and
60.Xr umount 8
61sequentially iterate through
62.Nm
63doing their thing.
64.Pp
65The first field,
66.Pq Fa fs_spec ,
67describes the special device or
68remote file system to be mounted.
69The contents are decoded by the
70.Xr strunvis 3
71function.
72This allows using spaces or tabs in the device name which would be
73interpreted as field separators otherwise.
74.Pp
75The second field,
76.Pq Fa fs_file ,
77describes the mount point for the file system.
78For swap partitions, this field should be specified as
79.Dq none .
80The contents are decoded by the
81.Xr strunvis 3
82function, as above.
83.Pp
84The third field,
85.Pq Fa fs_vfstype ,
86describes the type of the file system.
87The system can support various file system types.
88Only the root, /usr, and /tmp file systems need be statically
89compiled into the kernel;
90everything else will be automatically loaded at mount
91time.
92(Exception: the FFS cannot currently be demand-loaded.)
93Some people still prefer to statically
94compile other file systems as well.
95.Pp
96The fourth field,
97.Pq Fa fs_mntops ,
98describes the mount options associated with the file system.
99It is formatted as a comma separated list of options.
100It contains at least the type of mount (see
101.Fa fs_type
102below) plus any additional options appropriate to the file system type.
103See the options flag
104.Pq Fl o
105in the
106.Xr mount 8
107page and the file system specific page, such as
108.Xr mount_nfs 8 ,
109for additional options that may be specified.
110All options that can be given to the file system specific mount commands
111can be used in
112.Nm
113as well.
114They just need to be formatted a bit differently.
115The arguments of the
116.Fl o
117option can be used without the preceding
118.Fl o
119flag.
120Other options need both the file system specific flag and its argument,
121separated by an equal sign.
122For example, mounting an
123.Xr msdosfs 5
124filesystem, the options
125.Bd -literal -offset indent
126-o sync -o noatime -m 644 -M 755 -u foo -g bar
127.Ed
128.Pp
129should be written as
130.Bd -literal -offset indent
131sync,noatime,-m=644,-M=755,-u=foo,-g=bar
132.Ed
133.Pp
134in the option field of
135.Nm .
136.Pp
137If the options
138.Dq userquota
139and/or
140.Dq groupquota
141are specified,
142the file system is automatically processed by the
143.Xr quotacheck 8
144command, and user and/or group disk quotas are enabled with
145.Xr quotaon 8 .
146By default,
147file system quotas are maintained in files named
148.Pa quota.user
149and
150.Pa quota.group
151which are located at the root of the associated file system.
152These defaults may be overridden by putting an equal sign
153and an alternative absolute pathname following the quota option.
154Thus, if the user quota file for
155.Pa /tmp
156is stored in
157.Pa /var/quotas/tmp.user ,
158this location can be specified as:
159.Bd -literal -offset indent
160userquota=/var/quotas/tmp.user
161.Ed
162.Pp
163If the option
164.Dq failok
165is specified,
166the system will ignore any error which happens during the mount of that filesystem,
167which would otherwise cause the system to drop into single user mode.
168This option is implemented by the
169.Xr mount 8
170command and will not be passed to the kernel.
171.Pp
172If the option
173.Dq noauto
174is specified, the file system will not be automatically
175mounted at system startup.
176Note that, for network file systems
177of third party types
178(i.e., types supported by additional software
179not included in the base system)
180to be automatically mounted at system startup,
181the
182.Va extra_netfs_types
183.Xr rc.conf 5
184variable must be used to extend the
185.Xr rc 8
186startup script's list of network file system types.
187.Pp
188If the option
189.Dq late
190is specified, the file system will be automatically mounted
191at a stage of system startup after remote mount points are mounted.
192For more detail about this option,
193see the
194.Xr mount 8
195manual page.
196.Pp
197The type of the mount is extracted from the
198.Fa fs_mntops
199field and stored separately in the
200.Fa fs_type
201field (it is not deleted from the
202.Fa fs_mntops
203field).
204If
205.Fa fs_type
206is
207.Dq rw
208or
209.Dq ro
210then the file system whose name is given in the
211.Fa fs_file
212field is normally mounted read-write or read-only on the
213specified special file.
214.Pp
215If
216.Fa fs_type
217is
218.Dq sw
219then the special file is made available as a piece of swap
220space by the
221.Xr swapon 8
222command at the end of the system reboot procedure.
223For vnode-backed swap spaces,
224.Dq file
225is supported in the
226.Fa fs_mntops
227field.
228When
229.Fa fs_spec
230is an
231.Xr md 4
232device file
233.Pq Do md Dc or Do md[0-9]* Dc
234and
235.Dq file
236is specified in
237.Fa fs_mntopts ,
238an
239.Xr md 4
240device is created with the specified file used as backing store,
241and then the new device is used as swap space.
242Swap entries on
243.Pa .eli
244devices will cause automatic creation of encrypted devices.
245The
246.Dq ealgo ,
247.Dq aalgo ,
248.Dq keylength ,
249and
250.Dq sectorsize
251options may be passed to control those
252.Xr geli 8
253parameters.
254The fields other than
255.Fa fs_spec
256and
257.Fa fs_type
258are unused.
259If
260.Fa fs_type
261is specified as
262.Dq xx
263the entry is ignored.
264This is useful to show disk partitions which are currently unused.
265.Pp
266The fifth field,
267.Pq Fa fs_freq ,
268is used for these file systems by the
269.Xr dump 8
270command to determine which file systems need to be dumped.
271If the fifth field is not present, a value of zero is returned and
272.Nm dump
273will assume that the file system does not need to be dumped.
274If the fifth field is greater than 0, then it specifies the number of days
275between dumps for this file system.
276.Pp
277The sixth field,
278.Pq Fa fs_passno ,
279is used by the
280.Xr fsck 8
281and
282.Xr quotacheck 8
283programs to determine the order in which file system and quota
284checks are done at reboot time.
285The
286.Fa fs_passno
287field can be any value between 0 and
288.Ql INT_MAX Ns -1 .
289.Pp
290The root file system should be specified with a
291.Fa fs_passno
292of 1, and other file systems should have a
293.Fa fs_passno
294of 2 or greater.
295A file system with a
296.Fa fs_passno
297value of 1 is always checked sequentially and be completed before
298another file system is processed, and it will be processed before
299all file systems with a larger
300.Fa fs_passno .
301.Pp
302For any given value of
303.Fa fs_passno ,
304file systems within a drive will be checked sequentially,
305but file systems on different drives will be checked at the
306same time to utilize parallelism available in the hardware.
307Once all file system checks are complete for the current
308.Fa fs_passno ,
309the same process will start over for the next
310.Fa fs_passno .
311.Pp
312If the sixth field is not present or is zero,
313a value of zero is returned and
314.Xr fsck 8
315and
316.Xr quotacheck 8
317will assume that the file system does not need to be checked.
318.Pp
319The
320.Fa fs_passno
321field can be used to implement finer control when
322the system utilities may determine that the file system resides
323on a different physical device, when it actually does not, as with a
324.Xr ccd 4
325device.
326All file systems with a lower
327.Fa fs_passno
328value will be completed before starting on file systems with a
329higher
330.Fa fs_passno
331value.
332E.g. all file systems with a
333.Fa fs_passno
334of 2 will be completed before any file systems with a
335.Fa fs_passno
336of 3 or greater are started.
337Gaps are allowed between the different
338.Fa fs_passno
339values.
340E.g. file systems listed in
341.Pa /etc/fstab
342may have
343.Fa fs_passno
344values such as 0, 1, 2, 15, 100, 200, 300, and may appear in any order
345within
346.Pa /etc/fstab .
347.Bd -literal
348#define	FSTAB_RW	"rw"	/* read/write device */
349#define	FSTAB_RQ	"rq"	/* read/write with quotas */
350#define	FSTAB_RO	"ro"	/* read-only device */
351#define	FSTAB_SW	"sw"	/* swap device */
352#define	FSTAB_XX	"xx"	/* ignore totally */
353
354struct fstab {
355	char	*fs_spec;	/* block special device name */
356	char	*fs_file;	/* file system path prefix */
357	char	*fs_vfstype;	/* File system type, ufs, nfs */
358	char	*fs_mntops;	/* Mount options ala -o */
359	char	*fs_type;	/* FSTAB_* from fs_mntops */
360	int	fs_freq;	/* dump frequency, in days */
361	int	fs_passno;	/* pass number on parallel fsck */
362};
363.Ed
364.Pp
365The proper way to read records from
366.Pa fstab
367is to use the routines
368.Xr getfsent 3 ,
369.Xr getfsspec 3 ,
370.Xr getfstype 3 ,
371and
372.Xr getfsfile 3 .
373.Sh FILES
374.Bl -tag -width /etc/fstab -compact
375.It Pa /etc/fstab
376The file
377.Nm
378resides in
379.Pa /etc .
380.El
381.Sh EXAMPLES
382.Bd -literal
383# Device	Mountpoint	FStype	Options		Dump	Pass#
384#
385# UFS file system.
386/dev/da0p2	/		ufs	rw		1	1
387#
388# Swap space on a block device.
389/dev/da0p1	none		swap	sw		0	0
390#
391# Swap space using a block device with GBDE/GELI encyption.
392# aalgo, ealgo, keylen, sectorsize options are available
393# for .eli devices.
394/dev/da1p1.bde	none		swap	sw		0	0
395/dev/da1p2.eli	none		swap	sw		0	0
396#
397# tmpfs.
398tmpfs		/tmp		tmpfs	rw,size=1g,mode=1777	0 0
399#
400# UFS file system on a swap-backed md(4).  /dev/md10 is
401# automatically created.  If it is "md", a unit number
402# will be automatically selected.
403md10		/scratch	mfs	rw,-s1g		0	0
404#
405# Swap space on a vnode-backed md(4).
406md11		none		swap	sw,file=/swapfile	0 0
407#
408# CDROM.  "noauto" option is typically used because the
409# media is removable.
410/dev/cd0	/cdrom		cd9660	ro,noauto	0	0
411#
412# NFS-exported file system.  "serv" is an NFS server name
413# or IP address.
414serv:/export	/nfs		nfs	rw,noinet6	0	0
415.Ed
416.Sh SEE ALSO
417.Xr getfsent 3 ,
418.Xr getvfsbyname 3 ,
419.Xr strunvis 3 ,
420.Xr ccd 4 ,
421.Xr dump 8 ,
422.Xr fsck 8 ,
423.Xr geli 8 ,
424.Xr mount 8 ,
425.Xr quotacheck 8 ,
426.Xr quotaon 8 ,
427.Xr swapon 8 ,
428.Xr umount 8
429.Sh HISTORY
430The
431.Nm
432file format appeared in
433.Bx 4.0 .
434