构造一个原型文件系统。
mkproto Special Prototype
mkproto 命令用来构造一个新文件系统的原型。 它仅与 Berkeley 软件分发(BSD)兼容。
Special 参数可以是 一个块设备名、raw 设备名或文件系统名。Prototype 参数为原型文件名称,该文件指定了要创建的文件系统的结构和内容。 mkproto 命令调用 mkfs 命令使用 prototype 和 parameter 参数。
mkproto 和 mkfs 命令要求一个扩展的原型文件来 创建一个日志文件系统(JFS)。原型文件是一个文件系统内容和结构的格式化清单。 原型文件通过一系列以空格和换行隔开的标记来描述文件系统。 原型文件的主体定义了文件系统的对象。
一个 JFS 原型文件包含主体,它由 proto 命令创建,前面有五个特殊标记。 这五个标记定义如下:
剩下的标记定义了文件系统的内容和结构。 这些标志分组成集合,其中每个集合定义文件系统的一个对象。每个集合的语法如下:
{ [ Name ] { - | d | b | c | l | L | p } { - | u } { - | g } { - | t } Mode Owner Group { Major Minor | SourceFile | DirectoryListing } } | { $ }
其中:
Name | 将对象名称指定为将在新文件系统中出现的名称。 除了 root 目录定义,每个对象都需要Name 标志。 |
{ - | d | b | c | l | L | p } { - | u } { - | g } { - | t } | |
代表有4个位置字符的字符串,其中:
所有对象都需要4字符标志。 |
|
Mode | 表示为3位8进制字符,这些字符定义了对象的读、写和执行许可权。 每个对象都需要 Mode 标记。 请参阅 chmod 命令以得到关于许可权得更多信息。 |
Owner | 指定对象所有者的 UID。每个对象都需要 owner 标记。 |
Group | 指定了对象所有者的 GID。每个对象都需要 group 标记。 |
Major Minor | 如果对象的类型为块或字符特殊文件,指定了它的主要和次要设备号码。 如果对象不是块或字符特殊文件,将省略这些标记。 |
SourceFile | 仅应用于常规文件、硬链路和符号链路对象。 对常规文件而言,该标记为到文件的路径名,从该路径名初始化对象文件。 对符号和硬链接而言,该标记为链路源。 对硬链路而言,链路源相对于新文件系统。 |
DirectoryListing | 如果它是一个目录,定义了该对象的内容。使用此处描述的标记语法定义目录的内容。 例如, 一个目录列表可以包含一个或多个常规文件、一个或多个块文件和一个或多个目录列表。 mkfs 命令创建了目录项。(点)和 .. (点点)。每个目录列表 用特殊的 $ 标记终止。 |
$ | 终止当前目录列表或表示原型文件的结束。 |
以下原型规范描述了一个 JFS,它在0号块没有引导程序并且占据了整个设备。 忽略了第三个标记。第四和第五个标记定义片大小为1024字节,定义每个 i-node 的字节数为2048。 该原型的主体定义了文件系统内容。
<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 $ $
值得进一步检查 dir2 对象的三项:
在 “原型文件规范示例”中描述了使用原型文件创建一个原型 JFS :
<noboot> 0 0 1024 2048
/protofs: dev = /dev/protolv vfs = jfs log = /dev/loglv00 mount = false
mkproto /dev/protolv /tmp/ProtoFile
该命令在 protolv 逻辑卷上创建了一个 JFS。JFS 的大小为 5 个逻辑分区,它的片大小为 1024 字节,并且它的 nbpi 率为2048。 在 原型文件 /tmp/ProtoFile 中定义了该文件系统的结构和内容。
/usr/sbin/mkproto | 包含 mkproto 命令。 |
mkfs 命令、fsck 命令、fsdb 命令和 proto 命令。
AIX 5L Version 5.2 System Management Concepts: Operating System and Devices 的文件系统。