Managing Multiple Operating Systems HOWTO Robert W. Schultz v0.4, 17 Feb 2000 日本語訳 千旦裕司 v0.4j, 1 Dec 2000 この文書では、一台の内蔵ディスクに基本となるオペレーティングシステム を収納し確実に保護した上で、複数のリムーバブルディスクを使用して他の いろいろなオペレーティングシステムを導入・運用していくための手順を解 説します。この方法はとても拡張性に富み、それによってもとのオペ レーティングシステムの充分な保護とディスク周りの安定化が図れます。 はじめに Copyright

Copyright (c) 2000 by Robert W. Schultz.

この文書の複製もしくは (販売・譲渡による) 配布は、あらゆるフォーマットで 自由に行っていただいて結構です。訂正ならびにコメントについては、文書管理者 までご連絡ください。二次的著作物の作成と配布については、以下の条件を満たす限 り許可します。 作成した二次的著作物は、( sgmlなどの最適な形式で) インターネット上の LDP (Linux Documentation Project) かそれに類する団体まで送付 すること。LDP 以外に送付するときは、どこで入手可能かを LDP に知らせること。 二次的著作物にはこの文書と同一のライセンスか GPL を付与すること。 著作権表示があること、ならびにライセンスに関しては少くともそれを参照 できる場所を明記すること。 原著作物の著者及びその主要な貢献者の氏名を明示すること。 新しいバージョンについて

この文書の新しいバージョンは、LDP のミラーサイトで閲覧および ダウンロードが可能です。ミラーサイトの一覧は以下にあります。 .

多種のフォーマットで入手が可能ですが、最新版の日付だけが知りたいの であれば以下のサイトを見てこの文書のバージョンと比べてください : v0.4, 17 February 2000 フィードバック

質問・コメント・提案は、こちらに願います。 < rwschul@smart.net> (Robert W.Schultz) わたしは、この文書に直接関わるような問題で困っている人を手助けした いと思っており、訂正・修正・改善などの提案は歓迎いたします。しかし ながら、自分のシステムが充分満足のいくものに仕上がってしまったので、 読者からの情報提供がない限りこの文書に意味のある改善が加えられるこ とはないでしょう。 目的とゴール

この文書は、一台のコンピュータ上で複数のオペレーティングシステムを 扱うためのひとつの方法論の解説を目的にしています。そして、Linux と LILO のインストールにある程度慣れている Linux ユーザを対象にしています。と はいえ、ひどく複雑なものは何もありません。ただ、オペレーティングシス テムをいくつかインストールするわけですから、それには比較的時間がかか るかもしれません。

他の方法論と違う点は、複数のオペレーティングシステムをひとつのブー トディスク上に収める必要がないということです。そのかわり、ひとつの基本 となるオペレーティングシステムが入った内蔵の固定ハードディスクと、各 々がひとつ以上のオペレーティングシステムを含んだ複数のリムーバルディス クとを使用します。もしあなたがどうしてもたったひとつのディスク上にふたつ、 3 つ、あるいは 4 つのオペレーティングシステムを置く必要があり、それら を共存させようとしているのなら、この文書はあなた向けではありません。 具体的なゴール

基本となるオペレーティングシステムの入るディスクは、一旦取り 付けてインストールをすませればほとんど変更されないこと。これには、 ディスクのパーテイションを切り直したり、部分的修正を加えたりする必 要のないことも含まれる。

一度か二度メニューから選択するだけで、起動時に複数の異なるオペレ ーティングシステムを簡単に切り替えられること。

インストールが終了すれば、BIOS,LILO その他の設定を変更しなく ても任意の OS にアクセスできること。

その時々の必要に応じてオペレーティングシステムを簡単に追 加・削除できること。

将来オペレーティングシステムの数が増えたり、新バージョンを 追加したりしても安価で拡張性に富んだ運用ができること。

わたしは、これらの要求のうち最初の三点についてはかなり成功したと 思っています。最後のふたつについては、読者の判断に委ねます。 バックグラウンド

