Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
FFS(7)			Miscellaneous Information Manual		FFS(7)

NAME
       ffs -- Berkeley fast file system

SYNOPSIS
       In the kernel configuration file:
       options FFS
       options QUOTA
       options SOFTUPDATES
       options SUIDDIR
       options UFS_ACL
       options UFS_DIRHASH
       options UFS_EXTATTR
       options UFS_EXTATTR_AUTOSTART
       options UFS_GJOURNAL

       In fstab(5):
       /dev/disk0a     /mnt ufs	rw 1 1

DESCRIPTION
       The  Berkeley fast file system provides facilities to store file	system
       data onto a disk	device.	 ffs has been optimized	 over  the  years  for
       speed and reliability and is the	default	FreeBSD	file system.

   Quotas
       options QUOTA
	   This	 option	allows system administrators to	set limits on disk us-
	   age on a per-user basis.  Quotas can	be used	only on	 file  systems
	   mounted with	the quota option; see quota(1) and edquota(8).

   Soft	Updates
       options SOFTUPDATES
	   The	soft  updates  feature	tracks writes to the disk and enforces
	   metadata update dependencies	(e.g., updating	free  block  maps)  to
	   ensure that the file	system remains consistent.

	   To  create  a  new  file  system with the soft updates enabled, use
	   newfs(8) command:

		 newfs -U fs

	   fs can be either a mount point listed in fstab(5) (e.g., /usr),  or
	   a disk device (e.g.,	/dev/da0a).

	   It  is  possible to enable soft updates on an unmounted file	system
	   by using tunefs(8) command:

		 tunefs	-n enable fs

	   Soft	updates	can also add journaling	that reduces the time spent by
	   fsck_ffs(8) cleaning	up a filesystem	after  a  crash	 from  several
	   minutes  to a few seconds.  The journal is placed in	an inode named
	   .sujournal, and is kept as a	circular log  of  segments  containing
	   records that	describe metadata operations.

	   To create a new file	system with both the soft updates and soft up-
	   dates journaling enabled, use the following command:

		 newfs -j fs

	   This	runs tunefs(8) command after newfs(8) command with -U flag en-
	   abled.   It	is  possible  to  enable soft updates journaling on an
	   unmounted file system by using tunefs(8) command:

		 tunefs	-j enable fs

	   This	flag automatically enables the soft updates feature when it is
	   not enabled.	 Note that this	tunefs(8) command will fail if a  file
	   .sujournal already exists before enabling the soft updates journal-
	   ing.

   File	Ownership Inheritance
       options SUIDDIR
	   For	 use  in  file	sharing	 environments  on  networks  including
	   Microsoft Windows and Apple Macintosh computers, this option	allows
	   files on file systems mounted with the suiddir  option  to  inherit
	   the	ownership  of  its  directory, i.e., "if it's my directory, it
	   must	be my file."

   Access Control Lists
       options UFS_ACL
	   Access control lists	allow the association of fine-grained  discre-
	   tionary  access  control  information  with	files and directories.
	   This	option requires	the presence of	the UFS_EXTATTR	option,	and it
	   is recommended that UFS_EXTATTR_AUTOSTART is	included as  well,  so
	   that	ACLs are enabled atomically upon mounting the file system.

       In  order  to  enable support for ACLs, two extended attributes must be
       available     in	     the      EXTATTR_NAMESPACE_SYSTEM	    namespace:
       posix1e.acl_access,     which	 holds	  the	 access	   ACL,	   and
       posix1e.acl_default, which holds	the default ACL	for  directories.   If
       you  are	 using file system extended attributes,	the following commands
       may be used to allocate space for and create the	necessary  EA  backing
       files for ACLs in the root of each file system.	In these examples, the
       root file system	is used; see "Extended Attributes" for more details.

	     mkdir -p /.attribute/system
	     cd	/.attribute/system
	     extattrctl	initattr -p / 388 posix1e.acl_access
	     extattrctl	initattr -p / 388 posix1e.acl_default

       On the next mount of the	root file system, the attributes will be auto-
       matically  started  if  UFS_EXTATTR_AUTOSTART is	included in the	kernel
       configuration, and ACLs will be enabled.

   Directory Hashing
       options UFS_DIRHASH
	   Implements a	hash-based lookup scheme for directories in  order  to
	   speed up accesses to	very large directories.

   Extended Attributes
       options UFS_EXTATTR
	   Extended  attributes	 allow the association of additional arbitrary
	   metadata with files and directories,	which can be assigned and  re-
	   trieved  from  userland  as	well  as  from	within the kernel; see
	   extattrctl(8).

       options UFS_EXTATTR_AUTOSTART
	   If this option is defined, ffs will search for a .attribute	subdi-
	   rectory  of	the  file  system root during the mount	operation.  If
	   found, extended attribute support will be automatically started for
	   that	file system.

   GEOM-based Journaling
       options UFS_GJOURNAL
	   Implements a	block level journaling of a UFS	file system, which  is
	   for	both  data and metadata.  To enable this, create a gjournal(8)
	   GEOM	provider for a block device by using the following command:

		 gjournal label	da0

	   In this example, /dev/da0 is	used as	the target block  device,  and
	   /dev/da0.journal  is	created.  Then create a	new file system	by us-
	   ing newfs(8)	with the block level journaling	flag and mount it:

		 newfs -J /dev/da0.journal
		 mount -o async	/dev/da0.journal /mnt

	   async option	is not mandatory but recommended  for  better  perfor-
	   mance because the journaling	guarantees the consistency of an async
	   mount.

	   It  is also possible	to enable the block level journaling on	an ex-
	   isting file system.	To do so, use gjournal(8) utility to label the
	   underlying block device and tunefs(8) utility to enable  the	 block
	   level journaling flag:

		 gjournal label	da0
		 tunefs	-J enable /dev/da0.journal
		 mount -o async	/dev/da0.journal /mnt

   sysctl(8) MIBs
       The following sysctl(8) MIBs are	defined	for use	with ffs:

       vfs.ffs.doasyncfree   Asynchronously  write out modified	i-node and in-
			     direct  blocks  upon  reallocating	 file	system
			     blocks to be contiguous.  (Default: 1).

       vfs.ffs.doreallocblks Enable support for	the rearrangement of blocks to
			     be	contiguous.  (Default: 1).

       vfs.ffs.prttimechgs   Print  a console message when timestamps for UFS1
			     filesystems are found to be in the	future and are
			     changed to	be the present time.  (Default:	0).

HISTORY
       The ffs manual page first appeared in FreeBSD 4.5.

SEE ALSO
       quota(1), acl(3), extattr(3), edquota(8),  extattrctl(8),  fsck_ffs(8),
       sysctl(8), tunefs(8)

       M.  McKusick, W.	Joy, S.	Leffler, and R.	Fabry, "A Fast File System for
       UNIX", ACM Transactions on Computer  Systems,  2,  3,  181-197,	August
       1984.

       M.   McKusick,	"Soft	Updates:  A  Technique	for  Eliminating  Most
       Synchronous Writes in the Fast Filesystem", Proceedings of the  Freenix
       Track at	the 1999 Usenix	Annual Technical Conference, 71-84, June 2000.

       M.  McKusick  and  J.  Roberson,	 "Journaled  Soft-updates", BSD	Canada
       Conference 2010 (BSDCan), May 2010.

FreeBSD	14.3		       January 19, 2025				FFS(7)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ffs&sektion=7&manpath=FreeBSD+14.3-RELEASE+and+Ports>

home | help