MKFS(8)                                                   MKFS(8)

     NAME
          mkfs, mkext - archive or update a file system

     SYNOPSIS
          disk/mkfs [-aprvxS] [-d dest] [-n name] [-s source] [-u
          users] [-z n] [-G group] [-U user] proto ...

          disk/mkext [-d name] [-f] [-h] [-T] [-u] [-v] [ file ... ]

     DESCRIPTION
          Mkfs copies files from the file tree source (default /) to a
          kfs file system (see kfs(4)) assumed to be mounted on dest
          (default: /n/kfs).  The proto files are read, and any files
          specified in them that are out of date are copied to dest.
          See proto(6) for the description of file system prototype
          files.

          Mkfs by default 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 kfs file system that are not
          specified in the proto file are not updated and not removed.

          The options to mkfs are:

          -a         Instead of writing to a kfs file system, write an
                     archive file to standard output, suitable for
                     mkext. All files in proto are archived, not just
                     those out of date.
          -x         For use with -a, this option writes a list of
                     file names, dates, and sizes to standard output
                     rather than producing an archive file.
          -n name    Use kfs.name.cmd as the name of the command file
                     for the kfs(4) assumed to be mounted on dest.
          -p         Update the permissions of a file even if it is up
                     to date.
          -r         Copy all files.
          -s source  Copy from files rooted at the tree source.
          -u users   Before copying any other file, copy file users
                     into dest/adm/users, and if the -n option was
                     given, also issue the kfs(4) command users to
                     update kfs's own user list.
          -v         Print the names of all of the files as they are
                     copied.
          -z n       Copy files assuming kfs is using a block size of
                     n bytes (default 1024).  If a block contains only
                     0-valued bytes, it is not copied.
          -S         For use with the -d option, make owner and group
                     of each file copied match the original.
          -G group   Force all files copied to have the given group.

     Page 1                       Plan 9            (printed 12/23/24)

     MKFS(8)                                                   MKFS(8)

          -U user    Force all files copied to be owned by the given
                     user.

          Mkext unpacks an archive created by the -a option of mkfs,
          read from the standard input.  If one or more files are
          specified on the command line, only those files are
          unpacked.  If a file is a directory, all files and subdirec-
          tories 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 cre-
          ated.  The options are:

          -d dir
               Treat dir (default `/') as the root directory when
               unpacking the archive.

          -h   Print headers for the files on standard output instead
               of unpacking the files.

          -T   Restore the modification times of the files.

          -u   Set the owners of the files created to correspond to
               those in the archive and restore the modification times
               of the files.

          -v   Print the names and sizes of files as they are
               extracted.

     EXAMPLES
          Make an archive to establish a new file system (assuming
          that the output file arch is not referenced by proto):

               bind '#U' /n/local
               disk/mkfs -a -s /n/local proto > arch

          Unpack that archive on another machine:

               mount tcp!server /n/remote
               disk/mkext -u -d /n/remote < arch

     FILES
          /lib/proto            directory of prototype files.
          /lib/proto/all        contains a single + (archive any
                                directory structure)

     SOURCE
          /appl/cmd/disk/mkfs.b
          /appl/cmd/disk/mkext.b

     SEE ALSO
          fs(1), kfs(4), proto(6), kfscmd(8)

     Page 2                       Plan 9            (printed 12/23/24)