1 .\" Copyright (c) 2001 Networks Associates Technology, Inc.
2 .\" All rights reserved.
4 .\" This software was developed for the FreeBSD Project by Chris
5 .\" Costello at Safeport Network Services and NAI Labs, the Security
6 .\" Research Division of Network Associates, Inc. under DARPA/SPAWAR
7 .\" contract N66001-01-C-8035 ("CBOSS"), as part of the DARPA CHATS
10 .\" Redistribution and use in source and binary forms, with or without
11 .\" modification, are permitted provided that the following conditions
13 .\" 1. Redistributions of source code must retain the above copyright
14 .\" notice, this list of conditions and the following disclaimer.
15 .\" 2. Redistributions in binary form must reproduce the above copyright
16 .\" notice, this list of conditions and the following disclaimer in the
17 .\" documentation and/or other materials provided with the distribution.
19 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
20 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
23 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
38 .Nd Berkeley fast file system
40 In the kernel configuration file:
43 .Cd "options SOFTUPDATES"
46 .Cd "options UFS_DIRHASH"
47 .Cd "options UFS_EXTATTR"
48 .Cd "options UFS_EXTATTR_AUTOSTART"
49 .Cd "options UFS_GJOURNAL"
54 /dev/disk0a /mnt ufs rw 1 1
57 The Berkeley fast file system
58 provides facilities to store file system data onto a disk device.
60 has been optimized over the years
61 for speed and reliability
67 .It Cd "options QUOTA"
68 This option allows system administrators
69 to set limits on disk usage
71 Quotas can be used only on file systems
82 .It Cd "options SOFTUPDATES"
83 The soft updates feature tracks writes to the disk
84 and enforces metadata update dependencies
85 (e.g., updating free block maps)
86 to ensure that the file system remains consistent.
88 To create a new file system with the soft updates
94 .D1 Nm newfs Fl U Ar fs
97 can be either a mount point listed in
101 .Pq e.g., Pa /dev/da0a .
103 It is possible to enable soft updates on an
109 .D1 Nm tunefs Fl n Cm enable Ar fs
111 Soft updates can also add journaling that reduces the time spent by
113 cleaning up a filesystem after a crash from several minutes to a few seconds.
114 The journal is placed in an inode named
116 and is kept as a circular log of segments containing
117 records that describe metadata operations.
119 To create a new file system with both the soft updates
120 and soft updates journaling enabled,
121 use the following command:
123 .D1 Nm newfs Fl j Ar fs
132 It is possible to enable soft updates journaling on an
138 .D1 Nm tunefs Fl j Cm enable Ar fs
140 This flag automatically enables the soft updates feature
141 when it is not enabled.
144 command will fail if a file
146 already exists before enabling the soft updates journaling.
148 .Ss File Ownership Inheritance
150 .It Cd "options SUIDDIR"
151 For use in file sharing environments
152 on networks including
153 .Tn "Microsoft Windows"
155 .Tn "Apple Macintosh"
157 this option allows files on file systems
161 to inherit the ownership of its directory,
163 .Dq "if it's my directory, it must be my file."
165 .Ss Access Control Lists
167 .It Cd "options UFS_ACL"
168 Access control lists allow the association of
169 fine-grained discretionary access control information
170 with files and directories.
171 This option requires the presence of the
173 option, and it is recommended that
174 .Dv UFS_EXTATTR_AUTOSTART
176 so that ACLs are enabled atomically upon mounting the file system.
179 In order to enable support for ACLs,
180 two extended attributes must be available in the
181 .Dv EXTATTR_NAMESPACE_SYSTEM
183 .Pa posix1e.acl_access ,
184 which holds the access ACL,
186 .Pa posix1e.acl_default ,
187 which holds the default ACL for directories.
188 If you are using file system extended attributes,
189 the following commands may be used to
190 allocate space for and create the necessary EA backing files
191 for ACLs in the root of each file system.
192 In these examples, the root file system is used;
194 .Sx "Extended Attributes"
196 .Bd -literal -offset indent
197 mkdir -p /.attribute/system
198 cd /.attribute/system
199 extattrctl initattr -p / 388 posix1e.acl_access
200 extattrctl initattr -p / 388 posix1e.acl_default
203 On the next mount of the root file system,
204 the attributes will be automatically started if
205 .Dv UFS_EXTATTR_AUTOSTART
206 is included in the kernel configuration,
207 and ACLs will be enabled.
208 .Ss Directory Hashing
210 .It Cd "options UFS_DIRHASH"
211 Implements a hash-based lookup scheme for directories
212 in order to speed up accesses to very large directories.
214 .Ss Extended Attributes
216 .It Cd "options UFS_EXTATTR"
217 Extended attributes allow the association of
218 additional arbitrary metadata with files and directories,
219 which can be assigned and retrieved from userland
220 as well as from within the kernel; see
222 .It Cd "options UFS_EXTATTR_AUTOSTART"
223 If this option is defined,
227 subdirectory of the file system root during the mount operation.
228 If found, extended attribute support will be
229 automatically started for that file system.
231 .Ss GEOM-based Journaling
233 .It Cd "options UFS_GJOURNAL"
234 Implements a block level journaling of a UFS file system,
235 which is for both data and metadata.
239 GEOM provider for a block device by using the
242 .D1 Nm gjournal label Ar da0
246 is used as the target block device,
250 Then create a new file system by using
252 with the block level journaling flag and mount it:
254 .D1 Nm newfs Fl J Ar /dev/da0.journal
255 .D1 Nm mount Fl o Cm async Ar /dev/da0.journal Ar /mnt
258 option is not mandatory but recommended for better performance
259 because the journaling guarantees the consistency of an
263 It is also possible to enable the block level journaling
264 on an existing file system.
268 utility to label the underlying block device and
270 utility to enable the block level journaling flag:
272 .D1 Nm gjournal label Ar da0
273 .D1 Nm tunefs Fl J Cm enable Ar /dev/da0.journal
274 .D1 Nm mount Fl o Cm async Ar /dev/da0.journal Ar /mnt
279 MIBs are defined for use with
281 .Bl -hang -width ".Va vfs.ffs.doreallocblk"
282 .It Va vfs.ffs.doasyncfree
283 Asynchronously write out modified i-node and indirect blocks
284 upon reallocating file system blocks to be contiguous.
286 .It Va vfs.ffs.doreallocblks
287 Enable support for the rearrangement of blocks
306 .%T "A Fast File System for UNIX"
307 .%J "ACM Transactions on Computer Systems"
315 .%T "Soft Updates: A Technique for Eliminating Most Synchronous Writes in the Fast Filesystem"
316 .%J "Proceedings of the Freenix Track at the 1999 Usenix Annual Technical Conference"
323 .%T "Journaled Soft-updates"
324 .%J "BSD Canada Conference 2010 (BSDCan)"