Linux はますますユーザフレンドリーになり広く受け入れられるよう にもなってきていますが、われわれの大部分は、今でも他のオペレーテ ィングシステムを使わざるを得ません。わたしは時間にして 75% くらい は Linux を使っていますが、それでも満足できるだけの代替品が Linux 上にない少数のアプリケーションについては、いまも Win9x を使用せざ るを得ません。私の妻は職場で MS-Office を使い、帰ってからもそれを 使いたがります。他の人は、単なる趣味やトレーニング、あるいは職場 で取り残されないために他の OS を使おうとします。

わたしにとって新しい OS は、他の人にとっての新発売のゲームのようなも のです。生産的に利用することなど実はまったくないのですが、インストール して操作方法を覚えること自体が、Quake や SimCity と同様にやりがい 充分で楽しいのです。わたしはコンピュータサイエンティストなので、そのこ とが、進歩するテクノロジーに歩調を合わせ、仕事上膨大な問題を解決 する手助けにもなっています。いずれにせよ、Linux 初心者、コン ピュータのプロ、ただ単に別の OS へ乗換えようとしている人々の誰 にとっても、複数のオペレーティングシステムを使うことは例外的と いうよりもごく普通のことであると思います。 動作環境

BIOS 自動的にディスクドライブのジオメトリを認識し起動デバイスの順序を 変更できるものであれば、どんな BIOS でもかまいません。わたしがシ ステムの構築に成功したのは、PhoenixBIOS4.0 と AMI Plug and Play Flash BIOS の両方です。 ディスクLinux 用の固定された内蔵ディスクが一台(ファーストディスク)。 何本かのドライブをともなったリムーバブルディスク装置が一台(セカンド ディスク)。

この文書はディスク関係の記述が多いので、これからは通常、「ファース トディスク」「セカンドディスク」という用語を使います。ファーストディ スクとは一般にブートディスクと言われるもので、マシンに電源をいれ た時最初にアクセスされるものです。MBR ( Master Boot Record )に LILO ( Linux Loader )がインストールされていて、単一のオペレーティング システム、具体的には Linux 用に割り当てられます。セカンドディスクは ひとつ以上のオペレーティングシステムを含むリムーバブルディスクであり、 MBR やその他のブートレコードにブートローダを含ことがありますが、そうでない こともあります。

ハードウェアやファームウェアに関してそれ以外に必要な動作環境はあ りません。ただ、OS ごとに個別の動作環境が指定されているかもしれません。 例えば Solaris7 の場合、古い 90MHz のマシンではインストールならできるかも しれませんが、快適には動かないでしょう!しかし、ここでの設定と方法論は、 CPU 速度やインストールされた周辺機器に関わりなく同じように有効 なはずです。 オペレーティングシステム わたしがこの企画をテストしたのは、Linux ( Redhat と Suse), Solaris7, BeOS, Win98, それと MS-DOS6.22 です。 Win95 や OS/2、FreeBSD に関しても問題はないと思います。WindowsNT と 2000 についてはよく知らないので、こうした設定をするとどうなる のかは分かりません。

ブートローダ ファーストディスク上で LILO を、セカンドディスク上で BeOS の bootman を使いました。ファーストディスクで LILO を使ったの は、ブートパーテイションとしてセカンドディスク上の MBR を選択できる 唯一のブートローダであったからです。セカンドディスク上のブートロー ダは、比較的しっかりしたものであればなんでもかまいません。 使い方(シナリオ)

電源をいれる前にリムーバブルディスクを挿入します。それには、あるオペレーティン グシステムがあらかじめ入っています。マシンの電源がはいると LILO プロンプトが現 れ、Tab キーを押すと、"Linux" と "Disk2" というオプションが 表示されます。"Linux" はデフォルトで、何もしなければ自動的にそれが起動 します。"Disk2" を選択すると、セカンドディスクに入っている単一の OS が 立ち上がるか、ディスクに複数の OS が入っているときはふたつ目のブートメニューが 表示されます。電源を落としセカンドディスクを別の物と差し替えて再起動すると、同 じく最初の "Linux" と "Disk2" のメニューが表示されますが、 "Disk2" を選んだ場合、今度は差し替えたディスクに応じた新しいメニューが 表示されます。一旦インストールしてしまえば、ファーストディスクの LILO の設定を 変える必要はなくなりますし、セカンドディスクからブートさせるのに BIOS の設定を 変更することもなく、好みの OS を起動して走らせるために、多くとも二回のメニュー で選択で済みます。 インストール

