Next Previous Contents

                        LILO Mini-HOWTO

原文:LILO Mini-HOWTO
      Cameron Spitzer, cls@truffula.sj.ca.us

翻訳:  中谷千絵(jeanne@mbox.kyoto-inet.or.jp)
1996/08/27

  この文書では、典型的な LILO のインストール方法をいくつか説明していま
す。LILO ユーザーズガイドの補足を意図しています。たとえあなたのセット
アップが私のものと異なっているとしても実例は役立つと思います。この文書
があなたをトラブルから救うことを願っています。

Cameron Spitzer, cls@truffula.sj.ca.us

例 1:
  私は2つの IDE ドライブと SCSI ドライブを1つ持っています。SCSI ドラ
イブは BIOS から見えません。Linux のローダである LILO は BIOS を呼出
しますから、BIOS が認識しているドライブしか見えません。私の使っている 
AMI BIOS は賢くないので、 A ドライブ、もしくは C ドライブからしか起動
しません。私のルートファイルシステムは SCSI ドライブ上の1つ目のパーティ
ションにあります。

解決方法 :
  最初の IDE 上の Linux パーティションに、カーネル、 マップファイル、
チェインローダを置きます。ルートパーティションにカーネルを置く必要がな
いことに注意してください。

  1つ目の IDE の2つ目のパーティション(/dev/hda2)は、 /u2 にマウント
されています。これは私が使用した /etc/lilo.conf ファイルです。

# 1つ目の IDE ディスクに Master Boot Record (以下 MBR とします)として
#  LILO をインストールします。
boot = /dev/hda
# /sbin/lilo (インストーラ)は MBR に次のファイルから 
# LILO ブートレコードをコピーします。 
install = /u2/etc/lilo/boot.b
#  私は詳しいブートメニューを作りました。 LILO はここでそれを見つけます。
message = /u2/etc/lilo/message
# インストーラは次のファイルを組み上げます。
#  そのファイルがカーネルのブロックがある場所をブートローダに知らせます。
map = /u2/etc/lilo/map
compact
prompt
#  10秒待ちます。それからデフォルトでカーネル 1.2.1 が起動します。
timeout = 100
#  このようにすることで、カーネルは BIOS が見ることができる場所に置かれます。
#      cp -p /usr/src/linux/arch/i386/boot/zImage /u2/z1.2.1
image = /u2/z1.2.1
        label = 1.2.1
#  LILO はルートとして1つ目の SCSI パーティションをマウントするように
#  カーネルに伝えます。BIOS はそれを見ることができる必要はありません。
        root = /dev/sda1
#  このパーティションがチェックされ、 
#  /etc/rc.d/rc.S によって再マウントされます。
        read-only
#  同じカーネルに、デフォルトのルートのかわりに、
#  別のパーティションをルートとしてマウントするように伝えます。
#  私は /u2 に非常用のルートを置いています。
image = /u2/z1.2.1
        label = 1.2.1-hda2
        root = /dev/hda2
        read-only
#  私は動かないカーネルを構築した場合のために
#  古い版の slackware カーネルを保存しました。
#  実際に私はこれが必要になったこともあります。
image = /u2/z1.0.9
        label = 1.0.9
        root = /dev/sda1
        read-only
#  私の DR-DOS 6 パーティション
other = /dev/hda1
        loader=/u2/etc/lilo/chain.b
        label = dos
        alias = m

例2:
  私の事務所にあるシステムでは 1GB の IDE ドライブを使っています。BIOS 
は IDE の最初の 504MB [訳注 *] しか見ることができません(ここで MB は 2 
の 10乗(1024) バイトの意味であって、10 の 6乗(1,000,000) バイトの意味
ではありません)。そこで私は /dev/hda1 350M パーティションに MS-DOS を
置き、Linux のルートは /dev/hda2 の120MB のパーティションに置いていま
す。

[訳注 *] 504MB というのは、古いBIOS の規格での制限で、BIOS と IDE ドラ
イブ(16ヘッド、63セクタ、セクタサイズ 512 バイトの 1024 シリンダ)の組
合せによるもの。

  新品のドライブには MS-DOS を正常にインストールすることができませんで
した。Novell DOS7 [訳注**] でも同じ問題が起こりました。私には幸運だっ
たのですが、私が購入した IBM の Options ブランドのハードディスクのパッ
ケージには、Ontrack のフロッピーが入っていませんでした。そのドライブは 
OnTrack の Disk Manager [訳注***] という製品と一緒に送られてくるはずで
した。もしあなたが MSDOS しか持っていないなら、Ontrack の Disk Manager 
を使わざるを得ないと思います。

[訳注**] Novell 社の製品
[訳注***] Ontrack Computer Systems 製のハードディスクユーティリティ。 
このmini-HOWTO が書かれた時点では
「Ontrack Computer Systems, Inc.」でしたが、
1996年に改名して「ONTRACK Data International, Inc.」
詳細は http://sparky.ontrack.com/ をご参照ください。

  そこで私は Linux の fdisk でパーティションテーブルを作成しました。
MS-DOS 6.2 は /dev/hda1 にインストールできませんでした。次のように言わ
れてしまったのです。

   MS-DOS のこの版は新規インストールのためのものです。
   あなたのコンピュータにはすでに MS-DOS が入っています。
             [これは間違いで、ドライブは新品でした。]
   あなたはディーラーからアップグレード版を得なければなりません。

  なんてひどい話でしょうか。それで私は再度 Linux の fdisk を使って、テー
