この章では、format ユーティリティのメニューとコマンドについて説明します。
この章の内容は次のとおりです。
format ユーティリティの概要については、第 21 章「ディスク管理の概要」を参照してください。
format ユーティリティを使用するには、スーパーユーザーにならなければなりません。スーパーユーザーでない場合は、format を使用しようとすると次のエラーメッセージが表示されます。
% format Searching for disk...done No permission (or no disk found)! |
format の dump コマンドを使用して、欠陥のリストをファイルに保存します。ファイル名には、ドライブタイプ、モデル番号、シリアル番号を含めておくべきです。
メーカーから出荷時にドライブといっしょに提供された、欠陥のリストを保管します。
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> |
表 25-1 に、format のメインメニュー項目を示します。
表 25-1 format のメインメニュー項目の説明
項目 |
コマンド / メニュー |
機能 |
---|---|---|
disk |
コマンド |
後の操作に使用するディスクを選択する (現在のディスクと呼ぶ)。システムのすべてのドライブが表示される。 |
type |
コマンド |
現在のディスクのメーカーとモデルを選択する。認識されているドライブタイプのリストが表示される。SCSI-2 対応ディスクドライブの場合は Auto configure オプションを選択する。 |
partition |
メニュー |
スライスを作成したり変更したりする。詳細は、「partition メニュー」を参照。 |
current |
コマンド |
現在のディスクに関して次の情報が表示される。
|
format |
コマンド |
次のいずれかの情報源をこの順番に使用して、現在のディスクをフォーマットする。
|
fdisk |
メニュー |
fdisk プログラムが実行され、Solaris fdisk パーティションを作成する。 |
repair |
コマンド |
ディスク上で特定のブロックを修復する。 |
label |
コマンド |
現在のディスクに新しいラベルを書き込む。 |
analyze |
メニュー |
読み取り、書き込み、比較テストを実行する。詳細は、「analyze メニュー」を参照。 |
defect |
メニュー |
欠陥リストを検索して出力する。詳細は、「defect メニュー」を参照。 |
backup |
コマンド |
バックアップラベルを検索する。 |
verify |
コマンド |
ディスクに関して次の情報を出力する。
|
save |
コマンド |
新しいディスクとパーティションの情報を保存する。 |
inquiry |
コマンド |
現在のドライブのベンダ、製品名、リビジョンレベルが出力される (SCSI ディスクのみ)。 |
volname |
コマンド |
新しい 8 文字のボリューム名を使用してディスクラベルを作成する。 |
quit |
コマンド |
format メニューを終了する。 |
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> |
表 25-2 に、partition メニューの項目を示します。
表 25-2 partition メニューの項目の説明
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: |
表 25-3 に、fdisk メニューの項目を示します。
表 25-3 fdisk メニューの項目の説明
コマンド |
機能 |
---|---|
Create a partition |
fdisk パーティションを作成する。Solaris や DOS など、オペレーティングシステムごとに別々のパーティションを作成しなければならない。1 台のディスクの最大パーティション数は 4 である。fdisk のパーティションのサイズをパーセンテージで入力するように促すプロンプトが表示される。 |
Change Active partition |
どのパーティションをブートに使用するかを指定する。これにより、第 1 段階のブートプログラムが実行する第 2 段階のブートプログラムの存在するパーティションを指定する。 |
Delete a partition |
以前に作成したパーティションを削除する。このコマンドを実行すると、パーティション内のすべてのデータが失われる。 |
Exit |
新しいパーティションテーブルを書き込んで fdisk メニューを終了する。 |
Cancel |
パーティションテーブルを変更せずに fdisk メニューを終了する。 |
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> |
表 25-4 に、analyze メニューの項目を示します。
表 25-4 analyze メニューの項目の説明
コマンド |
機能 |
---|---|
read |
このディスクの各セクターを読み込む。デフォルトで欠陥ブロックを修復する。 |
refresh |
データを損なわずにディスク上で読み込んで書き込む。デフォルトで欠陥ブロックを修復する。 |
test |
データを損なわずに一連のパターンをディスクに書き込む。デフォルトで欠陥ブロックを修復する。 |
write |
一連のパターンをディスクに書き込んで、そのデータをディスクから読み込む。ディスク上の既存のデータは破壊される。デフォルトで欠陥ブロックを修復する。 |
compare |
ディスクに一連のパターンを書き込み、そのデータを読み込み、書き込みバッファ内のデータと比較する。ディスク上の既存のデータは破壊される。デフォルトで欠陥ブロックを修復する。 |
purge |
ディスク上のデータを消去する。いかなる手段でも取り出せないように、ディスクに複数のパターンを書き込むことによって、すべてのデータを削除する。ディスク全体 (またはディスクのセクション) に 3 種類のパターンが書き込まれ、検査に合格すると 16 進のビットパターンが書き込まれて、データが削除される。 デフォルトで欠陥ブロックを修復する。 |
verify |
1 度目にディスク全体の各ブロックに固有のデータを書き込み、2 度目にそのデータを検査する。ディスク上の既存のデータは失われる。デフォルトで欠陥ブロックを修復する。 |
|
読み込み/書き込みバッファ内のデータを表示する。 |
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 |
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> |
表 25-5 に defect メニューの項目を示します。
表 25-5 defect メニューの項目の説明
コマンド |
機能 |
---|---|
primary |
メーカーの欠陥リストをディスクドライブから読み込んで、メモリー内の欠陥リストを更新する。 |
grown |
増分の欠陥リスト (analyze メニューから検出された欠陥) を読み込んで、メモリー内の欠陥リストを更新する。 |
both |
メーカーの欠陥リストと増分の欠陥リストを読み込んで、メモリー内の欠陥リストを更新する。 |
|
メモリー内の欠陥リストを表示する。 |
dump |
メモリー内の欠陥リストをファイルに保存する。 |
quit |
defect メニューを終了する。 |
format で使用されるデータ、/etc/format.dat の内容は次のとおりです。
ディスクタイプ
デフォルトのスライステーブル
Solaris オペレーティングシステムといっしょに出荷される format.dat ファイルでは、多数の標準的なディスクがサポートされます。使用中のディスクドライブが format.dat ファイルに含まれていない場合は、そのエントリを追加するか、format で処理を実行中に必要な情報の入力を促すプロンプトを表示させることができます。
ディスクドライブをサイト全体で使用する場合は、format.dat ファイルにエントリを追加すると時間を節約できます。format.dat ファイルを他のシステム上で使用する場合は、format.dat ファイルに追加する特定のディスクドライブを使用するシステムごとに、このファイルをコピーしてください。
次の場合には、システムのデータファイルを変更する必要があります。
ディスクが Solaris オペレーティング環境でサポートされない場合
スライステーブルが入っているディスクが、Solaris オペレーティング環境のデフォルト構成とは異なる場合
デフォルトエントリは変更しないでください。デフォルトエントリを変更したい場合は、混乱を避けるために、そのエントリをコピーし、別の名前を付けて変更します。
format.dat データファイルには、format ユーティリティに使用されるディスクドライブ情報が入っています。format.dat ファイル内では、次の 3 つの項目が定義されています。
検索パス
ディスクタイプ
スライステーブル
シャープ記号 (#) はコメント文字です。シャープ記号に続く 1 行のテキストは、format で解釈されません。
format.dat ファイル内の各定義は、1 つの論理行で評価されます。定義が長すぎて 1 行に収まらない場合は、定義の最終行を除くすべての行末にバックスラッシュ (¥) を付けなければなりません。
定義は、左辺に識別子、右辺に 1 つまたは複数の値を持つ一連の代入式からなっています。代入演算子は等号 (=) です。定義内の代入式はコロン (:) で区切らなければなりません。
空白は、format に無視されます。代入値に空白を含めたい場合は、値全体を二重引用符 (") で囲みます。これにより、引用符の内側の空白は代入値の一部として保持されます。
代入式によっては、右辺に複数の値を指定できるものがあります。値はカンマ (,) で区切ります。
データファイルには、起動時に format に読み込まれるディスク定義が入っています。各定義は、キーワード search_path、disk_type、または partition で始まります。表 25-6 を参照してください。
表 25-6 format.dat のキーワードの説明
キーワード |
用途 |
---|---|
search_path |
このキーワードは format.dat ファイルでは使用しない。Solaris 2.0 リリース以降は、format ユーティリティは論理デバイス階層 (/dev) を検索するので、このキーワードを設定してシステムのディスクを検索する必要がなくなった。 |
disk_type |
コントローラとディスクのモデルを定義する。各 disk_type 定義には、ディスクの物理ジオメトリに関する情報が入っている。デフォルトのデータファイルには、Solaris オペレーティング環境でサポートされるコントローラとディスクの定義が入っている。サポートされないディスクを使用する場合にのみ、新しい disk_type を追加する必要がある。必要に応じて、disk_type 定義をデータファイルにいくつ追加してもかまわない。 |
partition |
ディスクタイプのスライステーブルを定義する。スライステーブルには、スライス情報だけでなく、format 内で参照できる名前が入っている。デフォルトのデータファイルには、数種類のディスクドライブに対応するデフォルトのスライス定義が入っている。システムのディスク上にスライスを作成し直した場合は、スライス定義を追加する。必要に応じて、スライス情報をデータファイルにいくつ追加してもかまわない。 |
disk_type は、コントローラとディスクのモデルを定義します。各 disk_type 定義には、ディスクの物理ジオメトリに関する情報が入っています。デフォルトのデータファイルには、Solaris オペレーティング環境でサポートされるコントローラとディスクの定義が入っています。サポートされないディスクを使用する場合に限り、新しい disk_type を追加する必要があります。必要に応じて、disk_type 定義をデータファイルにいくつ追加してもかまいません。
キーワード自体が、ディスクタイプ名になります。この名前は、ディスクのラベルの一部になり、format の実行時にディスクタイプを識別するために使用されます。空白が含まれている名前は、二重引用符で囲んでください。表 25-7に、すべての disk_type 定義でキーワードの他に割り当てなければならない識別子を示します。
表 25-7 必須の disk_type 識別子
識別子 |
説明 |
---|---|
ctlr |
ディスクタイプに有効なコントローラのタイプ。現在、この代入式に有効な値は SCSI と ISP-80 (IPI コントローラ) である。 |
ncyl |
ディスクタイプ内のデータシリンダ数。この数によって、システムがアクセスできるディスクの論理シリンダ数が決まる。 |
acyl |
ディスクタイプ内の代替シリンダ数。format は、これらのシリンダを使用して、ドライブの欠陥リストなどの情報を格納する。代替シリンダとして、常に 2 つはシリンダを残しておく必要がある。 |
pcyl |
ディスクタイプ内の物理シリンダ数。この数は、ディスク媒体の境界を計算するために使用される。通常、この数値は ncyl と acyl の合計に等しくなるが、そうでない場合もある。 |
nhead |
ディスクタイプ内のヘッド数。この数値は、ディスク媒体の境界を計算するために使用される。 |
nsect |
ディスクタイプ内の 1 トラック当たりのデータセクター数。この数値は、ディスク媒体の境界を計算するために使用される。これはデータセクターだけで、スペアは割り当てには含まれない。 |
rpm |
ディスクタイプの 1 分当たりの回転数。この情報はラベルに書き込まれ、後からファイルシステムでファイルデータの最適位置の計算に使用される。 |
コントローラによっては、他の代入式が必要な場合があります。表 25-8に、SCSI コントローラに必要な代入式を示します。
表 25-8 SCSI コントローラの disk_type 識別子
識別子 |
説明 |
---|---|
fmt_time |
所定のドライブのフォーマットに要する時間を示す数値。詳細は、コントローラのマニュアルを参照。 |
cache |
format の処理中にオンボードキャッシュの動作を制御する数値。詳細は、コントローラのマニュアルを参照。 |
trks_zone |
代替セクターのマッピング内で使用される 1 つの欠陥領域当たりのトラック数を指定した数値。詳細は、コントローラのマニュアルを参照。 |
asect |
このパラメータに代入した数値は、所定の欠陥領域内で代替マッピングに利用できるセクター数を指定する。詳細は、コントローラのマニュアルを参照。 |
次に、disk_type 定義の例を示します。
disk_type = "SUN0535" ¥ : ctlr = SCSI : fmt_time = 4 ¥ : ncyl = 1866 : acyl = 2 : pcyl = 2500 : nhead = 7 : nsect = 80 ¥ : rpm = 5400 disk_type = "SUN0669" ¥ : ctlr = SCSI : fmt_time = 4 ¥ : trks_zone = 15 : asect = 5 : atrks = 30 ¥ : ncyl = 1614 : acyl = 2 : pcyl = 1632 : nhead = 15 : nsect = 54 ¥ : rpm = 3600 : bpt = 31410 disk_type = "SUN1.0G" ¥ : ctlr = SCSI : fmt_time = 4 ¥ : trks_zone = 15 : asect = 5 : atrks = 30 ¥ : ncyl = 1703 : acyl = 2 : pcyl = 1931 : nhead = 15 : nsect = 80 ¥ : rpm = 3597 : bpt = 41301 |
partition 定義のキーワードが、スライステーブル名になります。空白が含まれている名前は、二重引用符で囲んでください。表 25-9 に、すべてのスライステーブル内で値を代入しなければならない識別子を示します。
表 25-9 スライステーブルの必須識別子
識別子 |
説明 |
---|---|
disk |
このスライステーブルが定義されている disk_type の名前。この名前は disk_type 内で使用されるとおりに指定しなければならない。 |
ctlr |
このスライステーブルを接続できるコントローラタイプディスク。現在、この代入式に有効な値は IPI コントローラを表す ISP-80 と SCSI コントローラを表す SCSI である。ここで指定したコントローラタイプは、上記で選択した disk_type にも定義しなければならない。 |
スライス定義内の他の代入式では、実際のスライス情報を記述します。識別子は 0 から 7 までの番号です。これらの代入式は省略可能です。明示的に代入されていないスライスは、長さ 0 に設定されます。最初の数値はスライスの開始シリンダで、第 2 はスライス内のセクター数です。次に、スライス定義の例を示します。
partition = "SUN0535" ¥ : disk = "SUN0535" : ctlr = SCSI ¥ : 0 = 0, 64400 : 1 = 115, 103600 : 2 = 0, 1044960 : 6 = 300, 876960 partition = "SUN0669" ¥ : disk = "SUN0669" : ctlr = SCSI ¥ : 0 = 0, 32400 : 1 = 40, 64800 : 2 = 0, 1307340 : 6 = 120, 1210140 partition = "SUN1.0G" ¥ : disk = "SUN1.0G" : ctlr = SCSI ¥ : 0 = 0, 32400 : 1 = 27, 64800 : 2 = 0, 2043600 : 6 = 81, 1946400 |
format ユーティリティは、次の方法でデータファイルの位置を認識します。
-x コマンド行オプションでパス名を指定した場合は、そのファイルは常にデータファイルとして使用されます。
-x オプションを指定しなければ、format は現在のディレクトリ内でファイル format.dat を検索します。このファイルが見つかると、データファイルとして使用されます。
どちらの方法でもデータファイルが見つからなければ、format はデータファイルとして /etc/format.dat を使用します。このファイルは Solaris オペレーティング環境といっしょに出荷されるので、必ずあるはずです。
format ユーティリティを使用する場合は、さまざまな情報を入力する必要があります。この節では、入力する情報に関する規則について説明します。データ入力時に format のヘルプ機能を使用する方法については、「ヘルプ」を参照してください。
format 内では、整数を入力しなければならない場所が数カ所あります。データを指定するか、選択肢のリストから選択しなければなりません。どちらの場合も、help 機能を使用すると、format は期待する整数の上限と下限を表示し、目的の数値を入力するだけですみます。数値は、その一部として底を明示的に指定しない限り (16 進数を表す 0x など)、10 進数と見なされます。
次の例は、整数の入力を示しています。
Enter number of passes [2]: 34 Enter number of passes [34] Oxf
ディスクのブロック番号を入力しなければならない場合は、情報を次の 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 でメニュープロンプトが表示される場合は、コマンド名を入力する必要があります。コマンド名は、目的のコマンドとして区別できる長さまで省略できます。
たとえば、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(1M) と format.dat(4) です。format(1M) には、format ユーティリティの基本機能とコマンド行で使用できるすべてのオプションについて説明されています。format.dat(4) には、format ユーティリティで使用するディスクドライブ構成情報について説明されています。