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.  Soft  updates  are
	       enabled by default for UFS2 format file systems.	 Use tunefs(8)
	       to disable soft updates if they are not wanted.

       -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			 May 18, 2024			      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.2-RELEASE+and+Ports>

home | help