Solaris のシステム管理 (デバイスとファイルシステム)

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

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

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

format ユーティリティーの使用方法の概要については、format ユーティリティー」を参照してください。

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
        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> 

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

表 15–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 パーティションを作成します。

fdisk コマンドは、1T バイトを超えるサイズの EFI ラベル付きディスクで使用することはできません。

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 メニューの項目を示します。

表 15–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 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 メニューの項目を示します。

表 15–3 x86: fdisk メニュー項目の説明

メニュー項目 

説明 

Create a partition

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

Specify the active partition

ブートに使用するパーティションを指定できます。このメニュー項目により、第 1 段階のブートプログラムが第 2 段階のブートプログラムを検索する場所を指定します。 

Delete a partition

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

Change between Solaris and Solaris2 Partition IDs

パーティション識別子を 130 (0x82) から 191 (0xbf) に、または 191 (0xbf) から 130 (0x82) に変更します。

Exit (update disk configuration and exit)

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

Cancel (exit without updating disk configuration)

パーティションテーブルを変更せずに 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 メニューの項目を示します。

表 15–4 analyze メニュー項目の説明

サブコマンド 

説明 

read

現在のディスクの各セクターを読み込みます。デフォルトで欠陥ブロックを修復します。 

refresh

データを損なわずに、現在のディスク上で読み取りおよび書き込みを実行します。デフォルトで欠陥ブロックを修復します。 

test

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

write

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

compare

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

purge

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

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

verify

最初の検査に合格すると、ディスク全体の各ブロックに固有のデータを書き込みます。次の検査に合格すると、データを読み取り、検証します。ディスク上の既存のデータは破壊されます。デフォルトで欠陥ブロックを修復します。 

print

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

setup

次の解析パラメータを指定できます。 

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

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 メニューの項目を示します。

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

サブコマンド 

説明 

主ノード

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

grown

増分の欠陥リストを読み取り、メモリー内の欠陥リストを更新します。「増分の欠陥」とは、解析中に検出された欠陥のことです。 

both

製造元の欠陥リストと増分の欠陥リストの両方を読み取ります。その後、メモリー内欠陥リストを更新します。 

print

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

dump

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

quit

defect メニューを終了します。

format.dat ファイル

Oracle Solaris OS と一緒に出荷される format.dat ファイルでは、多数の標準的なディスクがサポートされます。使用しているディスクドライブが format.dat ファイルに記載されていない場合は、次のようにします。

ディスクドライブをサイト全体で使用する場合は、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 が付きます。これらのキーワードについて、次の表で説明します。

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

キーワード 

説明 

disk_type

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

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

partition

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

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

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

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

表 15–7 必須の disk_type 識別子 (format.dat)

識別子 

説明 

ctlr

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

ncyl

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

acyl

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

pcyl

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

nhead

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

nsect

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

rpm

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

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

表 15–8 SCSI コントローラに必要な disk_type 識別子 (format.dat)

識別子 

説明 

fmt_time

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

cache

format ユーティリティーの処理中にオンボードキャッシュの動作を制御する数値を指定します。詳細は、コントローラのマニュアルを参照してください。

trks_zone

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

asect

所定の欠陥ゾーン内で代替マッピングに利用可能なセクター数を指定します。詳細は、コントローラのマニュアルを参照してください。  


例 15–1 SCSI コントローラに必要な disk_type 識別子 (format.dat)

次に、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 キーワードが、パーティションテーブル名になります。空白が含まれている名前は、二重引用符で囲んでください。次の表に、すべてのパーティションテーブル内で値を代入しなければならない識別子を示します。

表 15–9 パーティションテーブルに必須の識別子 (format.dat)

識別子 

説明 

disk

このパーティションテーブルが定義されている disk_type の名前。この名前は disk_type 内で使用されるとおりに指定しなければなりません。

ctlr

このパーティションテーブルを接続できるディスクコントローラタイプ。現在、有効な値は ATA コントローラを表す ATA と SCSI コントローラを表す SCSI です。ここで指定したコントローラタイプは、disk_type 定義で選択した disk_type にも定義する必要があります。

スライス定義内のほかの識別子では、実際のパーティション情報を記述します。識別子は 0 - 7 の番号です。これらの識別子は省略可能です。明示的に割り当てられていないパーティションは、長さ 0 に設定されます。これらの識別子の値は、それぞれコンマで区切られた数値のペアになります。最初の数値は、パーティションの開始シリンダを表します。2 番目の数値は、スライス内のセクター数を表します。


例 15–2 パーティションテーブルに必要な識別子 (format.dat)

次に、スライス定義の例を示します。


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 を使用します。このファイルは Oracle Solaris OS と一緒に出荷されるので、必ず存在します。

format コマンドへの入力規則

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

format コマンドへ番号を指定する

format ユーティリティーを使用する際、数値を入力する必要があります。入力方法には、適切なデータを指定する方法と、選択肢のリストから番号を選択する方法があります。どちらの場合も、ヘルプ機能を使用すると、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 ユーティリティーでは、ブロック番号は常に上記の両方の書式で出力されます。また、ヘルプ機能によって、期待されるブロック番号の上限と下限が両方の書式で表示されます。

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 ユーティリティーに関連するマニュアルページには、次が含まれます。