Solaris のシステム管理 (第 1 巻)

第 32 章 format ユーティリティ (参照情報)

この章では、format ユーティリティのメニューとコマンドについて説明します。

この章の内容は次のとおりです。

format ユーティリティの概要については、第 28 章「ディスクの管理 (概要)」を参照してください。

format ユーティリティを使用するための要件または制限

format ユーティリティを使用するには、スーパーユーザーにならなければなりません。スーパーユーザーでない場合は、format を使用しようとすると次のエラーメッセージが表示されます。


% format	Searching for disk...done

	No permission (or no disk found)!

format を使用する場合に情報を保存するための推奨事項

format のメニューとコマンドの説明

format のメインメニューは次のようになっています。


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> 

表 32-1 に、format のメインメニュー項目を示します。

表 32-1 format のメインメニュー項目の説明

項目 

コマンド / メニュー 

機能 

disk

コマンド 

後の操作に使用するディスクを選択する (現在のディスクと呼ぶ)。システムのすべてのドライブが表示される。 

type

コマンド 

現在のディスクのメーカーとモデルを選択する。認識されているドライブタイプのリストが表示される。SCSI-2 対応ディスクドライブの場合は Auto configure オプションを選択する。

partition

メニュー 

スライスを作成したり変更したりする。詳細は、partition メニュー」を参照。

current

コマンド 

現在のディスクに関して次の情報が表示される。 

  • デバイス名とタイプ

  • シリンダ数、代替シリンダ数、ヘッド数、セクター数

  • 物理デバイス名

format

コマンド 

次のいずれかの情報源をこの順番に使用して、現在のディスクをフォーマットする。 

  1. format.dat ファイル内の情報

  2. 自動構成プロセスからの情報

  3. format.dat エントリが見つからない場合にプロンプトに応答した情報

fdisk

メニュー 

fdisk プログラムが実行され、Solaris fdisk パーティションを作成する。

repair

コマンド 

ディスク上で特定のブロックを修復する。 

label

コマンド 

現在のディスクに新しいラベルを書き込む。 

analyze

メニュー 

読み取り、書き込み、比較テストを実行する。詳細は、analyze メニュー」を参照。

defect

メニュー 

欠陥リストを検索して出力する。詳細は、defect メニュー」を参照。

backup

コマンド 

バックアップラベルを検索する。 

verify

コマンド 

ディスクに関して次の情報を出力する。 

  • デバイス名とタイプ

  • シリンダ数、代替シリンダ数、ヘッド数、セクター数

  • パーティションテーブル

save

コマンド 

新しいディスクとパーティションの情報を保存する。 

inquiry

コマンド 

現在のドライブのベンダ、製品名、リビジョンレベルが出力される (SCSI ディスクのみ)。 

volname

コマンド 

新しい 8 文字のボリューム名を使用してディスクラベルを作成する。 

quit

コマンド 

format メニューを終了する。

partition メニュー

partition メニューは次のようになっています。


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> 

表 32-2 に、partition メニューの項目を示します。

表 32-2 partition メニューの項目の説明

コマンド 

機能 

change `x' partition

以下の値を設定し、新しいスライスを指定する。 

  • 識別タグ

  • アクセス権フラグ

  • 開始シリンダ

  • サイズ

select

あらかじめ定義されたスライステーブルを選択する。 

modify

スライステーブル内のすべてのスライスを変更する。個々のスライスに対して change `x partition コマンドを実行するよりも、このコマンドが使用されることが多い。

name

現在のスライステーブルの名前を指定する。 

print

現在のスライステーブルが表示される。 

label

スライスマップとラベルを現在のディスクに書き込む。 

quit

partition メニューを終了する

IA: fdisk メニュー

IA システム上でのみ、次のような fdisk メニューが表示されます。


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: 

表 32-3 に、fdisk メニューの項目を示します。

表 32-3 fdisk メニューの項目の説明

コマンド 

機能 

Create a partition

fdisk パーティションを作成する。Solaris や DOS など、オペレーティングシステムごとに別々のパーティションを作成しなければならない。1 台のディスクの最大パーティション数は 4 である。fdisk のパーティションのサイズをパーセンテージで入力するように促すプロンプトが表示される。

Change Active partition

どのパーティションをブートに使用するかを指定する。これによって、第 1 段階のブートプログラムが実行する第 2 段階のブートプログラムの存在するパーティションを指定する。 