インストールは三段階に分かれます。第一は、基本となる OS を所定のドライブ上に構 築すること。第二は、どれでも好きな OS をセカンドディスク上に構築すること。最後 に、両方のディスクが使えるように BIOS と LILO を設定し直すこと。 基本となるオペレーティングシステムのインストール

操作の基本となる OS のインストールはきわめて単純です。Linux 用の単一のドライブ にシステム設定をするときのようにやればいいのです。インストールの詳細について は、お使いのディストリビューションに付属のドキュメントか、 を参照してください。 (訳注:日本語訳 )

とはいえ、もともとが複数のディスクシステムでのインストールですから、インストー ルの過程でインストールルーチンが単一のディスクだと思い込むようなトリックを使う 必要があり、そのためにいくつかの段階を踏みます。

まず最初に、リムーバブルディスク装置のハードドライブを抜きます。そして、BIOS 画 面で、残ったドライブがフロッピーに続く二番目のブートドライブとして認識されてい ることを確認してください。オペレーティングシステムのインストールプログラムは一 台のディスクだけ、つまりあなたがこれからインストールするディスクだけを見るべき だからです。そうすれば、どこにインストールするかという問題自体が生じませんし、 単一ディスクのシステム構築に必要なすべてのものがインストールされます。

インストールプログラムからの質問には、オペレーティングシステムのためにディスク 全体を使うと答えてください。わたしは、Redhat のデフォルトのパーテイション設定の ままにして、LILO にも手を加えずに MBR にインストールしました。

インストールが終了したら、シャットダウンとリブートでシステムがうまく動くか確か めてください。この段階で、直接 Linux が起動する完全なマシンになっているはずで す。 その他のオペレーティングシステムのインストール

ここまでで完全に稼働するシステムがひとつできたので、他のオペレーティングシステ ムをセカンドディスク上に構築する作業に進みましょう。

セカンドディスクにインストールするオペレーティングシステムをひとつかふたつ選ん でください。わたしは特別な理由はないのですが、最初のテストケースとして Windows98 と BeOS を選択しました。そして、8GB のドライブを 4GB のプライマリ パーテイションに二分割して、最初のパーテイションに Windows98 を、ふたつ目に BeOS をインストールしました。

このインストールでは、前回やったのと同じことをしてください。BIOS でファースト ディスクを使用不可にして、インストーラからは見ることすらできないようにします。 これはとても大切なことです。ファーストディスクを物理的に取り外すかコネクターを 抜けるなら、そうしてください! そうすれば、あなたが何らかのミスをしても基本シス テムは安全ですし、二度目のインストール中に、見つけたすべてのディスクを乗っ取ろう とする法外に欲の深いオペレーティングシステムの餌食にならずにすむでしょう。 もし将来別のリムーバブルディスクを作ろうと決めたときにも、この手順を繰り返すこ とを忘れないでください。

それがすんだら、単一ドライブのシステムにインストールする時のように好きなオペ レーティングシステムをインストールしてください。

もしセカンドディスクにひとつしかオペレーティングシステムをインス トールしないのなら、インストールディスクを挿入してそのまま作業を進 めてください。Windows95 や 98、あるいはふたつ目の Linux も含めた他 のオペレーティングシステムであっても、この方法でなんの問題もありま せん。Windows9x には MBR を上書きさせてあげましょう。Linux のインス トールなら、LILO の置き場所は MBR にしてください。

わたしはセカンドディスクにふたつのオペレーティングシステムをイ ンストールしようと決めたおかげで、複数のブートローダを使うとどうい うことが起こるのか確かめることができました。

わたしは最初に Windows98 をインストールしました。なぜなら、 Windows98 は自動的に MBR を上書きするようになっていて、わたしが 結局そこにどんなブートローダのコードを置こうと全部上書きしてし まうからです。次にわたしはセカンドパーテイションに BeOS をイン ストールし、BeOS のブートローダである bootman を走らせました。 それを使ってセカンドディスクのブートメニューを作成し、意図的に Windows98 の作った MBR を上書きしたのです。

