2. extipl の使い方


extipl は 拡張IPL のコード自身を含んでいるインストーラで一般的な使い方は

extipl command device-name [arg]
とします。

2.1 extipl のコマンド

extipl は次のような 7 つのコマンドを受け付けます。もしそのコマンドが パラメータ等を必要とする場合には続く第二引数以降に与えます。これらはほと んどの場合省略可能で、その時にはプログラム内であらかじめ設定されたものが 使われます。

(1) save device-name file

現在のハードディスクのブートセクタを含めて、内蔵ローダのなかでもっとも大 きい gemini に予約されている 18 セクタの内容をそれに続く引数 fileで指定 した ファイルとして保存します。save コマンドは次に続く保存ファイル名を省 略することができません。保存されるファイルの属性は 0400 です。
# extipl save wd 0 /var/save/fdisk.ipl
wd0 の先頭から 18 セクタを /var/save/fdisk.ipl として保存します。

(2) fdtest device-name [@{iplname}]

フロッピーディスクからブートさせ、ハードディスクからブートした時と同じ操作 環境を作ります。あらかじめフォーマット済みのブランクディスクを一枚用意して ください。なお、ブートローダの書かれたフロッピーディスクはデータディスクと しては使えません。
# extipl fdtest fd0 @aquila
内蔵する aquila と呼ばれるローダを1台目のフロッピーユニット(fd0)にセッ トされたディスクの先頭から書き込みます。書き込む前にディスクの確認を促さ れますので良ければ "y" キーで答えてください。なお、書き込みはブート対象 フロッピー以外のデバイスでも可能です。間違って、wd0 などのハードディスク を指定しても書き込まれてしまいます。フロッピーへ書き込む内容はハードディ スクへ書き込む場合と異なりますので、致命的な障害を引き起こします。ディバ イス名の指定は十分に注意してください。また、内蔵するローダ名を指定すると きには、必ず '@' を先頭に置いてローダ名を指定してください。さもないと、 外部のバイナリファイルが指定されたものとして処理されます。
# extipl fdtest fd0
@{iplname} が省略された場合は、内蔵するローダのなかで gemini が指定され たものとして処理します。"extipl fdtest fd0 @gemini" としたときと同じ です。

(3) install device-name [@{iplname}]

内蔵するブートローダで、指定されたものをハードディスクの先頭から書き込み ます。現在のパーティションテーブルの内容はそのまま引き継がれます。また、 ブートローダを書き込む前に自分が占める量のセクタ内容をファイルに保存する ように促します。この時に保存されるファイル属性は 0400 です。
# extipl install wd0 @aquila
aquila と呼ばれる内蔵ローダをハードディスクの先頭に書き込みます。書き込 む前に、必ずブートセクタの保存を強制され、正常に保存されない限りインストー ルへは進めません。保存するファイル名は

Enter file name to save:

のプロンプトに対して分かりやすい名称で指定してく ださい。パスを含んでも構いません。ファイル名を省略した場合 (<Enter>キーのみを入力した場合) にはカレントディレクトリに fdiskipl.nnnとして保存されます(nnn は 001 から999 まで の数値で既に存在するファイルを上書きしないよう順に増加していきます)。
# extipl install wd0
@{iplname}が指定されていないので、extipl は gemini と呼ばれる 内蔵ローダをハードディスクの先頭 18 セクタに書き込みます。 インストール前に gemini の占有セクタ内容の保存を促されるのは上 記と同じです。

(4) restore device-name file

file で保存されているブートセクタの内容を書き戻します。 このコマンドが使われると、
C)ode:  restore ipl code only
T)able: restore partition table only
A)ll:   restore ipl code and partition table
restore (c/t/a)?
と尋ねてきますので、'c', 't', 'a' のいずれかを指定してください。 これらはそれぞれ次のような意味を持っています。
Code パーティションテーブルを除くブートプログラムを書き戻します。
Table  パーティションテーブルの内容だけを指定されたファイルの内容で上 書きします。
All ブートコードとパーティションテーブルをファイルの内容で上書きします。
この時に上書きするために読み込まれるファイルの内容が正当なブートセクタのイ メージかどうかの判断はプログラム上ではまったく行っていませんし、現在のブ− トセクタの保存も行いません。使う人の指示にすべてを委ねていますので、細心の 注意を払って使用してください。 この restore コマンドは次に続くファイル名を省略することはできません。
# extipl restore wd0 master.ipl
C)ode:  restore ipl code only
T)able: restore partition table only
A)ll:   restore ipl code and partition table
restore (c/t/a)? c 
ハードディスク wd0 に master.ipl の内容からコード部分をのみ を現在のブートセクタに上書きします。

(5) show device-name

device-name で指定された対象のパーティションテーブルの内容を表示します。 もし、パーティションテーブル内に拡張領域があれば、その中も同時に表示します。
# extipl show wd0
=========
Partition TABLE on "/dev/wd0"
=========
 [1] 0B: FAT32                                    1866MB
 [2] 06: FAT16(>32MB)                              125MB
A[3] A5: FreeBSD                                  2596MB
 [4] 05: Extended DOS                                 --
     ( 1) 83: Linux native                         256MB
     ( 2) 83: Linux native                        1153MB
     ( 3) 83: Linux native                          86MB
     ( 4) 82: Linux swap/Solaris x86                62MB
