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

FreeBSD Manual Pages

  
 
  

home | help
NEWFS(8)		    System Manager's Manual		      NEWFS(8)

NAME
       newfs --	construct a new	UFS1/UFS2 file system

SYNOPSIS
       newfs  [-EJNUjlnt]  [-L	volname] [-O filesystem-type] [-S sector-size]
	     [-T     disktype]	   [-a	   maxcontig]	  [-b	   block-size]
	     [-c  blocks-per-cylinder-group]  [-d max-extent-size] [-e maxbpg]
	     [-f  frag-size]  [-g  avgfilesize]	 [-h  avgfpdir]	  [-i	bytes]
	     [-k  held-for-metadata-blocks]  [-m free-space] [-o optimization]
	     [-p partition] [-r	reserved] [-s size] special

DESCRIPTION
       The newfs utility is used to initialize and clear file  systems	before
       first  use.   The  newfs	 utility builds	a file system on the specified
       special file.  (We often	refer to the "special file" as the "disk", al-
       though the special file need not	be a physical disk.  In	fact, it  need
       not  even  be special.)	Typically the defaults are reasonable, however
       newfs has numerous options to allow  the	 defaults  to  be  selectively
       overridden.

       The following options define the	general	layout policies:

       -E      Erase  the  content  of	the disk before	making the filesystem.
	       The reserved area in front of  the  superblock  (for  bootcode)
	       will  not  be erased.  Erasing is only relevant to flash-memory
	       or thinly provisioned devices.  Erasing may take	a  long	 time.
	       If  the	device	does  not support BIO_DELETE, the command will
	       fail.

       -J      Enable journaling on the	new file  system  via  gjournal.   See
	       gjournal(8) for details.

       -L volname
	       Add  a  volume  label to	the new	file system.  Legal characters
	       are alphanumerics, dashes, and underscores.

       -N      Cause the file system parameters	to be printed out without  re-
	       ally creating the file system.

       -O filesystem-type
	       Use 1 to	specify	that a UFS1 format file	system be built; use 2
	       to  specify  that  a UFS2 format	file system be built.  The de-
	       fault format is UFS2.

       -T disktype
	       For backward compatibility.

       -U      Enable soft updates on the new file system.

       -a maxcontig
	       Specify the maximum number of contiguous	blocks	that  will  be
	       laid  out before	forcing	a rotational delay.  The default value
	       is 16.  See tunefs(8) for more details on how to	set  this  op-
	       tion.

       -b block-size
	       The  block  size	 of  the  file system, in bytes.  It must be a
	       power of	2.  The	default	size is	32768 bytes, and the  smallest
	       allowable size is 4096 bytes.  The optimal block:fragment ratio
	       is  8:1.	  Other	 ratios	are possible, but are not recommended,
	       and may produce poor results.

       -c blocks-per-cylinder-group
	       The number of blocks per	cylinder group in a file system.   The
	       default	is to compute the maximum allowed by the other parame-
	       ters.  This value is dependent on a number of other parameters,
	       in particular the block size and	the number of bytes per	inode.

       -d max-extent-size
	       The file	system may choose to store large files using  extents.
	       This  parameter	specifies  the largest extent size that	may be
	       used.  The default value	is the file system blocksize.	It  is
	       presently  limited to a maximum value of	16 times the file sys-
	       tem blocksize and a minimum value of the	file system blocksize.

       -e maxbpg
	       Indicate	the maximum number of blocks any single	file can allo-
	       cate out	of a cylinder group before it is forced	to begin allo-
	       cating blocks from another  cylinder  group.   The  default  is
	       about one quarter of the	total blocks in	a cylinder group.  See
	       tunefs(8) for more details on how to set	this option.

       -f frag-size
	       The  fragment  size  of the file	system in bytes.  It must be a
	       power  of  two  ranging	in  value  between   blocksize/8   and
	       blocksize.  The default is 4096 bytes.

       -g avgfilesize
	       The expected average file size for the file system.

       -h avgfpdir
	       The  expected average number of files per directory on the file
	       system.

       -i bytes
	       Specify the density of inodes in	the file system.  The  default
	       is  to  create an inode for every (2 * frag-size) bytes of data
	       space.  If fewer	inodes are desired, a larger number should  be
	       used;  to  create more inodes a smaller number should be	given.
	       One inode is required for each distinct file, so	this value ef-
	       fectively specifies the average file size on the	file system.

       -j      Enable soft updates journaling on the new  file	system.	  This
	       flag  is	 implemented by	running	the tunefs(8) utility found in
	       the user's $PATH.

	       Enabling	journaling  reduces  the  time	spent  by  fsck_ffs(8)
	       cleaning	 up  a	filesystem after a crash to a few seconds from
	       minutes to hours.  Without journaling, the time to recover  af-
	       ter  a  crash  is  a  function  of  the	number of files	in the
	       filesystem and the size of the  filesystem.   With  journaling,
	       the  time  to recover after a crash is a	function of the	amount
	       of activity in the filesystem in	the minute before  the	crash.
	       Journaled recovery time is usually only a few seconds and never
	       exceeds a minute.

	       The  drawback to	using journaling is that the writes to its log
	       adds an extra write load	to the media containing	 the  filesys-
	       tem.    Thus  a	write-intensive	 workload  will	 have  reduced
	       throughput on a filesystem running with journaling.

	       Like all	journaling filesystems,	the journal recovery will only
	       fix issues known	to the journal.	 Specifically if a media error
	       occurs, the journal will	not know about it and hence  will  not
	       fix  it.	  Thus when using journaling, it is still necessary to
	       run a full fsck every few months	or after a filesystem panic to
	       check for and fix any errors brought on by  media  failure.   A
	       full  fsck  can	be done	by running a background	fsck on	a live
	       filesystem or by	running	with  the  -f  flag  on	 an  unmounted
	       filesystem.   When  running fsck_ffs(8) in background on	a live
	       filesystem the filesystem performance will  be  about  half  of
	       normal  during the time that the	background fsck_ffs(8) is run-
	       ning.  Running a	full fsck on a UFS filesystem is  the  equiva-
	       lent of running a scrub on a ZFS	filesystem.

       -k held-for-metadata-blocks
	       Set  the	amount of space	to be held for metadata	blocks in each
	       cylinder	group.	When set, the file system preference  routines
	       will try	to save	the specified amount of	space immediately fol-
	       lowing the inode	blocks in each cylinder	group for use by meta-
	       data  blocks.   Clustering the metadata blocks speeds up	random
	       file access and decreases the running time of fsck(8).  By  de-
	       fault newfs sets	it to half of the space	reserved to minfree.

       -l      Enable multilabel MAC on	the new	file system.

       -m free-space
	       The percentage of space reserved	from normal users; the minimum
	       free  space  threshold.	 The  default value used is defined by
	       MINFREE from <ufs/ffs/fs.h>, currently 8%.  See	tunefs(8)  for
	       more details on how to set this option.

       -n      Do  not	create	a .snap	directory on the new file system.  The
	       resulting file system will not support snapshot generation,  so
	       dump(8)	in  live mode and background fsck(8) will not function
	       properly.  The traditional fsck(8)  and	offline	 dump(8)  will
	       work on the file	system.	 This option is	intended primarily for
	       memory or vnode-backed file systems that	do not require dump(8)
	       or fsck(8) support.

       -o optimization
	       (space  or  time).  The file system can either be instructed to
	       try to minimize the time	spent allocating blocks, or to try  to
	       minimize	 the space fragmentation on the	disk.  If the value of
	       minfree (see above) is less than	8%, the	default	is to optimize
	       for space; if the value of minfree is greater than or equal  to
	       8%,  the	 default  is  to optimize for time.  See tunefs(8) for
	       more details on how to set this option.

       -p partition
	       The partition name (a..h) you want to use in case the  underly-
	       ing  image  is  a file, so you do not have access to individual
	       partitions through the filesystem.  Can also be used with a de-
	       vice, e.g., newfs  -p  f	 /dev/da1s3  is	 equivalent  to	 newfs
	       /dev/da1s3f.

       -r reserved
	       The  size, in sectors, of reserved space	at the end of the par-
	       tition specified	in special.  This space	will not  be  occupied
	       by  the	file system; it	can be used by other consumers such as
	       geom(4).	 Defaults to 0.

       -s size
	       The size	of the file system in sectors.	This value defaults to
	       the size	of the raw partition specified	in  special  less  the
	       reserved	 space	at  its	end (see -r).  A size of 0 can also be
	       used to choose the default value.  A valid size value cannot be
	       larger than the default one, which means	that the  file	system
	       cannot extend into the reserved space.

       -t      Turn  on	the TRIM enable	flag.  If enabled, and if the underly-
	       ing device supports the BIO_DELETE  command,  the  file	system
	       will  send  a  delete request to	the underlying device for each
	       freed block.  The trim enable flag is typically set for	flash-
	       memory devices to reduce	write amplification which reduces wear
	       on write-limited	flash-memory and often improves	long-term per-
	       formance.   Thinly provisioned storage also benefits by return-
	       ing unused blocks to the	global pool.

       The following options override the standard sizes for the  disk	geome-
       try.   Their  default  values  are taken	from the disk label.  Changing
       these defaults is useful	only when using	newfs to build a  file	system
       whose  raw  image  will	eventually be used on a	different type of disk
       than the	one on which it	is initially created (for example on a	write-
       once disk).  Note that changing any of these values from	their defaults
       will  make  it impossible for fsck(8) to	find the alternate superblocks
       if the standard superblock is lost.

       -S sector-size
	       The size	of a sector in bytes (almost never anything but	512).