Bootman が絶対必要だったわけではなく、MBR に置けるブートローダ なら何でもよかったのですが、手近にそれがあったのとしかも良くで きていることから使用しました。

何度か再起動し、単一のディスクシステムとしてすべてうまく動くこと を確かめてください。わたしはそれぞれの OS のインストール終了時 に再起動して、各々がうまく動くか、またブートローダのメニューが機 能するか確かめました。 最後に BIOS と LILO の設定

次に、BIOS を再設定してファーストディスクをブートディスクとして認識し直すように します(先ほどケーブルを物理的に抜いていた場合は、再接続してください)。セカン ドディスクの方も認識させたままにしてください。設定方法は、使っているシステムに よって異なり、使用する BIOS, 及びディスク構成が SCSI/IDE か IDE/IDE のいずれで あるかにも依存します。SCSI ディスクとそのリムーバブルフレームは IDE のものに比 べてかなり値段が高いので、わたしは、SCSI/SCSI 構成については試していません。 基本となる OS についてはパフォーマンスが欲しいですが、他方に関しては安物でかま わないからです。

セカンドディスクのディスクタイプを "Auto" か "Automatic" に 設定するのを忘れないでください。そうすることで、起動の際 BIOS が動的にディスク タイプを決定するようにするのです。わたしはセカンドディスクとして、年代物の 512MB ディスク、4GB, 8GB,それに 100MB の IDE ZIP ディスクを使ってうまくいきまし た。BIOS はすべてを自動で認識しました。

システムを再起動し、Linux に戻りましょう。この時点で少なくともふたつのオペレー ティングシステムがインストールされているのですが、それにもかかわらずこのマシン の LILO はもとの Linux のことしか知らないので、自動的にそれを起動しに行きます。 ブートプロセスを注意して見ていてください。そうすると、ディスクをひとつ自動認 識したというメッセージが出てくるはずです。起動が終了したら、Linux がセカンド ディスクを認識したかどうか dmesg でチェックしてください。

以上が済んだら、ファーストディスクにある LILO の設定を変更 して、LILO にもセカンドディスクを認識させなければなりません。 以下は二種類の lilo.conf ファイルです。ひとつは SCSI/IDE システ ム用で、もうひとつは IDE/IDE 用です。どちらのシステムも一長一短 といったところでしょうか... # 以下の lilo.conf ファイルは、内蔵 SCSI ディスクと IDE の primary master に # 接続されたリムーバブルディスクのためのものです。 disk = /dev/sda # 左の四行は、SCSI ディスクをプライマリディスク bios = 0x80 # としてマッピングし直すために必要です。 disk = /dev/hda # BIOS で SCSI ディスクが起動ディスクになってい bios = 0x81 # たとしても設定してください。 # この設定は、BIOS によって異なるようです。 # (訳注: bios = 0x?? は、ディスク構成と BIOS に # 依存します。) # 上記の設定をしないと、LILO から以下のメッセージをもらうでしょう: # # LILO version 21, Copyright 1992-1998 Werner Almesberger # # ading boot sector from /dev/sda # Warning: /dev/sda is not on the first disk # そして LILO は、LI でハングするか、01 を画面いっぱいに永遠と出力し続け # るでしょう。 boot=/dev/sda map=/boot/map install=/boot/boot.b prompt timeout=50 image=/boot/vmlinuz-2.2.12-20smp label=Linux root=/dev/sda1 initrd=/boot/initrd-2.2.12-20smp.img read-only other = /dev/hda # other = /dev/hda というのが鍵です。特定のパーテイションに LILO を # リダイレクトする代りに、セカンドディスクの MBR にリダイレクト # しています。 # そうすれば、LILO はセカンドディスクに関して何も知る必要がなくなります。 # セカンドディスク上のディスクの種類に関係なく LILO がいつも同じ場所を # アクセスするので、セカンドディスクの交換が可能になります。 # こんなことができるブートローダは、わたしの知る限り LILO だけです。 label = Disk2 map-drive = 0x80 to = 0x81 map-drive = 0x81 to = 0x80 # map-drive という行が必要なのは、セカンドディスクに自分が本当に # ブートディスクであることを自覚させるためです。 # 以下の lilo.conf ファイルは、ふたつの IDE ディスクを持ったシステム # のためのものです。 # どちらも master で、/dev/hda は primary 、/dev/hdc は secondary で # 接続されています。 # /dev/hdb には IDE の primary/slave 接続で、CD-ROM を繋いでいます。 # disk = /dev/hda # 左の行は、IDE/IDE のインストールでは不要です。 # bios = 0x80 # どういう順序で接続されているか、BIOS はすでに # disk = /dev/hdc # 知っているからです。 # bios = 0x81 boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 image=/boot/vmlinuz-2.2.5-15 label=linux root=/dev/hda4 read-only other = /dev/hdc # other = /dev/hdc というのがここでも鍵を握っています。この設定に # よって、LILO はセカンドディスクの MBR にリダイレクトされます。 # そこにどんなプログラムがあってもそれに処理を引き継がせるわけです。 label = Disk2 map-drive = 0x80 to = 0x81 map-drive = 0x81 to = 0x80

