NEWFS(8)                FreeBSD 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
             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.  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
             format 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
             default is to compute the maximum allowed by the other
             parameters.  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 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 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 effectively
             specifies the average file size on the file system.

     -j      Enable soft updates journaling on the new file system.  This
             implies 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
             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 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 decreases 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
             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 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).  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 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
             reduce write amplification which reduces wear on write-limited
             flash-memory and often improves long-term performance.  Thinly
             provisioned 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
     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 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),
     fdformat(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 15.1-STABLE-HBSD        March 20, 2026                        NEWFS(8)