NOTES ON THE NAMING
       "newfs" is a common name	prefix	for  utilities	creating  filesystems,
       with  the  suffix  indicating  the type of the filesystem, for instance
       newfs_msdos(8).	The newfs utility is a	special	 case  which  predates
       that convention.

EXAMPLES
	     newfs /dev/ada3s1a

       Creates a new ufs file system on	ada3s1a.  The newfs utility will use a
       block  size  of	32768  bytes,  a  fragment  size of 4096 bytes and the
       largest possible	number of blocks per cylinders	group.	 These	values
       tend  to	produce	better performance for most applications than the his-
       torical defaults	(8192 byte block size and 1024	byte  fragment	size).
       This  large fragment size may lead to much wasted space on file systems
       that contain many small files.

SEE ALSO
       fdformat(8),  geom(4),  disktab(5),  fs(5),   camcontrol(8),   dump(8),
       dumpfs(8),   fsck(8),   gjournal(8),  gpart(8),	growfs(8),  gvinum(8),
       makefs(8), mount(8), newfs_msdos(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, pp 181-197,	August
       1984, (reprinted	in the BSD System Manager's Manual).

HISTORY
       The newfs utility appeared in 4.2BSD.

FreeBSD	13.2		       October 21, 2022			      NEWFS(8)

NAME | SYNOPSIS | DESCRIPTION | NOTES ON THE NAMING | EXAMPLES | SEE ALSO | HISTORY

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

home | help