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