mkfs [ -b Boot ] [ -l Label ] [ -i i-Nodes ] [ -o Options ] [ -p Prototype ] [ -s Size ] [ -v VolumeLabel ] [ -V VfsName ] Device
The mkfs command makes a new file system on a specified device. The mkfs command initializes the volume label, file system label, and startup block.
The Device parameter
specifies a block device name, raw device name, or file system name. If
the parameter specifies a file system name, the mkfs command uses
this name to obtain the following parameters from the applicable stanza in the
/etc/filesystems file, unless these parameters
are entered with the mkfs command:
Notes:
- The file system is created with the setgid (set group ID) bit enabled. The setgid bit determines the default group permissions. All directories created under the new file system have the same default group permissions.
- The mkfs command does not alter anything in a mounted file system, including the file system label. The file system label changes when you change the mount point, unless the file system is mounted.
JFS is POWER-based platform only, and JFS2 is common to both platforms.
The mkfs command requires an extended prototype file to create a Journaled File System (JFS). A prototype file is a formatted listing of the contents and structure of a file system. A prototype file describes the file system by a series of tokens separated by spaces and new lines. The main body of a prototype file defines the objects of the file system.
A JFS prototype file consists of
the main body, which can be created by the proto command, preceded by five special
tokens. These five tokens are defined as follows:
The remaining tokens define the contents and structure of the file system. These tokens are grouped into sets, with each set defining one object of the file system. The syntax of each set is as follows:
{ [ Name ] { - | d | b | c | l | L | p } { - | u } { - | g } { - | t } Mode Owner
Group { Major Minor | SourceFile | DirectoryListing } } | { $ }
Name | Specifies the name of the object as it is to appear in the new file system. The Name token is required for every object except for the root directory definition. |
{ - | d | b | c | l | L | p } { - | u } { - | g } { - | t } | |
Represents a string of 4 positional characters, where: | |
Mode | Represents a string of 3 octal characters defining the read, write, and execute permissions of the object. The Mode token is required of every object. See the chmod command for more information about permissions. |
Owner | Specifies the UID of the owner of the object. The owner token is required for every object. |
Group | Specifies the GID of the owner of the object. The group token is required for every object. |
Major Minor | Specifies the major and minor device numbers of the object if its type is a block or character special file. If the object is not a block or character special file, these tokens are omitted. |
SourceFile | Applies only to regular file, hard link, and symbolic link objects. For regular files, this token is the path name to the file from which the object file is to be initialized. For both symbolic and hard links, this token is the source of the link. The source of the link is relative to the new file system for hard links. |
DirectoryListing | Defines the contents of the object if it is a directory. The contents of the directory are defined using the token syntax described here. For example, a directory listing can include one or more regular files, one or more block files, and one or more directory listings. The mkfs command creates the directory entries . (dot) and .. (dot dot). Each directory listing is terminated with the special $ token. |
$ | Ends the current directory listing or indicates the end of the prototype file. |
The following prototype specification describes a JFS that does not have a boot program in block 0 and occupies the entire device. The 3rd token is ignored. The 4th and 5th tokens define the fragment size as 1024 bytes and the number of bytes per i-node as 2048. The main body of this prototype defines the file system contents.
<noboot> 0 0 1024 2048 d--- 755 0 0 dir1 d--- 755 0 2 block_dev b--- 644 0 0 880 881 char_dev c--- 644 0 0 990 991 named_pipe p--- 644 0 0 regfile3 ---- 644 0 0 /tmp/proto.examp/dir1/regfile3 regfile4 ---- 644 0 0 /tmp/proto.examp/dir1/regfile4 $ dir2 d--- 755 205 300 regfile6 ---- 644 0 0 /tmp/proto.examp/dir2/regfile6 symlnOutofFS l--- 644 0 0 /tmp/proto.examp/dir2/regfile6 symlnNoExist l--- 644 0 0 /home/foobar symlnInFs l--- 644 0 0 /dir2/regfile6 regfile5 ---- 644 0 0 /tmp/proto.examp/dir2/regfile5 hardlink L--- 644 0 0 /dir2/regfile5 $ dir3 d--- 755 0 0 setgid --g- 755 0 0 /tmp/proto.examp/dir3/setgid setuid -u-- 755 0 0 /tmp/proto.examp/dir3/setuid sticky ---t 755 0 0 /tmp/proto.examp/dir3/sticky $ dir4 d--- 755 0 0 dir5 d--- 755 0 0 dir6 d--- 755 0 0 $ dir7 d--- 755 0 0 $ $ regfile7 ---- 644 0 0 /tmp/proto.examp/dir4/regfile7 $ regfile1 ---- 555 205 1 /tmp/proto.examp/regfile1 regfile2 ---- 744 0 0 /tmp/proto.examp/regfile2 $ $
Three entries for the dir2 object deserve further examination:
symlnOutofFS l--- 644 0 0 /tmp/proto.examp/dir2/regfile6
This entry defines a symbolic link to a file outside the file system to be created. The command ls -l lists something similar to symlnOutofFS -> /tmp/proto.examp/dir2/regfile6.
symlnNoExist l--- 644 0 0 /home/foobar
This entry defines a symbolic link to a file outside the file system to be created to a file that does not exist. The command ls -l lists something similar to symlnNoExist -> /home/foobar.
symlnInFs l--- 644 0 0 /dir2/regfile6
This entry defines a symbolic link to a file within the file system to be created. The command ls -l lists something similar to symlnInFS -> /dir/regfile6.
The following options are
specific to the Journaled File System (JFS):
Notes:
- File systems created with an ag value greater than 8 is not recognized on an AIX 4.1 system.
- The ag, bf, compress, frag, and nbpi attributes are set at file system creation and cannot be changed after the file system is successfully created. The size attribute defines the minimum file system size, and you cannot decrease it once the file system is created.
- The root filesystem ( / ) cannot be compressed.
- Some nbpi values and allocation group sizes are mutually exclusive. See "Understanding JFS Size Limitations" for information.
The following options are specific to the Enhanced Journaled File System
(JFS2):
-o agblksize={ 512 | 1024 | 2048 | 4096 } | Specifies the JFS2 block size in bytes. A file system block is the smallest unit of disk storage that can be allocated to a file. The default block size is 4096 bytes. |
-o dense | Specifies when files are created with holes JFS2 will allocate disk blocks for those holes and fill them with 0's. |
-o name=mountpoint | Specifies the mount point for the file system.
Specifies the log logical volume name. The specified logical volume is the logging device for the new JFS2. |
-o log=INLINE |
Specifies to place the log in the logical volume with the JFS2 file
system. The INLINE log will default to
.4% of the logical volume size if logsize is not specified.
|
-o logsize=Value | Specifies the size for an INLINE log in MBytes. Ignored if INLINE log not being used. Cannot be greater than 10% of the size of the filesystem. |
Note: The agblksize and dense attributes are set at file system creation and cannot be changed after the file system is successfully created. The size attribute defines the minimum file system size, and you cannot decrease it once the file system is created.
-p Prototype | Specifies the name of the prototype file. Options specified on the command line override attributes in the prototype file. |
-s Size | Specifies the size of the file system in 512-byte blocks. See "Understanding JFS Size Limitations" for more information. |
Notes:
-v VolumeLabel | Specifies the volume label for the new file system. |
-V VfsName | Specifies the virtual file system (VFS) type. The VFS must have an entry in the /etc/vfs file. |
mkfs -V jfs -o nbpi=131072,bf=true,ag=64 /dev/lv01
This creates a large file enabled JFS file system with an allocation group size of 64 megabytes and 1 inode for every 131072 bytes of disk. The size of the file system will be the size of the logical volume lv01.
/etc/vfs | Contains descriptions of virtual file system types. |
/etc/filesystems | Lists the known file systems and defines their characteristics. |
The fsck command, mkproto command, proto command.
The ioctl subroutine.
The dir file, filesystems file, filsys.h file.
File Systems Overview for System Management in AIX 5L Version 5.1 System Management Concepts: Operating System and Devices.
Understanding Journaled File System Size Limitations in AIX 5L Version 5.1 System Management Concepts: Operating System and Devices.