ハードディスク wd0 のパーティションテーブルを表示させたものです。マスタ テーブルに拡張 DOS 領域があるので、その中も表示しています。領域番号の前 にある "A" はブート標識を示すもので、ここでは FreeBSD にセット されています。また、拡張領域内にブート標識がセットされていれば、その領域 の先頭に "*" マークが付きます。

(6) chgboot device-name

device-name で指定されたハードディスクのブート領域を変更します。この作業 は対話的に行われます。拡張領域にブート標識を設定すると、その中の任意の領域をブ ート対象に設定することができます。この時に、以下のキーが有効です。

数字 : ブート標識を立てたい領域を指定する
   w : 指定したブート標識をディスクに書き戻します。
   q : 何もせずに終了します。(ブート標識は変わりません)
   c : 操作対象となっているテーブルのブート標識をクリアします。
   b : 操作対象のテーブルを1つ前に戻します。このキーは拡張 DOS 領域
       に再帰的に入り、1つ戻りたいときに使います。マスタテーブルを
       対象としている時には 'q' と同じ意味を持ちます。

# extipl chgboot wd0
=========
Partition TABLE on "/dev/wd0"
=========
 [1] 0B: FAT32                                    1866MB
 [2] 06: FAT16(>32MB)                              125MB
A[3] A5: FreeBSD                                  2596MB
 [4] 05: Extended DOS                                 --

>>> Select partition to make bootable (? for help): 4
Partition #3(Extended DOS) specified,
Do you make bootable(y/n)? y

### Inside [4] Extended DOS
     ( 1) 83: Linux native                         256MB
     ( 2) 83: Linux native                        1153MB
     ( 3) 83: Linux native                          86MB
     ( 4) 82: Linux swap/Solaris x86                62MB

>>> Select partition to make bootable (? for help): 1

### Inside [2] Extended DOS
    *( 1) 83: Linux native                         256MB
     ( 2) 83: Linux native                        1153MB
     ( 3) 83: Linux native                          86MB
     ( 4) 82: Linux swap/Solaris x86                62MB

>>> Select partition to make bootable (? for help): w
Ok.
この例では拡張 DOS 領域内にある Linux native にブート標識を設定 しようとしています。まず、マスタテーブルの拡張 DOS 領域にブート 標識を設定します。この時、拡張 DOS 領域は本来ブート不可能なので 確認を求めています。続いて、その中にある Linux native にブート 標識を設定します。ここは、常識的にブート可能なので確認は求めら れません。最後に "w" でこれらのテーブル内容を書き戻します。 この後、確認したいならば次のようにすれば良いでしょう。
# extipl show wd0
=========
Partition TABLE on "/dev/wd0"
=========
 [1] 0B: FAT32                                    1866MB
 [2] 06: FAT16(>32MB)                              125MB
 [3] A5: FreeBSD                                  2596MB
A[4] 05: Extended DOS                                 --
    *( 1) 83: Linux native                         256MB
     ( 2) 83: Linux native                        1153MB
     ( 3) 83: Linux native                          86MB
     ( 4) 82: Linux swap/Solaris x86                62MB
extipl の内蔵しているローダはアクティブフラグを辿って、ブート 領域を探しますので、この場合は拡張領域内から Linux を起動します。

(5) clrboot device-name

ブート対象となる1台目のハードディスクのアクティブフラグをクリアします。 このコマンドを使用すると、全領域が非アクティブとなり自動的にブートせずに 毎回ブート領域の選択を促されます。extipl 内蔵ローダのブートメニューを呼び出 すタイミングがつかめないときなどに使用すると便利でしょう。 clrboot を使用した後で、アクティブ領域を設定したいときには対象領域を <End> キーを使ってブートしてください。(このあたりのからくりについては後述します) ブート対象のハードディスク全領域を非アクティブにした場合には、必ず extipl に内蔵 された選択機能を持つローダを使用してください。それ以外の場合はエラー停止しするで しょう。
ROM IPL のチェックが厳密だとローダが走る前にエラー停止することがあるので注意してください。 ([1.2] 注意点を参照のこと)
# extipl clrboot wd0
/dev/wd0 のパーティションテーブルのアクティブ領域を削除します。

2.2 device 名について

extipl をインストールする際には、その対象デバイス名をコマンドに続いて指定しなけ ればなりません。この指定を間違える取り返しの付かないことになりますから、十分に 注意してください。手元でテストしたブート対象となるデバイス名の具体例は次の通り です。extipl は指定されたデバイスについて簡単なチェックをするだけですから、実際 の指定に当たっては良く確認してください。

* FreeBSD :         2.2.x       3.x	4.x
    IDE  HDD #0 -    wd0        wd0	ad0
    SCSI HDD #0 -    sd0        da0	da0
    Floppy   #0 -    fd0        fd0	fd0

* NetBSD :           1.5
    IDE  HDD #0 -    rwd0d
    SCSI HDD #0 -
    Floppy   #0 -    rfd0c

* Linux :           2.0.x
    IDE  HDD #0 -    hda
    SCSI HDD #0 -    sda
    Floppy   #0 -    fd0

HOME Introduction | Index | Before install SourceForge.jp