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 [-EJNUjlntu] [-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", although 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 provi-
	     sioned 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 gjour-
	     nal(8) for details.  This is incompatible with soft updates (-U).

     -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 really
	     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 default for-
	     mat is UFS2.

     -T disktype
	     For backward compatibility.

     -U      Enable soft updates on the new file system.  This	is  incompatible
	     with GEOM journaling (-J).  If neither -U nor -u is specified, soft
	     updates  are enabled by default for UFS2 format file systems unless
	     GEOM journaling was requested and disabled otherwise.

     -u      Do not enable soft updates on the new file system.  If  neither  -U
	     nor  -u  is specified, soft updates are enabled by default for UFS2
	     format file systems and disabled otherwise.

     -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 option.

     -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  de-
	     fault  is	to  compute the maximum allowed by the other parameters.
	     This value is dependent on a number of other parameters, in partic-
	     ular 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 system blocksize
	     and a minimum value of the file system blocksize.

     -e maxbpg
	     Indicate the maximum number of blocks any single file can	allocate
	     out  of  a  cylinder  group before it is forced to begin allocating
	     blocks from another cylinder group.  The default is about one quar-
	     ter 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 de-
	     fault 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 sys-
	     tem.

     -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  effectively  speci-
	     fies the average file size on the file system.

     -j      Enable  soft  updates  journaling on the new file system.	This im-
	     plies soft updates (-U) and is incompatible  with	GEOM  journaling
	     (-J).   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 after 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 filesystem.  Thus a
	     write-intensive workload will have reduced throughput on a filesys-
	     tem 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 running.  Running a full fsck on a UFS filesystem is
	     the equivalent 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 following the
	     inode blocks in each cylinder group for  use  by  metadata  blocks.
	     Clustering the metadata blocks speeds up random file access and de-
	     creases  the  running time of fsck(8).  By default 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  re-
	     sulting  file  system  will  not  support	snapshot  generation, so
	     dump(8) in live mode and background fsck(8) will not function prop-
	     erly.  The traditional fsck(8) and offline dump(8) will work on the
	     file system.  This option is intended primarily for memory  or  vn-
	     ode-backed file systems that do not require dump(8) or fsck(8) sup-
	     port.

     -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  underlying
	     image is a file, so you do not have access to individual partitions
	     through  the  filesystem.	 Can  also  be used with a device, 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 partition
	     specified in special.  This space will not be occupied by the  file
	     system;  it  can  be  used by other consumers such as geom(4).  De-
	     faults 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  underlying
	     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  re-
	     duce write amplification which reduces wear on write-limited flash-
	     memory  and  often  improves  long-term performance.  Thinly provi-
	     sioned storage also benefits by  returning  unused  blocks  to  the
	     global pool.

     The  following  options  override the standard sizes for the disk geometry.
     Their default values are taken from the disk  label.   Changing  these  de-
     faults is useful only when using newfs to build a file system whose raw im-
     age  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 impossi-
     ble  for  fsck(8)	to  find  the  alternate superblocks if the standard su-
     perblock 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_ms-
     dos(8).  The newfs utility is a special case which  predates  that  conven-
     tion.

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 pro-
     duce better performance for most applications than the historical	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
     ffs(4),  geom(4), disktab(5), fs(5), camcontrol(8), dump(8), dumpfs(8), fd-
     format(8), fsck(8), gjournal(8), gpart(8), growfs(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 ports 15.quarterly	 March 20, 2026 			NEWFS(8)

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

home | help