本章介绍 format 实用程序的菜单和命令。
以下是本章中参考信息的列表。
有关何时使用 format 实用程序的概述,请参见format 实用程序。
您必须是超级用户或承担等效角色才能使用 format 实用程序。否则,尝试使用 format 实用程序时,将显示以下错误消息:
$ format Searching for disks...done No permission (or no disks found)! |
使用 format 实用程序并需要保留现有数据时,请牢记以下原则:
备份磁盘驱动器上的所有文件。
使用 format 实用程序的 dump 命令将所有的缺陷列表都保存到文件中。文件名应包括驱动器类型、型号和序列号。
保存驱动器附带的制造商缺陷列表的书面副本。
FORMAT MENU: disk - select a disk type - select (define) a disk type partition - select (define) a partition table current - describe the current disk format - format and analyze the disk fdisk - run the fdisk program (x86 only) repair - repair a defective sector label - write label to the disk analyze - surface analysis defect - defect list management backup - search for backup labels verify - read and display labels save - save new disk/partition definitions inquiry - show vendor, product and revision volname - set 8-character volume name !<cmd> - execute <cmd>, then return quit format> |
菜单项 |
命令或菜单? |
说明 |
---|---|---|
disk |
命令 |
列出系统的所有驱动器。此外,还可用于选择要在后续操作中使用的磁盘。该磁盘称为当前磁盘。 |
type |
命令 |
标识当前磁盘的制造商和型号。另外,还可显示已知驱动器类型列表。可用于为所有 SCSI-2 磁盘驱动器选择 Auto configure 选项。 |
partition |
菜单 |
创建和修改片。有关更多信息,请参见partition 菜单。 |
current |
命令 |
显示以下有关当前磁盘的信息:
|
format |
命令 |
按照一定顺序使用以下信息源之一格式化当前磁盘:
此命令不适用于 IDE 磁盘。IDE 磁盘由制造商进行格式化。 |
fdisk |
菜单 |
仅限于 x86 平台:运行 fdisk 程序可创建 Solaris fdisk 分区。 在容量超过 1 TB 且带有 EFI 标号的磁盘上,不能使用 fdisk 命令。 |
repair |
命令 |
修复当前磁盘上的特定块。 |
label |
命令 |
将新标号写入当前磁盘。 |
analyze |
菜单 |
运行读取、写入和比较测试。有关更多信息,请参见analyze 菜单。 |
defect |
菜单 |
检索并显示缺陷列表。有关更多信息,请参见defect 菜单。此功能不适用于 IDE 磁盘。IDE 磁盘会自动管理缺陷。 |
backup |
命令 |
VTOC-搜索备份标号。 EFI-不支持。 |
verify |
命令 |
显示以下有关当前磁盘的信息:
|
save |
命令 |
VTOC-保存新的磁盘和分区信息。 EFI-不适用。 |
inquiry |
命令 |
仅限于 SCSI-显示当前磁盘的供应商、产品名称和修订版级别。 |
volname |
命令 |
使用指定的由八个字符组成的新卷名标记磁盘。 |
quit |
命令 |
退出 format 菜单。 |
format> partition PARTITION MENU: 0 - change `0' partition 1 - change `1' partition 2 - change `2' partition 3 - change `3' partition 4 - change `4' partition 5 - change `5' partition 6 - change `6' partition 7 - change `7' partition select - select a predefined table modify - modify a predefined partition table name - name the current table print - display the current table label - write partition map and label to the disk quit partition> |
下表描述了 partition 菜单项。
表 16–2 partition 菜单项的说明
子命令 |
说明 |
---|---|
change `n' partition |
用于指定新分区的以下信息:
|
select |
用于选择预定义的分区表。 |
modify |
用于更改分区表中的所有片。此命令优先于各个 change `x' partition 命令。 |
name |
用于为当前分区表指定名称。 |
|
显示当前分区表。 |
label |
将分区映射和标号写入当前磁盘。 |
quit |
fdisk 菜单仅出现在基于 x86 的系统上,其显示与以下内容类似。
format> fdisk Total disk size is 14169 cylinders Cylinder size is 2510 (512 byte) blocks Cylinders Partition Status Type Start End Length % ========= ====== ============ ===== === ====== === 1 Active x86 Boot 1 9 9 0 2 Solaris2 10 14168 14159 100 SELECT ONE OF THE FOLLOWING: 1. Create a partition 2. Specify the active partition 3. Delete a partition 4. Change between Solaris and Solaris2 Partition IDs 5. Exit (update disk configuration and exit) 6. Cancel (exit without updating disk configuration) Enter Selection: |
下表描述了 fdisk 菜单项。
表 16–3 x86: fdisk 菜单项的说明
菜单项 |
说明 |
---|---|
Create a partition |
创建 fdisk 分区。必须为每个 OS(如 Solaris 或 DOS)创建单独的分区。每个磁盘最多包含四个分区。系统会提示以磁盘百分比形式输入 fdisk 分区的大小。 |
Specify the active partition |
用于指定要用于引导的分区。此菜单项可标识第一阶段引导程序查找第二阶段引导程序的位置。 |
Delete a partition |
删除以前创建的分区。此命令将破坏分区中的所有数据。 |
Change between Solaris and Solaris2 Partition IDs |
将分区 ID 从 130 (0x82) 更改为 191 (0xbf) 或执行相反操作。 |
Exit (update disk configuration and exit) |
写入新版本的分区表并退出 fdisk 菜单。 |
Cancel (exit without updating disk configuration) |
退出 fdisk 菜单,而不修改分区表。 |
format> analyze ANALYZE MENU: read - read only test (doesn't harm SunOS) refresh - read then write (doesn't harm data) test - pattern testing (doesn't harm data) write - write then read (corrupts data) compare - write, read, compare (corrupts data) purge - write, read, write (corrupts data) verify - write entire disk, then verify (corrupts data) print - display data buffer setup - set analysis parameters config - show analysis parameters quit analyze> |
下表描述了 analyze 菜单项。
表 16–4 analyze 菜单项的说明
defect 菜单的显示与以下内容类似:
format> defect DEFECT MENU: primary - extract manufacturer's defect list grown - extract manufacturer's and repaired defects lists both - extract both primary and grown defects lists print - display working list dump - dump working list to file quit defect> |
下表描述了 defect 菜单项。
表 16–5 defect 菜单项说明
子命令 |
说明 |
---|---|
primary |
从磁盘驱动器读取制造商的缺陷列表并更新内存中的缺陷列表。 |
grown |
读取产生的缺陷列表,然后更新内存中的缺陷列表。产生的缺陷是指在分析过程中检测到的缺陷。 |
both |
读取制造商的缺陷列表和产生的缺陷列表。然后更新内存中的缺陷列表。 |
|
显示内存中的缺陷列表。 |
dump |
将内存中的缺陷列表保存到文件中。 |
quit |
退出 defect 菜单。 |
Solaris OS 附带的 format.dat 文件支持许多标准磁盘。如果 format.dat 文件中未列出您的磁盘驱动器,则可以执行以下操作:
向磁盘的 format.dat 文件中添加项。
通过选择 type 命令和 other 选项来添加 format 实用程序的各项。
如果将在整个站点中使用磁盘驱动器,则向 format.dat 文件添加项可以节省时间。要使用其他系统上的 format.dat 文件,请将该文件复制到每个将使用特定磁盘驱动器(已添加到 format.dat 文件中)的系统。
如果具有以下设备之一,则可能需要修改系统的 /etc/format.dat 文件:
Solaris OS 不支持的磁盘
分区表与 Solaris OS 的缺省配置不同的磁盘
请勿修改 /etc/format.dat 文件中的缺省项。如果要修改缺省项,请复制该项,并为该项指定不同的名称,再进行相应更改以避免混淆。
/etc/format.dat 不适用于带有 EFI 标号的磁盘。
format.dat 包含 format 实用程序使用的磁盘驱动器信息。format.dat 文件中定义了以下三项:
搜索路径
磁盘类型
片表
井号 (#) 是注释字符。format 实用程序不会解释一行中在井号后面的任何文本。
format.dat 文件中的每个定义都出现在单独的逻辑行中。如果定义长度超过一行,则定义的所在行(最后一行除外)都必须以反斜杠 (\) 结束。
定义包含一系列赋值,这些赋值的左侧是标识符,右侧是一个或多个值。赋值运算符是等号 (=)。定义中的多个赋值必须以冒号 (:) 分隔。
format 实用程序会忽略空格。如果要所赋的值包含空格,请将整个值用双引号 (") 引起来。此语法将导致引号中的空格作为赋值的一部分保留下来。
有些赋值的右侧可能有多个值。请使用逗号分隔这些值。
format.dat 文件包含启动 format 实用程序时该程序读取的磁盘定义。每个定义都以以下关键字之一开头:disk_type 或 partition。下表描述了这些关键字。
表 16–6 format.dat 文件的关键字说明
关键字 |
说明 |
---|---|
disk_type |
定义控制器和磁盘型号。每个 disk_type 定义都包含有关磁盘物理几何参数的信息。缺省数据文件包含 Solaris OS 支持的控制器和磁盘的定义。 仅当使用不支持的磁盘时,才需要添加新的 disk_type 定义。可以向数据文件中添加任意数目的 disk_type 定义。 |
partition |
为特定磁盘类型定义分区表。分区表包含分区信息以及可在 format 实用程序中引用的名称。缺省的 format.dat 文件包含多种磁盘驱动器的缺省分区定义。如果在系统中的任何磁盘上重新创建了分区,请添加分区定义。可以向数据文件中添加任意数目的分区定义。 |
format.dat 文件中的 disk_type 关键字定义了控制器和磁盘型号。每个 disk_type 定义都包含有关磁盘物理几何参数的信息。缺省的 format.dat 文件包含 Solaris OS 支持的控制器和磁盘的定义。仅当使用不支持的磁盘时,才需要添加新的 disk_type。可以向数据文件中添加任意数目的 disk_type 定义。
可将磁盘类型名称指定给关键字本身。该名称出现在磁盘的标号中,并且在运行 format 实用程序时用于标识磁盘类型。 使用双引号将该名称引起来可保留名称中的所有空格。下表描述了在所有的 disk_type 定义中还必须被赋值的标识符。
表 16–7 所需的 disk_type 标识符 (format.dat)
标识符 |
说明 |
---|---|
ctlr |
标识磁盘类型的控制器类型。当前,支持的值为 SCSI 和 ATA。 |
ncyl |
指定磁盘类型中的数据柱面的数目。这将确定允许系统访问的逻辑磁盘柱面数目。 |
acyl |
指定磁盘类型中的备用柱面的数目。这些柱面供 format 实用程序用于存储信息(如驱动器的缺陷列表)。应始终保留至少两个柱面进行备用。 |
pcyl |
指定磁盘类型中的物理柱面的数目。此数字用于计算磁盘介质的范围。此数字通常等于 ncyl 加上 acyl。 |
nhead |
指定磁盘类型中的磁头的数目。此数字用于计算磁盘介质的范围。 |
nsect |
指定磁盘类型中每个磁道的数据扇区的数目。此数字用于计算磁盘介质的范围。请注意,此数字仅包括数据扇区。任何备件都不会反映在每个磁道的数据区段数目中。 |
rpm |
指定磁盘类型的每分钟旋转次数。此信息将置于标签中,随后由文件系统用于计算文件数据的最佳保存位置。 |
其他标识符可能是必需的,具体取决于控制器。下表描述了 SCSI 控制器所需的标识符。
表 16–8 SCSI 控制器 format.dat 所需的 disk_type 标识符
标识符 |
说明 |
---|---|
fmt_time |
指定一个数字,用于指明格式化给定驱动器所需的时间。有关更多信息,请参见控制器手册。 |
cache |
指定一个数字,用于控制 format 实用程序运行时执行的板载高速缓存操作。有关更多信息,请参见控制器手册。 |
trks_zone |
指定一个数字,用于标识每个缺陷区域中存在的要在备用扇区映射中使用的磁道数。有关更多信息,请参见控制器手册。 |
asect |
指定一个数字,用于标识给定缺陷区域中可用于备用映射的扇区。有关更多信息,请参见控制器手册。 |
以下是 disk_type 定义的示例:
disk_type = "SUN1.3G" \ : ctlr = SCSI : fmt_time = 4 \ : trks_zone = 17 : asect = 6 : atrks = 17 \ : ncyl = 1965 : acyl = 2 : pcyl = 3500 : nhead = 17 : nsect = 80 \ : rpm = 5400 : bpt = 44823 disk_type = "SUN2.1G" \ : ctlr = SCSI : fmt_time = 4 \ : ncyl = 2733 : acyl = 2 : pcyl = 3500 : nhead = 19 : nsect = 80 \ : rpm = 5400 : bpt = 44823 disk_type = "SUN2.9G" \ : ctlr = SCSI : fmt_time = 4 \ : ncyl = 2734 : acyl = 2 : pcyl = 3500 : nhead = 21 : nsect = 99 \ : rpm = 5400 |
format.dat 文件中的分区表为特定磁盘类型定义了片表。
将分区表的名称指定给 format.dat 文件中的 partition 关键字。使用双引号将该名称引起来可保留名称中的所有空格。下表描述了所有分区表中必须赋值的标识符。
表 16–9 分区表 (format.dat) 所需的标识符
标识符 |
说明 |
---|---|
disk |
为此分区表定义的 disk_type 的名称。此名称必须与 disk_type 定义中显示的完全相同。 |
ctlr |
可与此分区表连接的磁盘控制器的类型。当前,对于 ATA 控制器,支持的值为 ATA;对于 SCSI 控制器,支持的值为 SCSI。另外,还必须为在 disk_type 定义中指定的 disk_type 定义此处指定的控制器类型。 |
片定义中的其他标识符描述了实际的分区信息。标识符是 0 到7 之间的数字。这些标识符是可选的。未显式指定的任何分区长度都设置为 0。其中每个标识符的值都是以逗号分隔的一对数字。第一个数字是分区的起始柱面。第二个数字是片中的扇区数目。
以下是一些片信息示例:
partition = "SUN1.3G" \ : disk = "SUN1.3G" : ctlr = SCSI \ : 0 = 0, 34000 : 1 = 25, 133280 : 2 = 0, 2672400 : 6 = 123, 2505120 partition = "SUN2.1G" \ : disk = "SUN2.1G" : ctlr = SCSI \ : 0 = 0, 62320 : 1 = 41, 197600 : 2 = 0, 4154160 : 6 = 171, 3894240 partition = "SUN2.9G" \ : disk = "SUN2.9G" : ctlr = SCSI \ : 0 = 0, 195426 : 1 = 94, 390852 : 2 = 0, 5683986 : 6 = 282, 5097708 |
format 实用程序按一定顺序通过以下方法确定备用文件的位置:
如果使用 format -x 选项给定文件名称,则始终将该文件用作数据文件。
如果未指定 -x 选项,则 format 实用程序将搜索当前目录中名为 format.dat 的文件。如果该文件存在,则将其用作数据文件。
如果上述任一方法都无法产生数据文件,则 format 实用程序将使用 /etc/format.dat 文件作为数据文件。此文件是 Solaris OS 附带的,并且会始终提供此文件。
使用 format 实用程序时,需要提供各种信息。本节介绍这类信息的规则。有关在指定数据时使用 format 的帮助功能的信息,请参见获取有关 format 实用程序的帮助。
format 实用程序中的多个位置都要求使用数字作为输入。必须指定相应数据,或从选项列表中选择一个数字。在任一情况下,帮助功能都会导致 format 显示预期的数字上限和下限。只需输入合适的数字即可。如果未将基数显式指定为数字的一部分(例如,0x 表示十六进制),则假定该数字采用十进制格式。
以下是整数输入的示例:
Enter number of passes [2]: 34 Enter number of passes [34] Oxf |
将块编号指定为整数
采用柱面/磁头/扇区格式指定块编号
可以将该信息指定为表示逻辑块编号的整数。可以指定任何基数的编号,但缺省值为十进制。另外,还可以在此处使用最大值运算符(美元符号 $),以便 format 实用程序可以选择合适的值。SunOS 磁盘驱动器会在错误消息中使用逻辑块格式。
另一种指定块编号的方法是使用柱面/磁头/扇区格式。使用此方法时,必须显式指定块编号的三个逻辑组成部分:柱面、磁头和扇区值。这些值仍然为逻辑值。但是,可以使用这些值来定义与介质布局相关的磁盘区域。
如果未指定任何柱面/磁头/扇区编号,则假定该值为零。另外,还可以使用最大值运算符来代替任何编号。这样,format 实用程序即可选择合适的值。以下是一些柱面、磁头和扇区值的示例:
Enter defective block number: 34/2/3 Enter defective block number: 23/1/ Enter defective block number: 457// Enter defective block number: 12345 Enter defective block number: Oxabcd Enter defective block number: 334/$/2 Enter defective block number: 892//$ |
format 实用程序始终采用这两种格式显示块编号。另外,帮助功能也会采用这两种格式显示预期块编号的上限和下限。
只要 format 实用程序显示菜单提示,就需要将命令名称作为输入。可以缩写命令名称,只要键入的内容可充分唯一标识所需命令即可。
例如,使用 p 访问 format 菜单中的 partition 菜单。那么,键入 p 显示当前的片表。
format> p PARTITION MENU: 0 - change `0' partition 1 - change `1' partition 2 - change `2' partition 3 - change `3' partition 4 - change `4' partition 5 - change `5' partition 6 - change `6' partition 7 - change `7' partition select - select a predefined table modify - modify a predefined partition table name - name the current table print - display the current table label - write partition map and label to the disk quit partition> p |
在 format 实用程序的某些位置,必须指定一些名称。在这些情况下,可以自由指定名称所需的任何字符串。如果名称中包含空格,则必须使用双引号 (") 将整个名称引起来。否则,仅使用名称的第一个单词。
例如,如果要标识磁盘的特定分区表,则可以使用 partition 菜单中可用的 name 子命令:
partition> name Enter table name (remember quotes): "new disk3" |
format 实用程序提供了 format 实用程序每次要求输入时可以使用的帮助功能。通过键入问号 (?),可以请求有关要求的输入的帮助。format 实用程序可显示所需输入类型的简短说明。
如果在菜单提示下键入 ?,则将显示可用命令的列表。
与 format 实用程序关联的手册页包括以下信息:
format(1M) -介绍基本的 format 实用程序功能并提供所有命令行变量的说明。
format.dat(4) -介绍 format 实用程序的磁盘驱动器配置信息。