.TH MKFS 8
.SH NAME
mkfs, mkext \- archive or update a file system
.SH SYNOPSIS
.B disk/mkfs
.RB [ -aprvxU ]
.RB [ -d
.IR root ]
.RB [ -n
.IR name ]
.RB [ -s
.IR source ]
.RB [ -u
.IR users ]
.RB [ -z
.IR n ]
.I proto ...
.PP
.B disk/mkext
.RB [ -d
.IR name ]
.RB [ -u ]
.RB [ -h ]
.RB [ -v ]
.RB [ -x ]
.RB [ -T ]
.I file ...
.SH DESCRIPTION
.I Mkfs
copies files from the file tree
.I source
(default
.BR / )
to a
.B kfs
file system (see
.IR kfs (4)).
The kfs service is mounted on
.I root
(default
.BR /n/kfs ),
and
.B /adm/users
is copied to
.IB root /adm/users\f1.
The
.I proto
files are read
(see
.IR proto (2)
for their format)
and any files specified in them that are out of date are copied to
.BR /n/kfs .
.PP
.I Mkfs
copies only those files that are out of date.
Such a file is first copied into a temporary
file in the appropriate destination directory
and then moved to the destination file.
Files in the
.I kfs
file system that are not specified in the
.I proto
file
are not updated and not removed.
.PP
The options to
.I mkfs
are:
.TF "s source"
.TP
.B a
Instead of writing to a
.B kfs
file system, write an archive file to standard output, suitable for
.IR mkext .
All files in
.IR proto ,
not just those out of date, are archived.
.TP
.B x
For use with
.BR -a ,
this option writes a list of file names, dates, and sizes to standard output
rather than producing an archive file.
.TP
.BI "d " root
Copy files into the tree rooted at
.I root 
(default
.BR /n/kfs ).
This option suppresses setting the
.B uid
and
.B gid
fields when copying files.
Use
.B -U
to reenable it. 
.TP
.BI "n " name
Use
.RI kfs. name
as the name of the kfs service (default
.BR kfs ).
.TP
.B p
Update the permissions of a file even if it is up to date.
.TP
.B r
Copy all files.
.TP
.BI "s " source
Copy from files rooted at the tree
.IR source .
.TP
.BI "u " users
Copy file
.I users
into
.B /adm/users
in the new system.
.TP
.B v
Print the names of all of the files as they are copied.
.TP
.BI "z " n
Copy files assuming kfs block
.I n
(default 1024)
bytes long.
If a block contains only 0-valued bytes, it is not copied.
.PD
.PP
.I Mkext
unpacks archive files made by the
.B -a
option of
.IR mkfs .
Each file on the command line is unpacked in one pass through the archive.
If the file is a directory,
all files and subdirectories of that directory are also unpacked.
When a file is unpacked, the entire path is created if it
does not exist.
If no files are specified, the entire archive is unpacked;
in this case, missing intermediate directories are not created.
The options are:
.TP
.B d
specifies a directory (default
.BR / )
to serve as the root of the unpacked file system.
.TP
.B u
sets the owners of the files created to correspond to
those in the archive and restores the modification times of the files.
.TP
.B T
restores only the modification times of the files.
.TP
.B v
prints the names and sizes of files as they are extracted.
.TP
.B h
prints headers for the files on standard output
instead of unpacking the files.
.PD
.SH EXAMPLES
.PP
Make an archive to establish a new file system:
.IP
.EX
disk/mkfs -a -u files/adm.users -s dist proto > arch
.EE
.PP
Unpack that archive onto a new file system:
.IP
.EX
disk/mkext -u -d /n/newfs < arch
.EE
.SH SOURCE
.B \*9/src/cmd/disk/mkfs.c
.br
.B \*9/src/cmd/disk/mkext.c
.SH "SEE ALSO"
.IR prep (8),
.IR tar (1)