Delete a partition

以前に作成したパーティションを削除する。このコマンドを実行すると、パーティション内のすべてのデータが失われる。 

Exit

新しいパーティションテーブルを書き込んで fdisk メニューを終了する。

Cancel

パーティションテーブルを変更せずに fdisk メニューを終了する。

analyze メニュー

analyze メニューは次のようになっています。


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> 

表 32-4 に、analyze メニューの項目を示します。

表 32-4 analyze メニューの項目の説明

コマンド 

機能 

read

このディスクの各セクターを読み込む。デフォルトで欠陥ブロックを修復する。 

refresh

データを損なわずにディスク上で読み込んで書き込む。デフォルトで欠陥ブロックを修復する。 

test

データを損なわずに一連のパターンをディスクに書き込む。デフォルトで欠陥ブロックを修復する。 

write

一連のパターンをディスクに書き込んで、そのデータをディスクから読み込む。ディスク上の既存のデータは破壊される。デフォルトで欠陥ブロックを修復する。 

compare

ディスクに一連のパターンを書き込み、そのデータを読み込み、書き込みバッファー内のデータと比較する。ディスク上の既存のデータは破壊される。デフォルトで欠陥ブロックを修復する。 

purge

ディスク上のデータを消去する。いかなる手段でも取り出せないように、ディスクに複数のパターンを書き込むことによって、すべてのデータを削除する。ディスク全体 (またはディスクのセクション) に 3 種類のパターンが書き込まれ、検査に合格すると 16 進のビットパターンが書き込まれて、データが削除される。 

デフォルトで欠陥ブロックを修復する。 

verify

1 度目にディスク全体の各ブロックに固有のデータを書き込み、2 度目にそのデータを検査する。ディスク上の既存のデータは失われる。デフォルトで欠陥ブロックを修復する。 

print

読み込み/書き込みバッファー内のデータを表示する。 

setup

次の解析パラメータを指定する。 

Analyze entire disk? yes

Starting block number: ドライブによって異なる

Ending block number: ドライブによって異なる

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

太字はデフォルトを示す。 

config

現在の解析パラメータを表示する。 

quit

analyze メニューを終了する。

defect メニュー

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> 

表 32-5defect メニューの項目を示します。

表 32-5 defect メニューの項目の説明

コマンド 

機能 

primary

メーカーの欠陥リストをディスクドライブから読み込んで、メモリー内の欠陥リストを更新する。 

grown

増分の欠陥リスト (analyze メニューから検出された欠陥) を読み込んで、メモリー内の欠陥リストを更新する。 

both

メーカーの欠陥リストと増分の欠陥リストを読み込んで、メモリー内の欠陥リストを更新する。 

print

メモリー内の欠陥リストを表示する。 

dump

メモリー内の欠陥リストをファイルに保存する。 

quit

defect メニューを終了する。

format で使用されるファイル - format.dat

format で使用されるデータ、/etc/format.dat の内容は次のとおりです。

Solaris オペレーティングシステムといっしょに出荷される format.dat ファイルでは、多数の標準的なディスクがサポートされます。使用中のディスクドライブが format.dat ファイルに含まれていない場合は、そのエントリを追加するか、format で処理を実行中に必要な情報の入力を促すプロンプトを表示させることができます。

ディスクドライブをサイト全体で使用する場合は、format.dat ファイルにエントリを追加すると時間を節約できます。format.dat ファイルを他のシステム上で使用する場合は、format.dat ファイルに追加する特定のディスクドライブを使用するシステムごとに、このファイルをコピーしてください。

次の場合には、システムのデータファイルを変更する必要があります。


注 -

デフォルトエントリは変更しないでください。デフォルトエントリを変更したい場合は、混乱を避けるために、そのエントリをコピーし、別の名前を付けて変更します。


format.dat ファイルの構造

format.dat データファイルには、format ユーティリティに使用されるディスクドライブ情報が入っています。format.dat ファイル内では、次の 3 つの項目が定義されています。

format.dat ファイルの構文

データファイルには、次の構文規則が適用されます。

format.dat ファイル中のキーワード

データファイルには、起動時に format に読み込まれるディスク定義が入っています。各定義は、キーワード search_pathdisk_type、または partition で始まります。表 32-6 を参照してください。

