Chapter 14 The format Utility (Reference)
This chapter describes the format utility's
menu and commands.
This is a list of the reference information in this chapter.
For a overview of when to use the format utility,
see Chapter 10, Managing Disks (Overview).
Recommendations and Requirements for Using The format
Utility
You must be superuser or a member of an equivalent role to use the format utility. If you are not superuser or have assumed an equivalent
role, you will see the following error message when trying to use the format utility:
$ format
Searching for disks...done
No permission (or no disks found)!
|
Keep the following guidelines in mind when using the format utility and you want to preserve the existing data:
-
Back up all files on the disk drive.
-
Save all your defect lists in files by using the format utility's dump command. The file name
should include the drive type, model number, and serial number.
-
Save the paper copies of the manufacturer's defect list that
was shipped with your drive.
Format Menu and Command Descriptions
The format main menu looks like the following:
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
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
quit
format>
|
The following
table describes the format main menu items.
Table 14–1 The
format Main Menu Item Descriptions
|
Item
|
Command or Menu?
|
Description
|
|
disk
|
Command
|
Lists all of the system's drives. Also lets you choose the disk you
want to use in subsequent operations. This disk is referred to as the current
disk.
|
|
type
|
Command
|
Identifies the manufacturer and model of the current disk. Also displays
a list of known drive types. Choose the Auto configure
option for all SCSI-2 disk drives.
|
|
partition
|
Menu
|
Creates and modifies slices. For more information, see The partition Menu.
|
|
current
|
Command
|
Displays the following information about the current disk:
-
Device name and device type
-
Number of cylinders, alternate cylinders, heads and sectors
-
Physical device name
|
|
format
|
Command
|
Formats the current disk by using one of these sources of information
in this order:
-
Information that is found in the format.dat
file
-
Information from the automatic configuration process
-
Information that you enter at the prompt if there is no format.dat entry
This command does not apply to IDE disks. IDE disks are pre–formatted
by the manufacturer.
|
|
fdisk
|
Menu
|
x86 platform only: Runs the fdisk
program to create a Solaris fdisk partition.
|
|
repair
|
Command
|
Repairs a specific block on the current disk.
|
|
label
|
Command
|
Writes a new label to the current disk.
|
|
analyze
|
Menu
|
Runs read, write, compare tests. For more information, see The analyze Menu.
|
|
defect
|
Menu
|
Retrieves and prints defect lists. For more information, see The defect Menu. This feature does not apply to IDE
disks. IDE disks perform automatic defect management.
|
|
backup
|
Command
|
VTOC – Searches for backup
labels.
EFI – Not supported.
|
|
verify
|
Command
|
Prints the following information about the current disk:
-
Device name and device type
-
Number of cylinders, alternate cylinders, heads and sectors
-
Partition table
|
|
save
|
Command
|
VTOC –Saves new disk and partition
information.
EFI – Not applicable.
|
|
inquiry
|
Command
|
Prints the vendor, product name, and revision level of the current drive
(SCSI disks only).
|
|
volname
|
Command
|
Labels the disk with a new eight-character volume name.
|
|
quit
|
Command
|
Exits the format menu.
|
The partition Menu
The partition menu looks similar to the following:
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>
|
The following table describes the partition menu
items.
Table 14–2 Descriptions for
partition Menu Items
|
Sub-Command
|
Description
|
|
change `n' partition
|
Lets you specify the following information for the new slice:
-
Identification tag
-
Permission flags
-
Starting cylinder
-
Size
|
|
select
|
Lets you choose a predefined slice table.
|
|
modify
|
Lets you change all the slices in the slice table. This command is preferred
over the individual change `x' partition commands.
|
|
name
|
Lets you specify a name for the current slice table.
|
|
print
|
Displays the current slice table.
|
|
label
|
Writes the slice map and the label to the current disk.
|
|
quit
|
Exits the
partition menu.
|
x86: The fdisk Menu
The fdisk menu appears on x86
based systems only and looks similar to the following.
format> fdisk
Total disk size is 1855 cylinders
Cylinder size is 553 (512 byte) blocks
Cylinders
Partition Status Type Start End Length %
========= ====== ======== ===== === ====== ===
1 DOS-BIG 0 370 371 20
2 Active SOLARIS 370 1851 1482 80
SELECT ONE OF THE FOLLOWING:
1. Create a partition
2. Change Active (Boot from) partition
3. Delete a partition
4. Exit (Update disk configuration and exit)
5. Cancel (Exit without updating disk configuration)
Enter Selection:
|
The following table describes the fdisk menu items.
Table 14–3 x86: Descriptions for
fdisk Menu Items
|
Menu Item
|
Description
|
|
Create a partition
|
Creates an fdisk partition. You must create a separate
partition for each operating system such as Solaris or DOS. There is a maximum
of 4 partitions per disk. You are prompted for the size of the fdisk partition as a percentage of the disk.
|
|
Change Active partition
|
Lets you specify the partition to be used for booting. This menu item
identifies where the first stage boot program looks for the second stage boot
program.
|
|
Delete a partition
|
Deletes a previously created partition. This command destroys all the
data in the partition.
|
|
Exit
|
Writes a new version of the partition table and exits the fdisk menu.
|
|
Cancel
|
Exits the fdisk menu without modifying the partition
table.
|
The analyze Menu
The analyze menu looks similar to the following.
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>
|
The following table describes the analyze menu items.
Table 14–4 Descriptions for
analyze Menu Item
|
Sub-Command
|
Description
|
|
read
|
Reads each sector on the current disk. Repairs defective blocks as a
default.
|
|
refresh
|
Reads then writes data on the current disk without harming the data.
Repairs defective blocks as a default.
|
|
test
|
Writes a set of patterns to the disk without harming the data. Repairs
defective blocks as a default.
|
|
write
|
Writes a set of patterns to the disk then reads the data on the disk
back. Destroys existing data on the disk. Repairs defective blocks as a default.
|
|
compare
|
Writes a set of patterns to the disk, reads the data back, and then
compares it to the data in the write buffer. Destroys existing data on the
disk. Repairs defective blocks as a default.
|
|
purge
|
Removes all data from the disk so that the data can't be retrieved by
any means. Data is removed by writing three distinct patterns over the entire
disk (or a section of the disk). If the verification passes, a hex-bit pattern
is written over the entire disk (or a section of the disk).
Repairs defective blocks as a default.
|
|
verify
|
Writes unique data to each block on the entire disk in the first pass.
Reads and verifies the data in the next pass. Destroys existing data on the
disk. Repairs defective blocks as a default.
|
|
print
|
Displays the data in the read/write buffer.
|
|
setup
|
Lets you specify the following analysis parameters:
Analyze entire disk? yes
Starting block number: depends on drive
Ending block number: depends on drive
Loop continuously? no
Number of passes: 2
Repair defective blocks? yes
Stop after first error? no
Use random bit patterns? no
Number of blocks per transfer: 126 (0/n/nn)
Verify media after formatting? yes
Enable extended messages? no
Restore defect list? yes
Restore disk label? yes
Defaults are shown in bold.
|
|
config
|
Displays the current analysis parameters.
|
|
quit
|
Exits the analyze menu.
|
The defect Menu
The defect menu looks similar to the following:
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>
|
The following table describes the defect menu items.
Table 14–5 The
defect Menu Item Descriptions
|
Sub-Command
|
Description
|
|
primary
|
Reads the manufacturer's defect list from the disk drive and updates
the in-memory defect list.
|
|
grown
|
Reads the grown defect list, which are defects that have been detected
during analysis, and then updates the in-memory defect list.
|
|
both
|
Reads both the manufacturer's defect list and the grown defect list,
and then updates the in-memory defect list.
|
|
print
|
Displays the in-memory defect list.
|
|
dump
|
Saves the in-memory defect list to a file.
|
|
quit
|
Exits the defect menu.
|
The format.dat File
The format.dat file that is shipped with the Solaris operating system
supports many standard disks. If your disk drive is not listed in the format.dat file, you can choose to add an entry for it or adding
entries with the format utility by selecting the type command and choosing the other option.
Adding an entry to the format.dat file can save
time if the disk drive will be used throughout your site. To use the format.dat file on other systems, copy the file to each system
that will use the specific disk drive that you added to the format.dat file.
You should modify the /etc/format.dat file for
your system if you have one of the following:
Note –
Do not alter default entries in the /etc/format.dat file. If you want to alter the default entries, copy the entry,
give it a different name, and make the appropriate changes to avoid confusion.
The /etc/format.dat is not applicable for disks
with EFI labels.
Contents of the format.dat File
The format.dat contains specific disk drive information
that is used by the format utility. Three items are defined
in the format.dat file:
-
Search paths
-
Disk types
-
Slice tables
Syntax of the format.dat File
The following
syntax rules apply to the /etc/format.dat file:
-
The pound sign (#) is the comment character.
Any text on a line after a pound sign is not interpreted by the format utility.
-
Each definition in the format.dat file
appears on a single logical line. If the definition is longer than one line
long, all but the last line of the definition must end with a backslash (\).
-
A definition consists of a series of assignments that have
an identifier on the left side and one or more values on the right side. The
assignment operator is the equal sign (=). The assignments
within a definition must be separated by a colon (:).
-
White space is ignored by the format utility.
If you want an assigned value to contain white space, enclose the entire value
in double quotation marks ("). This syntax will cause the
white space within the quotes to be preserved as part of the assignment value.
-
Some assignments can have multiple values on the right hand
side. Separate values by a comma.
Keywords in the format.dat File
The format.dat file contains disk definitions that are read by the format utility when it is started. Each definition starts with one
of the following keywords: disk_type or partition. These keywords are described in the following table.
Table 14–6 Keyword Descriptions for the
format.dat File
|
Keyword
|
Use
|
|
disk_type
|
Defines the controller and disk model. Each disk_type
definition contains information that concerns the physical geometry of the
disk. The default data file contains definitions for the controllers and disks
that the Solaris operating system supports.
You need to add a new disk_type only if you have
an unsupported disk. You can add as many disk_type definitions
to the data file as you want.
|
|
partition
|
Defines a slice table for a specific disk type. The slice table contains
the slice information, plus a name that lets you refer to it in the format utility. The default format.dat file
contains default slice definitions for several kinds of disk drives. Add a
slice definition if you recreated slices on any of the disks on your system.
Add as many slice definitions to the data file as you need.
|
Disk Type (format.dat)
The disk_type keyword in the format.dat file defines the controller and disk model. Each disk_type definition contains information about the physical geometry of
the disk. The default format.dat file contains definitions
for the controllers and disks that the Solaris operating system supports.
You need to add a new disk_type only if you have an unsupported
disk. You can add as many disk_type definitions to the
data file as you want.
The keyword itself is assigned the name of the disk type. This name
appears in the disk's label, and is used to identify the disk type whenever
the format utility is run. Enclose the name in double
quotation marks to preserve any white space in the name. The following table
describes the identifiers that must also be assigned values in all disk_type definitions.
Table 14–7 Required
disk_type Identifiers
|
Identifier
|
Description
|
|
ctlr
|
Identifies the controller type for the disk type. Currently, the supported
values are SCSI and ATA.
|
|
ncyl
|
Specifies the number of data cylinders in the disk type. This determines
how many logical cylinders of the disk the system will be allowed to access.
|
|
acyl
|
Specifies the number of alternate cylinders in the disk type. These
cylinders are used by the format utility to store information
such as the defect list for the drive. You should always leave at least two
cylinders for alternates.
|
|
pcyl
|
Specifies the number of physical cylinders in the disk type. This number
is used to calculate the boundaries of the disk media. This number is usually
equal to ncyl plus acyl.
|
|
nhead
|
Specifies the number of heads in the disk type. This number is used
to calculate the boundaries of the disk media.
|
|
nsect
|
Specifies the number of data sectors per track in the disk type. This
number is used to calculate the boundaries of the disk media. Note that this
is only the data sectors. Any spares are not reflected in the number of data
sections per track.
|
|
rpm
|
The rotations per minute of the disk type. This information is put in
the label and later used by the file system to calculate the optimal placement
of file data.
|
Other identifiers might be necessary, depending on the controller. The
following table describes the identifiers that are required for SCSI controllers.
Table 14–8
disk_type Identifiers for SCSI Controllers
|
Identifier
|
Description
|
|
fmt_time
|
A number that Indicates how long it takes to format a given drive. See
the controller manual for more information.
|
|
cache
|
A number that controls the operation of the on-board cache while the format utility is operating. See the controller manual for more
information.
|
|
trks_zone
|
A number that specifies how many tracks you have per defect zone, to
be used in alternate sector mapping. See the controller manual for more information.
|
|
asect
|
A number that specifies how many sectors are available for alternate
mapping within a given defect zone. See the controller manual for more information.
|
The following are examples of disk_type definitions:
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
|
Partition or Slice Tables (format.dat)
A partition table in the format.dat file defines
a slice table for a specific disk type.
The partition keyword in the format.dat file is assigned the name of the slice table. Enclose the name
in double quotation marks to preserve any white space in the name. The following
table describes the identifiers that must be assigned values in all slice
tables.
Table 14–9 Required Identifiers for Slice Tables
|
Identifier
|
Description
|
|
disk
|
The name of the disk_type that this slice table is
defined for. This name must appear exactly as it does in the disk_type definition.
|
|
ctlr
|
The disk controller type that this slice table can be attached to. Currently,
the supported values are ATA for ATA controllers and SCSI for SCSI controllers.
The controller type that is specified here must also be defined for the disk_type that you specified in the disk_type
definition.
|
The other identifiers
in a slice definition describe the actual slice information. The identifiers
are the numbers 0 through 7. These identifiers are optional. Any slice that
is not explicitly assigned is set to 0 length. The value of each of these
identifiers is a pair of numbers separated by a comma. The first number is
the starting cylinder for the slice, and the second is the number of sectors
in the slice. The following are some examples of slice definitions:
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
|
Specifying an Alternate Data File for the format
utility
The format utility learns of the location of an alternate
file by the following methods.
-
If a file name is given with the format -x option, that file is always used as the data file.
-
If the -x option is not specified, then the format utility looks in the current directory for a file named format.dat. If the file exists, it is used as the data file.
-
If neither of these methods yields a data file, the format utility uses the /etc/format.dat file
as the data file. This file is shipped with the Solaris operating system
and should always be present.
Rules for Input to format Commands
When you use the format utility, you need to provide various kinds of information.
This section describes the rules for this information. For information on
using format's help facility when you enter data, see Getting Help on the format Utility.
Specifying Numbers to format Commands
Several places in the format utility require an number
as input. You must either specify the data or select a number from a list
of choices. In either case, the help facility causes format to print the upper and lower limits of the number expected.
Simply enter the number desired. The number is assumed to be in decimal format
unless a base is explicitly specified as part of the number (for example,
0x for hexadecimal).
The following are examples of integer input:
Enter number of passes [2]: 34
Enter number of passes [34] Oxf
|
Specifying Block Numbers to format Commands
Whenever
you are required to specify a disk block number, there are two ways to enter
the information:
You can specify the information as an integer that represents the logical
block number. You can specify the number in any base, but the default is decimal.
The maximum operator (a dollar sign, $) can also be used
here to let the format utility select the appropriate value.
Logical block format is used by the SunOS disk drivers in error messages.
The other way to specify a block number is by the cylinder/head/sector
designation. In this method, you must specify explicitly the three logical
components of the block number: the cylinder, head, and sector values. These
values are still logical, but they allow you to define regions of the disk
that are related to the layout of the media.
If any of the cylinder/head/sector numbers are not specified, the value
is assumed to be zero. You can also use the maximum operator in place of any
of the numbers and let the format utility select the appropriate
value. The following are some examples of cylinder, head, and sector entries:
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//$
|
The format utility always prints block numbers, in
both formats. Also, the help facility shows you the upper
and lower bounds of the block number expected, in both formats.
Specifying format Command Names
Command
names are needed as input whenever the format utility displays
a menu prompt. You can abbreviate the command names,
as long as what you enter is sufficient to uniquely identify the command desired.
For example, use p to enter the partition menu from the format menu. Then, enter p to display the current slice table.
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
|
Specifying Disk Names to format Commands
There are certain
times in the format utility when you must name something.
In these cases, you are free to specify any string you want for the name.
If the name has white space in it, the entire name must be enclosed in double
quotation marks ("). Otherwise, only the first word of
the name is used.
For example, if you want to identify a specific partition table for
a disk, you can use the name sub-command available from the partition menu:
partition> name
Enter table name (remember quotes): "new disk3"
|
Getting Help on the format Utility
The format utility provides a help facility that you can use whenever
the format utility is expecting input. You can request
help about what input is expected by entering a question mark (?). The format utility displays a brief description
of what type of input is needed.
If you enter a ? at a menu prompt, a list of available
commands is displayed.
The man pages associated with the format utility
include the following:
-
format(1M)
- Describes the basic format utility capabilities and provides
descriptions of all command-line variables.
-
format.dat(4)
- Describes disk drive configuration information for the format
utility.