NEWFS(8) MachTen Programmer’s Manual NEWFS(8)

NAME
newfs, mfs - construct a new file system

SYNOPSIS
newfs [ -N ] [ newfs-options ] special
mfs [ -F mount_flags ] [ newfs-options ] special node

DESCRIPTION
Newfs replaces the more obtuse mkfs(8) program. Before
running newfs or mfs, the disk must be labeled using
disklabel(8). Newfs builds a file system on the specified
special device basing its defaults on the information in
the disk label. Typically the defaults are reasonable,
however newfs has numerous options to allow the defaults
to be selectively overridden. The -N option causes the
file system parameters to be printed out without really
creating the file system.

Mfs is used to build a file system in virtual memory and
then mount it on a specified node. Mfs exits and the con-
tents of the file system are lost when the file system is
unmounted. If mfs is sent a signal while running, for
example during system shutdown, it will attempt to unmount
its corresponding file system. The parameters to mfs are
the same as those to newfs. The special file is only used
to read the disk label which provides a set of configura-
tion parameters for the memory based file system. The
special file is typically that of the primary swap area,
since that is where the file system will be backed up when
free memory gets low and the memory supporting the file
system has to be paged.

The following options define the general layout policies.

-b block-size
The block size of the file system in bytes.

-f frag-size
The fragment size of the file system in bytes.

-m free space %
The percentage of space reserved from normal
users; the minimum free space threshold. The
default value used is 10%. See tunefs(8) for
more details on how to set this option.

-o optimization preference (‘‘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 10%, the default is to optimize for
space; if the value of minfree greater than or
equal to 10%, the default is to optimize for
time. See tunefs(8) for more details on how to
set this option.

-a maxcontig
This specifies the maximum number of contiguous
blocks that will be laid out before forcing a
rotational delay (see -d below). The default
value is one. See tunefs(8) for more details on
how to set this option.

-d rotdelay
This specifies the expected time (in millisec-
onds) to service a transfer completion interrupt
and initiate a new transfer on the same disk.
The default is 4 milliseconds. See tunefs(8)
for more details on how to set this option.

-e maxbpg This indicates 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.

-i number of bytes per inode
This specifies the density of inodes in the file
system. The default is to create an inode for
each 2048 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.

-c #cylinders/group
The number of cylinders per cylinder group in a
file system. The default value used is 16.

-s size The size of the file system in sectors.

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 to
find the alternate superblocks if the standard super block
is lost.

-r revolutions/minute
The speed of the disk in revolutions per minute.

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

-u sectors/track
The number of sectors/track available for data
allocation by the file system. This does not
include sectors reserved at the end of each
track for bad block replacement (see -p below).

-t #tracks/cylinder
The number of tracks/cylinder available for data
allocation by the file system.

-p spare sectors per track
Spare sectors (bad sector replacements) are
physical sectors that occupy space at the end of
each track. They are not counted as part of the
sectors/track (-u) since they are not available
to the file system for data allocation.

-x spare sectors per cylinder
Spare sectors (bad sector replacements) are
physical sectors that occupy space at the end of
the last track in the cylinder. They are
deducted from the sectors/track (-u) of the last
track of each cylinder since they are not avail-
able to the file system for data allocation.

-l hardware sector interleave
Used to describe perturbations in the media for-
mat to compensate for a slow controller. Inter-
leave is physical sector interleave on each
track, specified as the denominator of the
ratio:
sectors read / sectors passed over
Thus an interleave of 1/1 implies contiguous
layout, while 1/2 implies logical sector 0 is
separated by one sector from logical sector 1.

-k sector 0 skew, per track
Used to describe perturbations in the media for-
mat to compensate for a slow controller. Track
skew is the offset of sector 0 on track N rela-
tive to sector 0 on track N-1 on the same cylin-
der.

The following option applies only to mfs.

-F mount flags
Used to pass in a decimal numeric value to be
passed as mount flags when running as a memory
based file system. This option is primarily
intended for use when mfs is started by the
mount(8) command.

SEE ALSO
disktab(5), fs(5), disklabel(8), diskpart(8), fsck(8),
format(8), tunefs(8)

M. McKusick, W. Joy, S. Leffler, R. Fabry, ‘‘A Fast File
System for UNIX’’, ACM Transactions on Computer Systems 2,
3. pp 181-197, August 1984. (reprinted in the System
Manager’s Manual, SMM:14)

MachTen June 24, 1990 3