表 32-6 format.dat のキーワードの説明

キーワード 

用途 

search_path

このキーワードは format.dat ファイルでは使用しない。Solaris 2.0 リリース以降は、format ユーティリティは論理デバイス階層 (/dev) を検索するので、このキーワードを設定してシステムのディスクを検索する必要がなくなった。

disk_type

コントローラとディスクのモデルを定義する。各 disk_type 定義には、ディスクの物理ジオメトリに関する情報が入っている。デフォルトのデータファイルには、Solaris オペレーティング環境でサポートされるコントローラとディスクの定義が入っている。サポートされないディスクを使用する場合にのみ、新しい disk_type を追加する必要がある。必要に応じて、disk_type 定義をデータファイルにいくつ追加してもかまわない。

partition

ディスクタイプのスライステーブルを定義する。スライステーブルには、スライス情報だけでなく、format 内で参照できる名前が入っている。デフォルトのデータファイルには、数種類のディスクドライブに対応するデフォルトのスライス定義が入っている。システムのディスク上にスライスを作成し直した場合は、スライス定義を追加する。必要に応じて、スライス情報をデータファイルにいくつ追加してもかまわない。

ディスクタイプ (format.dat)

disk_type は、コントローラとディスクのモデルを定義します。各 disk_type 定義には、ディスクの物理ジオメトリに関する情報が入っています。デフォルトのデータファイルには、Solaris オペレーティング環境でサポートされるコントローラとディスクの定義が入っています。サポートされないディスクを使用する場合に限り、新しい disk_type を追加する必要があります。必要に応じて、disk_type 定義をデータファイルにいくつ追加してもかまいません。

キーワード自体が、ディスクタイプ名になります。この名前は、ディスクのラベルの一部になり、format の実行時にディスクタイプを識別するために使用されます。空白が含まれている名前は、二重引用符で囲んでください。表 32-7に、すべての disk_type 定義でキーワードの他に割り当てなければならない識別子を示します。

表 32-7 必須の disk_type 識別子

識別子 

説明 

ctlr

ディスクタイプに有効なコントローラのタイプ。現在、この代入式に有効な値は SCSI と ISP-80 (IPI コントローラ) である。 

ncyl

ディスクタイプ内のデータシリンダ数。この数によって、システムがアクセスできるディスクの論理シリンダ数が決まる。 

acyl

ディスクタイプ内の代替シリンダ数。format は、これらのシリンダを使用して、ドライブの欠陥リストなどの情報を格納する。代替シリンダとして、常に 2 つはシリンダを残しておく必要がある。

pcyl

ディスクタイプ内の物理シリンダ数。この数は、ディスク媒体の境界を計算するために使用される。通常、この数値は ncylacyl の合計に等しくなるが、そうでない場合もある。

nhead

ディスクタイプ内のヘッド数。この数値は、ディスク媒体の境界を計算するために使用される。 

nsect

ディスクタイプ内の 1 トラック当たりのデータセクター数。この数値は、ディスク媒体の境界を計算するために使用される。これはデータセクターだけで、スペアは割り当てには含まれない。 

rpm

ディスクタイプの 1 分当たりの回転数。この情報はラベルに書き込まれ、後からファイルシステムでファイルデータの最適位置の計算に使用される。 

コントローラによっては、他の代入式が必要な場合があります。表 32-8に、SCSI コントローラに必要な代入式を示します。

表 32-8 SCSI コントローラの disk_type 識別子

識別子 

説明 

fmt_time

所定のドライブのフォーマットに要する時間を示す数値。詳細は、コントローラのマニュアルを参照。 

cache

format の処理中にオンボードキャッシュの動作を制御する数値。詳細は、コントローラのマニュアルを参照。

trks_zone

代替セクターのマッピング内で使用される 1 つの欠陥領域当たりのトラック数を指定した数値。詳細は、コントローラのマニュアルを参照。 

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)

partition 定義のキーワードが、スライステーブル名になります。空白が含まれている名前は、二重引用符で囲んでください。表 32-9 に、すべてのスライステーブル内で値を代入しなければならない識別子を示します。

表 32-9 スライステーブルの必須識別子

識別子 

説明 

disk

このスライステーブルが定義されている disk_type の名前。この名前は disk_type 内で使用されるとおりに指定しなければならない。

ctlr

