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

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 と一緒に出荷されるので、必ず存在します。