MKFS(ADM) UNIX System V
Name
mkfs - constructs a filesystem
Syntax
/etc/mkfs [ -y | -n ] [ -f fstype ] special blocks [ :inodes]
[gap inblocks]
/etc/mkfs special proto [gap inblocks]
XENIX filesystem options
[-s blocks [ : inodes]]
UNIX filesystem options
[-b blocksize]
AFS filesystem options
[-c clustersize]
Description
mkfs constructs a file system by writing on the special file
special , according to the directions found in the remainder
of the command line. mkfs is actually a front-end that
invokes the appropriate version of mkfs according to the
filesystem type. The -f option specifies the filesystem
type, which can be one of the following:
AFS (Acer Fast Filesystem)
S51K (UNIX)
XENIX
DOS
The AFS is the default filesystem type.
Standard Options
If it appears that the special file contains a file system,
operator confirmation is requested before overwriting the
data. The -y ``yes'' option overrides this, and writes over
any existing data without question. The -n option causes
mkfs to terminate without question if the target contains an
existing file system. The check used is to read block one
from the target device (block one is the super-block) and
see whether the bytes are the same. If they are not, this
is taken to be meaningful data and confirmation is
requested.
If the second argument to mkfs is a string of digits, the
size of the file system is the value of blocks interpreted
as a decimal number. This is the number of physical (512-
byte) disk blocks the file system will occupy. If the
number of inodes is not given, the default is approximately
the number of logical blocks divided by 4. mkfs builds a
file system with a single empty directory on it. The boot
program block (block zero) is left uninitialized.
If the second argument is the name of a file that can be
opened, mkfs assumes it to be a prototype file proto, and
will take its directions from that file. The prototype file
contains tokens separated by spaces or new-lines. A sample
prototype specification follows (line numbers have been
added to aid in the explanation):
1 /stand/diskboot
2 4872 110
3 d--777 3 1
4 usr d--777 3 1
5 sh ---755 3 1 /bin/sh
6 ken d--755 6 1
7 $
8 b0 b--644 3 1 0 0
9 c0 c--644 3 1 0 0
10 $
11 $
Line 1 in the example is the name of a file to be copied
onto block zero as the bootstrap program.
Line 2 specifies the number of physical (512-byte) blocks
the file system is to occupy and the number of inodes in the
file system.
Lines 3-9 tell mkfs about files and directories to be
included in this file system.
Line 3 specifies the root directory.
Lines 4-6 and 8-9 specify other directories and files.
The $ on line 7 tells mkfs to end the branch of the file
system it is on, and continue from the next higher
directory. The $ on lines 10 and 11 end the process, since
no additional specifications follow.
File specifications give the mode, the user ID, the group
ID, and the initial contents of the file. Valid syntax for
the contents field depends on the first character of the
mode.
The mode for a file is specified by a 6-character string.
The first character specifies the type of the file. The
character range is -bcd to specify regular, block special,
character special and directory files, respectively. The
second character of the mode is either u or - to specify
set-user-id mode or not. The third is g or - for the set-
group-id mode. The rest of the mode is a 3-digit octal
number giving the owner, group, and other read, write,
execute permissions [see chmod(1)].
Two decimal number tokens come after the mode; they specify
the user and group IDs of the owner of the file.
If the file is a regular file, the next token of the
specification may be a path name from which the contents and
size are copied. If the file is a block or character
special file, two decimal numbers follow which give the
major and minor device numbers. If the file is a directory,
mkfs makes the entries . and .. and then reads a list of
names and (recursively) file specifications for the entries
in the directory. As noted above, the scan is terminated
with the token $.
The gap inblocks argument in both forms of the command
specifies the rotational gap and the number of
blocks/cylinder.
XENIX filesystem options
The -s option is a command-line override of the size and
number of inodes in the proto file.
UNIX filesystem options
The -b blocksize option specifies the logical block size for
the file system. The logical block size is the number of
bytes read or written by the operating system in a single
I/O operation. Valid values for blocksize are 512, 1024,
and 2048. The default is 1024. A block size of 2048 may be
chosen only if the 2K file system package is installed. If
the -b option is used, it must appear last on the command
line.
AFS filesystem options
The -Cclustersize option specifies the cluster size for the
filesystem. This only applies to AFS; if this is included
on the command line, the filesystem created will be AFS
regardless of the other options used.
Files
/etc/vtoc/*
See Also
chmod(C), dir(F), filesystem(F)
Notes
With a prototype file, it is not possible to copy in a file
larger than 64K bytes, nor is there a way to specify links.
The maximum number of inodes configurable is 65500.
The directory /etc/fscmd.d/TYPE contains programs for each
file system type; mkfs invokes the appropriate binary.
(printed 8/23/89) MKFS(ADM)