ブルから1つ目のパーティションを削除しました。これによって MSDOS は満
足し、次の作業へ進めるようになりました。私は、今削除したのと全く同じパー
ティション 1 を作成し、そのパーティションに MSDOS をインストールする
ことができました。MS-DOS 6.2 はドライブに自分自身の MBR を書きましたが
起動できませんでした。

  幸運にも私は Slackware kernel の入ったフロッピー( Slackware インストー
ルプログラムのセットアップで作成した)を持っていました。Linux を起動し、
そして MS-DOS の壊れた MBR の上に LILO を上書きしました。これが動いて
います。これは私が使用した /etc/lilo.conf ファイルです。
 
boot = /dev/hda
map = /lilo-map
delay = 100
ramdisk = 0             #  ramdisk から Slackware kernel に移る
timeout = 100
prompt
disk = /dev/hda         #  BIOS は最初の 500MB のみを見る 
   bios=0x80            #  最初の IDE の特性 
   sectors = 63         #  あなたのドライブ情報からこれらの数字を得ます
   heads = 16
   cylinders = 2100
image = /vmlinuz
  append = "hd=2100,16,63"  # これは不要かもしれない
  root = /dev/hda2
  label = linux
  read-only
  vga = extended
other = /dev/hda1
  label = msdos
  table = /dev/hda
  loader = /boot/chain.b

## end

  私はこれらのシステムをインストールした後、zImage、boot.b、 map、 
chain.b、 message ファイルを含むパーティションが msdos ファイルシステ
ムを利用できることを確かめました(ただし stackered や doublespaced など
で圧縮されていなければの話ですが)。それで、/dev/hda1 500MB に DOS パー
ティションを作成することができました。

  さらに OnTrack は、 HDD の先頭ではなく先頭から数 10 バイト後から始ま
るところにパーティション情報を書き込んでしまうことがわかりました。また、
この問題に対応するように、 Linux の IDE ドライバを修正することは可能で
あることがわかりました。しかし、Slackware に付属するコンパイル済みのカー
ネルでインストールを行うことは不可能だったのです。結局、IBM は OnTrack 
ディスクを送ってきました。私は OnTrack の技術サポートに連絡しました。
彼らは Linux は BIOS を使わないので壊れているのだと私に言いました。私
はそのディスクを使うのをやめました。

例 3:
  次に、私は事務所のシステムに Windows-95 をインストールしました。
Windows-95 は私の快適な LILO MBR を壊してしまいましたが、Linux パーティ
ションだけを残しました。カーネルをフロッピーからロードすると時間がかか
るので、私は LILO をセットアップしたフロッピーを作りました。それは IDE 
からカーネルを起動することができるものです。

以下の手順で lilo フロッピーを作成しました。
  fdformat /dev/fd0H1440     #  新規ディスクにトラックを置く、
  mkfs /dev/fd0 1440         #  minix タイプのファイルシステムを作成
  mkdir /3                   #  マウントするディレクトリを作る
  mount /dev/fd0 /3
  cp -p /boot/chain.b /3     #  /3 に chain loader をコピーする
  lilo -C /etc/lilo.flop     #  ディスクに LILO と map をインストール
  umount /3
  ディスクはインストーラの起動時にマウントされていなければならないこと
に注意してください。そうしないと lilo は、その map ファイルを正しく書
くことができません。

このファイルが /etc/lilo.flop です。
前の例とほぼ同じです。

# ハードディスクからカーネルをブートできるフロッピーを作る。

boot = /dev/fd0
map = /3/lilo-map
delay = 100
ramdisk = 0     #  ramdisk から Slackware kernel に移る
timeout = 100
prompt
disk = /dev/hda        # 1 GB IDE, BIOS は最初の 500MB のみを見る
   bios=0x80
   sectors = 63
   heads = 16
   cylinders = 2100
image = /vmlinuz
  append = "hd=2100,16,63"
  root = /dev/hda2
  label = linux
  read-only
  vga = extended
other = /dev/hda1
  label = msdos
  table = /dev/hda
  loader = /3/chain.b

## end

  結局、私の事務所のシステムは MS-DOS 6.2 が必要でした。しかし、私は1
つ目のドライブをいじりたくありませんでした。私は SCSI コントローラとド
ライブを追加し、Linux の mkdosfs で、msdos のファイルシステムを作成し
ました。すると、Windows-95 は D ドライブとしてそれを認識します。しかし
もちろん MSDOS は D ドライブから起動しないでしょう。これは LILO を使っ
ているなら問題ではありません。私は例2での lilo.conf に次の記述を追加
しました。

  other = /dev/sda1
  label = d6.2
  table = /dev/sda
  loader = /boot/any_d.b

 C ドライブにある MSDOS-6.2 が起動し、Windows-95 は D ドライブにあると
みなします。

--------------------------------------
日本語訳は Linux-JF プロジェクトの
多くの方々にサポート頂きました。
感謝致します。
中谷千絵 jeanne@mbox.kyoto-inet.or.jp
1996/08/27
--------------------------------------

Next Previous Contents