次のページ 前のページ 目次へ

4. bios= を使用して、インストールした hdc を hda としてブートさせる

Lilo を使って、あるディスクからカーネルイメージのマップを作成し、そして そのカーネルイメージを別のディスクから取得するよう BIOS に指示する、とい うことが可能です。例えば私がよくやることは Linux を hdc に接続した ディスク(IDE のセカンダリーコントローラーのマスター)にインストールして、 そのディスクを別なコンピュータのプライマリー IDE コントローラに接続し、 単独で動作するシステムとして起動させることです。インストール用フロッピー を小さなパーティションにコピーしたので、他の作業をするために自分のシステ ムを使いながら、chroot を仮想コンソールで実行してhdc への インストール作業を実行できます。

私が Lilo をインストールするために使用している lilo.conf ファイルはこのようになっています。

# このファイルを使うには /dev/hdc が存在するシステム上である必要があります。
boot = /dev/hdc   # hdc の MBR を上書き
disk = /dev/hdc   # hdc がどのように見えるかを指定
   bios = 0x80    # BIOS はこのドライブを 1 番目のドライブとして扱う
delay = 0
vga = 0

image = /boot/vmlinux  # これ(カーネルイメージ)は /dev/hdc1 上にありますが
  root = /dev/hda1     # ブート時に hda1 が root デバイスになります
  label = Linux
  read-only

この設定ファイルは /dev/hdc1 の Lilo コマンドで読みこむ必要があ ります。Lilo は、ブートセクタ (/dev/hdc) に書き込まれる Lilo の マップ /boot 内のファイルを参照しなければなりません。それらのファ イルはこのディスクがスタンドアローンシステムとしてブートされた時には hda にあるものとしてアクセスされます。

私はこの設定ファイルを /mnt/etc/lilo.conf.hdc という名前にして います。/mnt は hdc がインストール中にマウントされている場所で す。Lilo をインストールする場合には ``cd /mnt; chroot . sbin/lilo -C /etc/lilo.conf.hdc'' を実行します。これが魔法のように見えるのであれ ば、chroot の man page を参照してください。

lilo.conf の ``bios='' パラメーターは Lilo に、BIOS がデバイスとして何を使うのかを指定します。BIOS コールはフロッピーディス クとハードディスクを番号で識別します。0x00 と 0x01 はフロッピードライブ を、0x80 以降の番号(古い BIOS では2つのディスクのみアクセス可能)はハー ドディスクとして認識します。つまり先のサンプルの ``bios = 0x80'' は、``/dev/hdc'' には ``BIOS コールの 0x80 を使用す る''ということです。

この Lilo パラメーターは他の状況でも便利です。例えば BIOS が IDE ディス クの代わりに SCSI ディスクからブートできる場合です。IDE と SCSI デバイス の両方がある場合、Lilo は 0x80 がどちらを指しているかわからない(ユーザー が BIOS 設定メニュー内でどちらからブートするかを選択できるため)し、 Linux が動作している間には BIOS にアクセスする事はできません。

デフォルトでは Lilo は、BIOS によって IDE ドライブが始めにマップされると 仮定していますが、/etc/lilo.conf に次のような指定をすることによっ て変更することができます。

disk = /dev/sda
  bios = 0x80


次のページ 前のページ 目次へ