Managing Multiple Operating Systems HOWTO Robert W. Schultz v0.4, 17 Feb 2000 日本語訳 千旦裕司 v0.4j, 1 Dec 2000 この文書では、一台の内蔵ディスクに基本となるオペレーティングシステムを 収納し確実に保護した上で、複数のリムーバブルディスクを使用して他のいろ いろなオペレーティングシステムを導入・運用していくための手順を解説しま す。この方法はとても拡張性に富み、それによってもとのオペレーティングシ ステムの充分な保護とディスク周りの安定化が図れます。 ______________________________________________________________________ 目次 1. はじめに 1.1 Copyright 1.2 新しいバージョンについて 1.3 フィードバック 2. 目的とゴール 2.1 具体的なゴール 3. バックグラウンド 4. 動作環境 5. 使い方(シナリオ) 6. インストール 6.1 基本となるオペレーティングシステムのインストール 6.2 その他のオペレーティングシステムのインストール 6.3 最後に BIOS と LILO の設定 7. コストと雑記 7.1 コスト 7.2 雑記 7.3 日本語訳について ______________________________________________________________________ 1. はじめに 1.1. Copyright Copyright (c) 2000 by Robert W. Schultz. この文書の複製もしくは (販売・譲渡による) 配布は、あらゆるフォーマット で自由に行っていただいて結構です。訂正ならびにコメントについては、文書 管理者までご連絡ください。二次的著作物の作成と配布については、以下の条 件を満たす限り許可します。 1. 作成した二次的著作物は、( sgmlなどの最適な形式で) インターネット上 の LDP (Linux Documentation Project) かそれに類する団体まで送付する こと。LDP 以外に送付するときは、どこで入手可能かを LDP に知らせるこ と。 2. 二次的著作物にはこの文書と同一のライセンスか GPL を付与すること。著 作権表示があること、ならびにライセンスに関しては少くともそれを参照 できる場所を明記すること。 3. 原著作物の著者及びその主要な貢献者の氏名を明示すること。 1.2. 新しいバージョンについて この文書の新しいバージョンは、LDP のミラーサイトで閲覧およびダウンロー ドが可能です。ミラーサイトの一覧は以下にあります。 . 多種のフォーマットで入手が可能ですが、最新版の日付だけが知りたいのであ れば以下のサイトを見てこの文書のバージョンと比べてください : v0.4, 17 February 2000 1.3. フィードバック 質問・コメント・提案は、こちらに願います。 < rwschul@smart.net> (Robert W.Schultz) わたしは、この文書に直接関わるような問題で困ってい る人を手助けしたいと思っており、訂正・修正・改善などの提案は歓迎いたし ます。しかしながら、自分のシステムが充分満足のいくものに仕上がってし まったので、読者からの情報提供がない限りこの文書に意味のある改善が加え られることはないでしょう。 2. 目的とゴール この文書は、一台のコンピュータ上で複数のオペレーティングシステムを扱う ためのひとつの方法論の解説を目的にしています。そして、Linux と LILO の インストールにある程度慣れている Linux ユーザを対象にしています。とは いえ、ひどく複雑なものは何もありません。ただ、オペレーティングシステム をいくつかインストールするわけですから、それには比較的時間がかかるかも しれません。 他の方法論と違う点は、複数のオペレーティングシステムをひとつのブート ディスク上に収める必要がないということです。そのかわり、ひとつの基本と なるオペレーティングシステムが入った内蔵の固定ハードディスクと、各々が ひとつ以上のオペレーティングシステムを含んだ複数のリムーバルディスクと を使用します。もしあなたがどうしてもたったひとつのディスク上にふたつ、 3 つ、あるいは 4 つのオペレーティングシステムを置く必要があり、それら を共存させようとしているのなら、この文書はあなた向けではありません。 2.1. 具体的なゴール o 基本となるオペレーティングシステムの入るディスクは、一旦取り付けて インストールをすませればほとんど変更されないこと。これには、ディス クのパーテイションを切り直したり、部分的修正を加えたりする必要のな いことも含まれる。 o 一度か二度メニューから選択するだけで、起動時に複数の異なるオペレー ティングシステムを簡単に切り替えられること。 o インストールが終了すれば、BIOS,LILO その他の設定を変更しなくても任 意の OS にアクセスできること。 o その時々の必要に応じてオペレーティングシステムを簡単に追加・削除で きること。 o 将来オペレーティングシステムの数が増えたり、新バージョンを追加した りしても安価で拡張性に富んだ運用ができること。 わたしは、これらの要求のうち最初の三点についてはかなり成功したと思って います。最後のふたつについては、読者の判断に委ねます。 3. バックグラウンド Linux はますますユーザフレンドリーになり広く受け入れられるようにもなっ てきていますが、われわれの大部分は、今でも他のオペレーティングシステム を使わざるを得ません。わたしは時間にして 75% くらいは Linux を使ってい ますが、それでも満足できるだけの代替品が Linux 上にない少数のアプリケ ーションについては、いまも Win9x を使用せざるを得ません。私の妻は職場 で MS-Office を使い、帰ってからもそれを使いたがります。他の人は、単な る趣味やトレーニング、あるいは職場で取り残されないために他の OS を使お うとします。 わたしにとって新しい OS は、他の人にとっての新発売のゲームのようなもの です。生産的に利用することなど実はまったくないのですが、インストールし て操作方法を覚えること自体が、Quake や SimCity と同様にやりがい充分で 楽しいのです。わたしはコンピュータサイエンティストなので、そのことが、 進歩するテクノロジーに歩調を合わせ、仕事上膨大な問題を解決する手助けに もなっています。いずれにせよ、Linux 初心者、コンピュータのプロ、ただ単 に別の OS へ乗換えようとしている人々の誰にとっても、複数のオペレーティ ングシステムを使うことは例外的というよりもごく普通のことであると思いま す。 4. 動作環境 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 を選択できる唯 一のブートローダであったからです。セカンドディスク上のブートロー ダは、比較的しっかりしたものであればなんでもかまいません。 5. 使い方(シナリオ) 電源をいれる前にリムーバブルディスクを挿入します。それには、あるオペレ ーティングシステムがあらかじめ入っています。マシンの電源がはいると LILO プロンプトが現れ、Tab キーを押すと、"Linux" と "Disk2" というオプ ションが表示されます。"Linux" はデフォルトで、何もしなければ自動的にそ れが起動します。"Disk2" を選択すると、セカンドディスクに入っている単一 の OS が立ち上がるか、ディスクに複数の OS が入っているときはふたつ目の ブートメニューが表示されます。電源を落としセカンドディスクを別の物と差 し替えて再起動すると、同じく最初の "Linux" と "Disk2" のメニューが表示 されますが、 "Disk2" を選んだ場合、今度は差し替えたディスクに応じた新 しいメニューが表示されます。一旦インストールしてしまえば、ファースト ディスクの LILO の設定を変える必要はなくなりますし、セカンドディスクか らブートさせるのに BIOS の設定を変更することもなく、好みの OS を起動し て走らせるために、多くとも二回のメニューで選択で済みます。 6. インストール インストールは三段階に分かれます。第一は、基本となる OS を所定のドライ ブ上に構築すること。第二は、どれでも好きな OS をセカンドディスク上に構 築すること。最後に、両方のディスクが使えるように BIOS と LILO を設定し 直すこと。 6.1. 基本となるオペレーティングシステムのインストール 操作の基本となる OS のインストールはきわめて単純です。Linux 用の単一の ドライブにシステム設定をするときのようにやればいいのです。インストール の詳細については、お使いのディストリビューションに付属のドキュメント か、 を参照し てください。 (訳注:日本語訳 ) とはいえ、もともとが複数のディスクシステムでのインストールですから、イ ンストールの過程でインストールルーチンが単一のディスクだと思い込むよう なトリックを使う必要があり、そのためにいくつかの段階を踏みます。 まず最初に、リムーバブルディスク装置のハードドライブを抜きます。そし て、BIOS 画面で、残ったドライブがフロッピーに続く二番目のブートドライ ブとして認識されていることを確認してください。オペレーティングシステム のインストールプログラムは一台のディスクだけ、つまりあなたがこれからイ ンストールするディスクだけを見るべきだからです。そうすれば、どこにイン ストールするかという問題自体が生じませんし、単一ディスクのシステム構築 に必要なすべてのものがインストールされます。 インストールプログラムからの質問には、オペレーティングシステムのために ディスク全体を使うと答えてください。わたしは、Redhat のデフォルトのパ ーテイション設定のままにして、LILO にも手を加えずに MBR にインストール しました。 インストールが終了したら、シャットダウンとリブートでシステムがうまく動 くか確かめてください。この段階で、直接 Linux が起動する完全なマシンに なっているはずです。 6.2. その他のオペレーティングシステムのインストール ここまでで完全に稼働するシステムがひとつできたので、他のオペレーティン グシステムをセカンドディスク上に構築する作業に進みましょう。 セカンドディスクにインストールするオペレーティングシステムをひとつかふ たつ選んでください。わたしは特別な理由はないのですが、最初のテストケー スとして 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 のインストール終了時に再起動して、 各々がうまく動くか、またブートローダのメニューが機能するか確かめまし た。 6.3. 最後に 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 があなたの設定に同意するか確かめてく ださい。 7. コストと雑記 7.1. コスト わたしは、リムーバブルドライブ用のディスク装置(Frame)ひとつとカート リッジ (drawer)一本で、 20 ドルかかりました。"SNT MOBILE RACK" という 製品です。それ以外のディスクについてコストはかかっていません。アップグ レードしたりしているうちに、古かったり容量が小さかったりした IDE ドラ イブがいくつか手元にあったからです。購入しなければならないとして も、2GB の IDE ドライブなら安価です。 7.2. 雑記 1. リムーバブルドライブをマスターにするかスレイブにするか決めたら、ケ ースに設置してしまう前にジャンパピンの設定が正しいか確認すること。 これを忘れると、起動時に生じる問題がジャンパの設定ミスにあることを 長時間かけて調べることになる。 2. OS のインストールルーチンには、インストール先のドライブしか見せない こと。 Redhat は、IDE ドライブが見えると、SCSI ドライブの MBR に LILO をインストールさせてくれなかった。その結果、わたしは内蔵 SCSI ドライブにインストールするために、IDE ドライブを物理的に外すはめに なった。IDE にインストールするには、BIOS 上で SCSI サポートを無効に せざるを得なかった。 3. ある OS のインストールルーチンは、全ドライブのパーテイションを切り 直し、全データを上書きすると語るかもしれない。その言葉を信じるこ と。 4. IDE ケーブルは逆にも簡単に差せる。 5. わたしがテストしたのは、IDE の master/master だけである。 master/slave でどうなるかは知らない。 6. リムーバブルディスクのフレームを組み込むには、コンピュータのケース を開ける必要がある。それが苦手なら、友人に助けを求めなければならな い。 7. リムーバブルディスクのディスクタイプを BIOS 上で特定したとしても、 違うタイプのディスクに差し替えるまでなら、きわめて順調に動く。そし てその直後に、エラーか警告が出る。システムが起動しなくなることもあ る。 8. あらかじめ、すべての計画を練っておくこと。 9. BIOS 設定のわずかな変更で、セカンドディスクがブートディスクになる。 すなわち、緊急及び復旧用のディスクとして完全な OS が手に入るわけで ある。 7.3. 日本語訳について 翻訳 千旦 裕司 校正 早川 仁 山下 義之 武井 伸光 森本 淳 川嶋 勤 誤訳、誤字・脱字等がありましたら、JF メーリングリスト か、訳者 までご連絡ください。