上記の /dev, boot, map, image といった設定項目はシステム固有のもので、 おそらくあなたの設定とわたしのとでは異なるでしょう。あなたの Linux の最初の /etc/lilo.conf ファイルを見てください。その設定値を見れば、ご自分の システムを知る正確な指針が得られるはずです。わたしは、Linux に関する項目をその 最初のインストール時に生成された lilo.conf ファイルから新しい lilo.conf ファイルに直接コピーしました。こうしておけば万一、 " Disk2" の設定に完全に失敗しても、"Linux" を起動して lilo.conf を修正することができます。

最後に、lilo -vvv と打って、LILO があなたの設定に同意するか 確かめてください。 コストと雑記 コスト

わたしは、リムーバブルドライブ用のディスク装置(Frame)ひとつとカートリッジ (drawer)一本で、 20 ドルかかりました。"SNT MOBILE RACK" という製品です。それ以 外のディスクについてコストはかかっていません。アップグレードしたりしているうち に、古かったり容量が小さかったりした IDE ドライブがいくつか手元にあったからで す。購入しなければならないとしても、2GB の IDE ドライブなら安価です。 雑記

リムーバブルドライブをマスターにするかスレイブにするか決めたら、ケースに設置し てしまう前にジャンパピンの設定が正しいか確認すること。これを忘れると、起動時に 生じる問題がジャンパの設定ミスにあることを長時間かけて調べることになる。

OS のインストールルーチンには、インストール先のドライブしか見せないこと。 Redhat は、IDE ドライブが見えると、SCSI ドライブの MBR に LILO をインストール させてくれなかった。その結果、わたしは内蔵 SCSI ドライブにインストールするため に、IDE ドライブを物理的に外すはめになった。IDE にインストールするには、BIOS 上で SCSI サポートを無効にせざるを得なかった。

ある OS のインストールルーチンは、全ドライブのパーテイションを切り直し、全 データを上書きすると語るかもしれない。その言葉を信じること。

IDE ケーブルは逆にも簡単に差せる。

わたしがテストしたのは、IDE の master/master だけである。 master/slave でどうなるかは知らない。

リムーバブルディスクのフレームを組み込むには、コンピュータのケースを開ける必要 がある。それが苦手なら、友人に助けを求めなければならない。

リムーバブルディスクのディスクタイプを BIOS 上で特定したとしても、 違うタイプのディスクに差し替えるまでなら、きわめて順調に動く。そして その直後に、エラーか警告が出る。システムが起動しなくなることもある。

あらかじめ、すべての計画を練っておくこと。

BIOS 設定のわずかな変更で、セカンドディスクがブートディスクになる。すなわち、 緊急及び復旧用のディスクとして完全な OS が手に入るわけである。 日本語訳について

翻訳 千旦 裕司 校正 早川 仁 山下 義之 武井 伸光 森本 淳 川嶋 勤 誤訳、誤字・脱字等がありましたら、JF メーリングリスト <JF@linux.or.jp> か、訳者 <ysenda@pop01.odn.ne.jp> までご連絡ください。