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