このスライステーブルを接続できるコントローラタイプディスク。現在、この代入式に有効な値は IPI コントローラを表す ISP-80 と SCSI コントローラを表す SCSI である。ここで指定したコントローラタイプは、上記で選択した disk_type にも定義しなければならない。

スライス定義内の他の代入式では、実際のスライス情報を記述します。識別子は 0 から 7 までの番号です。これらの代入式は省略可能です。明示的に代入されていないスライスは、長さ 0 に設定されます。最初の数値はスライスの開始シリンダで、第 2 はスライス内のセクター数です。次に、スライス定義の例を示します。


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 ユーティリティは、次の方法でデータファイルの位置を認識します。

  1. -x コマンド行オプションでパス名を指定した場合は、そのファイルは常にデータファイルとして使用されます。

  2. -x オプションを指定しない場合は、format は現在のディレクトリ内でファイル format.dat を検索します。このファイルが見つかると、データファイルとして使用されます。

  3. どちらの方法でもデータファイルが見つからなければ、format はデータファイルとして /etc/format.dat を使用します。このファイルは Solaris オペレーティング環境と共に出荷されるので、必ず存在するはずです。

format コマンドへの入力規則

format ユーティリティを使用する場合は、さまざまな情報を入力する必要があります。この節では、入力する情報に関する規則について説明します。データ入力時に format のヘルプ機能を使用する方法については、format のヘルプを使用する」を参照してください。

format コマンドへ数値を入力する

format では、整数を入力しなければならない場所が数カ所あります。データを指定するか、選択肢のリストから選択しなければなりません。どちらの場合も、help 機能を使用すると、format は期待する整数の上限と下限を表示し、目的の数値を入力するだけですみます。数値は、その一部として底を明示的に指定しない限り (16 進数を表す 0x など)、10 進数と見なされます。

次の例は、整数の入力を示しています。


Enter number of passes [2]: 34
Enter number of passes [34] Oxf 

format コマンドへブロック番号を指定する

ディスクのブロック番号を入力しなければならない場合は、情報を次の 2 つの方法で入力できます。

この情報は、論理ブロック番号を表す整数として指定できます。任意の底の整数を指定できますが、デフォルトは 10 進です。また、ここで最大演算子 (ドル記号 $) を使用して、format に適切な値を選択させることもできます。論理ブロックの形式は、SunOS のディスクドライバによってエラーメッセージに使用されます。

ブロック番号を指定するには、シリンダ/ヘッド/セクター書式を使用する方法もあります。この形式では、ブロック番号の 3 つの論理構成要素である、シリンダ、ヘッド、セクターの値を明示的に指定しなければなりません。これらの値は論理値ですが、媒体のレイアウトに関連するディスク領域の定義に使用できます。

シリンダ/ヘッド/セクター番号を指定しなければ、該当する値は 0 であると見なされます。また、番号の代わりに最大演算子を使用して、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 は、ブロック番号を常に上記の両方の書式で出力します。また、help 機能によって、期待されるブロック番号の上限と下限が両方の書式で表示されます。

format のコマンド名を指定する

format でメニュープロンプトが表示される場合は、コマンド名を入力する必要があります。コマンド名は、目的のコマンドとして区別できる長さまで省略できます。

たとえば、p(artition) を使用して format メニューから partition メニューにアクセスできます。次に、p(rint) を使用して現在のスライステーブルを表示できます。


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 コマンドへディスク名を指定する

format では、名前を指定しなければならない場合があります。このような場合は、名前に使用したい文字列を自由に指定できます。空白を含む名前は、二重引用符 (") で囲まなければなりません。二重引用符で囲まなければ、名前の最初の語だけが使用されます。

format のヘルプを使用する

format ユーティリティにはヘルプ機能が組み込まれており、入力が必要なときに使用できます。疑問符 (?) を入力するだけで必要な情報に関するヘルプが表示され、どんなタイプの入力が必要かについて簡潔な説明が表示されます。

メニュープロンプトから ? と入力すると、利用できるコマンドのリストが表示されます。

format に関連するマニュアルページ

format ユーティリティに関連するマニュアルページは、format(1M)format.dat(4) です。format(1M) では、format ユーティリティの基本機能とコマンド行で使用できるすべてのオプションについて説明されています。 format.dat(4) では、format ユーティリティで使用するディスクドライブ構成情報について説明されています。