Solaris のシステム管理 (基本編)

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

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

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

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

format ユーティリティを使用する上での推奨事項および要件

format ユーティリティを使用するには、スーパーユーザーになるか、同等の役割を引き受ける必要があります。そうではない場合、format ユーティリティを使用しようとすると次のエラーメッセージが表示されます。


$ format
Searching for disks...done
No permission (or no disks 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> 

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

表 36–1 format のメインメニュー項目の説明

項目 

コマンド / メニュー 

説明 

disk

コマンド 

システムのドライブをすべて表示する。後の操作で使用するディスクを選択することもできる。このディスクは、「現在のディスク」と呼ばれる。 

type

コマンド 

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

partition

メニュー 

スライスの作成および変更を行う。詳細は、partition メニューを参照。

current

コマンド 

現在のディスクに関する次の情報を表示する。  

  • デバイス名とデバイスタイプ

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

  • 物理デバイス名

format

コマンド 

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

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

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

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

このコマンドは、IDE ディスクには適用できない。IDE ディスクは、あらかじめ製造元でフォーマットされる。 

fdisk

メニュー 

x86 プラットフォームのみ: fdisk プログラムを実行し、Solaris fdisk パーティションを作成する。

repair

コマンド 

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

label

コマンド 

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

analyze

メニュー 

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

defect

メニュー 

欠陥リストを検索して出力する。詳細は、defect メニューを参照。この機能は、IDE ディスクには適用できない。IDE ディスクは、自動欠陥管理を行う。

backup

コマンド 

VTOC – バックアップラベルを検索

EFI – サポートされない

verify

コマンド 

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

  • デバイス名とデバイスタイプ

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

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

save

コマンド 

VTOC – 新しいディスク情報およびパーティション情報を保存

EFI – 適用できない

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> 

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

表 36–2 partition メニュー項目の説明

サブコマンド 

説明 

change ` n' partition

新しいスライスに次の情報を設定する。 

  • 識別タグ

  • アクセス権フラグ

  • 開始シリンダ

  • サイズ

select

事前定義されたスライステーブルを選択する。 

modify

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

name

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

print

現在のスライステーブルを表示する。 

label

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

quit

partition メニューを終了する。

x86: fdisk メニュー

x86 システム上でのみ、次のような 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: 

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

表 36–3 x86: 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> 

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

表 36–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> 

次の表に、defect メニューの項目を示します。

表 36–5 defect メニュー項目の説明

サブコマンド 

説明 

primary

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

grown

増分の欠陥リスト(分析により検出された欠陥)を読み込んで、メモリー内の欠陥リストを更新する。 

both

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

print

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

dump

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

quit

defect メニューを終了する。

format.dat ファイル

Solaris オペレーティングシステムと一緒に出荷される format.dat ファイルでは、多数の標準的なディスクがサポートされます。使用中のディスクドライブが format.dat ファイルに含まれていない場合は、ファイルにエントリを追加するか、format ユーティリティで処理を実行中に type コマンドを選択してから other オプションを選択してエントリを追加できます。

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

次のいずれかの場合には、システムの /etc/format.dat ファイルを変更する必要があります。


注 –

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


/etc/format.dat は、EFI ラベル付きディスクには適用できません。

format.dat ファイルの内容

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

format.dat ファイルの構文

/etc/format.dat ファイルには、次の構文規則が適用されます。

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

format.dat ファイルには、format ユーティリティが起動時に読み込むディスク定義が含まれます。各定義の先頭には、キーワード disk_type または partition が付きます。これらのキーワードについて、次の表で説明します。

表 36–6 format.dat ファイルのキーワードの説明

キーワード 

用途 

disk_type

コントローラとディスクのモデルを定義する。各 disk_type 定義には、ディスクの物理ジオメトリに関する情報が入っている。デフォルトのデータファイルには、Solaris オペレーティングシステムでサポートされるコントローラとディスクの定義が入っている。

サポートされないディスクを使用する場合にのみ、新しい disk_type を追加する必要がある。必要に応じて、disk_type 定義をデータファイルにいくつ追加してもかまわない。

partition

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

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

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

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

表 36–7 必須の disk_type 識別子

識別子 

説明 

ctlr

ディスクタイプで有効なコントローラのタイプ。現在、有効な値は SCSI と ATA である。 

ncyl

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

acyl

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

pcyl

ディスクタイプ内の物理シリンダ数。この数値は、ディスクメディアの境界を計算するために使用される。通常、この数値は ncylacyl の合計に等しくなる。

nhead

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

nsect

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

rpm

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

コントローラによっては、他の識別子が必要な場合があります。次の表に、SCSI コントローラに必要な識別子を示します。

表 36–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)

format.dat ファイル内のパーティションテーブルに、特定のディスクタイプのスライステーブルが定義されています。

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

表 36–9 スライステーブルの必須識別子

識別子 

説明 

disk

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

ctlr

このスライステーブルを接続できるコントローラタイプディスク。現在、有効な値は ATA コントローラを表す ATA とSCSI コントローラを表すSCSI である。ここで指定したコントローラタイプは、disk_type 定義で選択した 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. format -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 ユーティリティでは、名前を指定しなければならない場合があります。このような場合は、名前に使用したい文字列を自由に指定できます。空白を含む名前は、二重引用符 (") で囲まなければなりません。二重引用符で囲まなければ、名前の最初の語だけが使用されます。

たとえば、ディスクの特定のパーティションテーブルを指定する場合、partition メニューの name サブコマンドを使用できます。


partition> name
Enter table name (remember quotes): "new disk3"

format ユーティリティのヘルプを利用する

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

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

format ユーティリティに関連するマニュアルページには、次が含まれます。