[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[fol] Re: boot manager (Re: LILO でWindows95を優先的に立ちあげる方法)


佐野@浜松です。

In <y5ar982wjdp.fsf _at_ kgh12351.nifty.ne.jp>,
  on "06 Aug 2000 23:32:02 +0900', I wrote:

> >  また私は「パーティションに依存」していることもそれほど問題では
> > ないと思ってます。市販のブートローダは殆どそうですね。
> > 
> > 「パーティションに依存」していても、そのファイルシステムに則って
> > アクセスしているなら、少なくともデータが破壊されたり、書き換え
> > られたりしない限りは、問題が起こらないはずです。
> > 
> >  ファイルのちょっとした移動(勿論別のディレクトリとかではだめ)
> > やデフラグ、また構成変更のないパーティションの移動にも耐えられる
> > はずです。
> > 
> >  勿論パーティションに依存しないに越したことはないですが。

> ただ、LILO の場合には 2nd boot loader や map file が LILO を実行した
>  Linux システムの /boot ディレクトリ内に存在している (標準設定の場合)
> ということを知らずに、「Linux を削除したら PC が起動しなくなった」と
> 助けを求める人を過去にけっこう見た覚えがあるので、やはりパーティション
> 内のファイルにはできるだけ依存しないほうが安心な気もします。

ちょっと補足。

個人的には「メイン」「開発用」「トラブル修復用」のそれぞれの Linux システム
を起動時に切り換えるのがブートマネージャを利用する最大の目的なので、
「開発用」システムのカーネルを変更した際はそのまま (再起動してシステムを
切り換えることなく) LILO の更新を実行したいし、またたとえ「開発用」の
システムのファイルシステムが壊れてマップファイルなどの中身が壊れたとしても
他の「メイン」「修復用」などのシステムの起動に影響が無いようにしたい、という
要望があって、特定のパーティション内のファイルに依存する構成になっているのは
あまり嬉しくないのです。

安定している「メイン」や「修復用」のシステムパーティションで
すべてのシステムから選択して起動できるように LILO を設定することは
もちろん可能ですが、「開発用」のシステムでカーネルを変更して再起動
して動作を確認する際など、いちいち別のシステムを起動して LILO を設定
するとなると再起動の手間が増えるので、開発用のシステムのカーネルは
開発用のシステムにインストールした LILO で起動させたいし、そうかと
いって開発用のシステムにインストールした LILO だけにすべてのシステムの
起動をまかせてしまうのはリスクが高い、という点から、MBR にはパーティション
に依存しないブートセレクタをインストールして、それぞれのパーティションに
個別のシステムに含まれるカーネルを選択して起動するためのブートローダ (LILO)
を入れるという構成に現在はなっています。

 # メインにも開発用にも 2.0 系カーネルと 2.2 系カーネルの両方を
 # 用意してあるので、MBR のセレクタでパーティションを選択してから
 # LILO のメニューでカーネルを選択するという手順にしてます。

> > # これは一方でLILOの利点でもある。パーティションテーブルも
> > #ファイルシステムも何も見ず、ただひたすら自分の内部で持っている
> > #絶対番地情報だけを信じてアクセスするので、論理領域であろうが、
> > #アクティブであろうかなかろうが、全然お構いなしに起動できる。
> 
> カーネルのロードだけなら partition table から該当するパーティションを
> 削除してしまってもロード可能ですね。

これは、パーティションテーブルから特定のパーティションを削除しても
その時点ではパーティションの内容が上書きされることは無いために、
セクターアドレスによってロードする LILO のローダの動作には影響が無いので、
カーネルを起動するところまでは可能だが、起動されたカーネルが自分の root
partitiuon をパーティションテーブルから見つけようとして失敗するだろう、
ということを意図してました。ちょっと省略が多くて理解しにくいかなと
思ったので補足。

> > > -  LBA アクセスについては、LILO の場合同じ IPL で LBA/CHS の
> > >両方に対応することができない (インストーラのオプションで指定) が、
> > 
> >  LILOはコンパチじゃないんですか。
> 
> これはちょっと情報が古かったかも。以前テストされていた lilo 22 dev0 
> のコードでは LBA アクセスを指定された場合 CHS ではアクセスできなかった
> のですが、21.3 以降のほうでは
> 
>     - checks if BIOS supports packet calls (int 0x13, AH=0x42), and uses
>       these calls if 'lba32' was specified.  Otherwise, it uses
>       the C:H:S addressing scheme of the original IBM-PC BIOS.
> 
> と書いてあるので両方使えるようになっているかもしれません。
> あとでまた 21 系の最新のコードを調べてみたいと思います。

すみません。やはり情報が古かったようです。21.4.3 のコードを見てみましたが
以前見ていた 22 系の開発版での実装とは相当違っていました。

 read.S に関連するコード (lba_read) がありますが、no_lba: へジャンプする
部分があって、BIOS に聞いて LBA がサポートされていない場合は C/H/S で
アクセスするようになっているみたいでした。

ということで、

> >  因みにMBMはコンパチです。

 LILO も 21.3 以降のほうの LBA32 サポートは LBA/CHS の両方とも
利用可能なようでした。

ところで紹介されていた

  http://www.din.or.jp/~t-takako/faq/dosv/multi_boot/multi_boot_linux.html

を見てきたのですが、LILO で LBA アクセスを利用するには 2.2 系カーネルが
必須という記述があったみたいです。(もしかしたら 2.0 系カーネル以降、の
見間違いだったのか ?)

手元で確認した範囲では 2.0.38 カーネルと LILO 21.4.3 で over 8GB の位置に
あるカーネル (その他必要なファイル) をロードして起動できました。

 (LILO の前段階として extIPL を使ってますが、仮に MBR に LILO の
  1 次ローダをインストールしたとしても同じ結果になるはず)

> それはいいですね。そのうち MBM についても調べてみたいと思います。

ちょっと見てみたのですが、ソースコードは公開されていないのですね。
 objdump を使えば mbm.com のコードを調べることはできますが。

あとブートコードのインストールが Linux 上からできないのも個人的には
不便です。

それから論理領域からの起動ができないのも個人的には不満ですね。
自分の使い方だと論理領域に複数の Linux システムを入れて切り換える
ということがあるので。(そのために extIPL の作者の方にお願いして
特にこの機能を入れてもらったという経緯もあったり)

一般的には「Windows と Linux の選択起動」を目的としている方が
多いでしょうから、その場合には MBM のほうが適しているのでしょう。

が、私の用途にはやはり extIPL のほうがより適しているようです。
目的が違えば評価も異なる、という当然の話でした。

-- 
     # (わたしのおうちは浜松市、「夜のお菓子」で有名さ。)
    <kgh12351 _at_ nifty.ne.jp> : Taketoshi Sano (佐野 武俊)

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
References: