AIX命令参考大全,卷 3,i - m - mkproto 命令

[ 页的底部 | 上一页 | 下一页 | 目录 | 索引 | 法律条款 ]

AIX命令参考大全,卷 3,i - m

mkproto 命令

用途

构造一个原型文件系统。

语法

mkproto Special Prototype

描述

mkproto 命令用来构造一个新文件系统的原型。 它仅与 Berkeley 软件分发(BSD)兼容。

Special 参数可以是 一个块设备名、raw 设备名或文件系统名。Prototype 参数为原型文件名称,该文件指定了要创建的文件系统的结构和内容。 mkproto 命令调用 mkfs 命令使用 prototype parameter 参数。

原型文件

mkprotomkfs 命令要求一个扩展的原型文件来 创建一个日志文件系统(JFS)。原型文件是一个文件系统内容和结构的格式化清单。 原型文件通过一系列以空格和换行隔开的标记来描述文件系统。 原型文件的主体定义了文件系统的对象。

一个 JFS 原型文件包含主体,它由 proto 命令创建,前面有五个特殊标记。 这五个标记定义如下:

第一个标记 拷贝到0号块作为引导程序的文件名或 特殊标记 <noboot>
第二个标记 文件系统大小。对一个 JFS,大小用512字节块单位来表示。 如果第二个标记为0,mkfs 命令 创建文件系统来填充整个逻辑卷。
第三个标记 文件系统中 i-nodes 的数目。JSF 不使用这个标记,但是必须提供以保留改位置。
第四个标记 文件系统片的大小,单位字节。如果第四个标记是0 (zero),mkfs 命令使用缺省片大小。 对 JFS 而言,该标记必须为0(缺省使用值)、512、1024、2048或 4096。 对 JFS 而言,缺省段大小为 4096。一个无效的片 大小导致 mkfs 命令失败。
第五个标记 每个 i-node(nbpi)的字节数。如果该标记为0,mkfs 命令使用缺省的 nbpi。对 JFS 来说,该标记必须为 0(缺省使用值)、512、1024、2048、4096、8192 或 16384。对 JFS 而言,每个 i-node 的缺省字节数为4096。无效的 nbpi 会导致 mkfs 命令失败。

剩下的标记定义了文件系统的内容和结构。 这些标志分组成集合,其中每个集合定义文件系统的一个对象。每个集合的语法如下:

{ [ 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个位置字符的字符串,其中:
{ - | d | b | c | l | L | p }
定义了对象类型。有效类型为:
-
常规文件
d
目录
b
块特殊文件
c
字符特殊文件
l
符号链路
L
硬链路
p
命名管道
{ - | u }
切换该对象的设置用户 ID 位,如下所示:
u
设置 UID 为执行
-
设置 UID 为不执行
{ - | g }
切换该对象的设置组 ID(GID)为,如下所示:
g
设置 GID 为执行
-
设置 GID 为不执行
{ - | t }
切换该对象的粘滞位,如下所示:
t
开启粘滞位
-
关闭粘滞位

所有对象都需要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 对象的三项:

symlnOutofFS l--- 644 0 0 /tmp/proto.examp/dir2/regfile6 该项定义了一个符号链接,它指向了要创建的文件系统以外的一个不存在的文件。 命令 ls -l 的列出相似于 symlnOutofFS -> /tmp/proto.examp/dir2/regfile6
symlnNoExist l--- 644 0 0 /home/foobar 该项定义了一个符号链接,它指向了要创建的文件系统以外的一个不存在的文件。 命令 ls -l 的列出相似于 symlnNoExist -> /home/foobar
symlnInFs l--- 644 0 0 /dir2/regfile6 该项定义了一个符号链接,它指向了要创建的文件系统以外的一个不存在的文件。 命令 ls -l 的相似于 symlnInFS -> /dir/regfile6

示例

“原型文件规范示例”中描述了使用原型文件创建一个原型 JFS :

  1. 生成原型文件的主体,该原型文件使用 proto 命令 或一个文本编辑器。关于该示例的用途,调用文件 /tmp/ProtoFile
  2. 为 JFS 添加需要的前5个标记。 在该示例原型文件中,这些标记为:

    <noboot> 0 0 1024 2048
  3. 创建一个逻辑卷来保留文件 系统,如下所示:
    mklv -y protolv -t jfs SomeVGname 5
    该命令在 SomeVGname 卷组中创建了一个名为 protolv 的逻辑卷。 逻辑卷大小为 5 个逻辑分区。
  4. 添加一个适当的节到 /etc/filesystem 文件中。一个最小的示例节为:

    /protofs:
      dev             = /dev/protolv
      vfs             = jfs
      log             = /dev/loglv00
      mount           = false
  5. 运行以下 mkproto 命令:

    mkproto /dev/protolv /tmp/ProtoFile 

    该命令在 protolv 逻辑卷上创建了一个 JFS。JFS 的大小为 5 个逻辑分区,它的片大小为 1024 字节,并且它的 nbpi 率为2048。 在 原型文件 /tmp/ProtoFile 中定义了该文件系统的结构和内容。

文件

/usr/sbin/mkproto 包含 mkproto 命令。

相关信息

mkfs 命令、fsck 命令、fsdb 命令和 proto 命令。

filsys.h 文件和 dir 文件。

AIX 5L Version 5.2 System Management Concepts: Operating System and Devices文件系统

[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 | 法律条款 ]