Linux + OS/2 (+DOS) mini-HOWTO

Hamish Moffatt, <moffatt@yallara.cs.rmit.edu.au>

v0.2, May 20 1996

中谷千絵, <jeanne@mbox.kyoto-inet.or.jp>

v0.2j, June 21 1996
Linux と OS/2 と DOS を同時に使う方法

注意: この文書はかなり以前に書かれたものなので、 いまどきの Linux 環境にはあてはまらない箇所があります。 (JF Project)

0. 免責事項
この HOWTO では、ご使用のコンピュータのブートローダを変更するような 作業をします。説明に間違いがあれば、途中で Linux や OS/2 あるいは DOS のいずれかが起動出来なくなるかもしれません。また場合によって全く起動 出来なくなるかもしれません。作業を始める前に、手もとに Linux のブー トディスクとルートディスク、OS/2 インストールディスク DISK 1 、そし て DOS のセットアップディスクがあることを確かめておきましょう。著者 はこの文書で指示したことで起こるどんな事故にも責任を持てません。何が 起こっても保証は出来ません。

1. はじめに

2. この文書を読む前に

3. インストールの手順

4. OS/2 ではなく、すでに Linux をインストールしている場合

5. すでに OS/2 と Linux をインストールしている場合

6. LILO から OS/2 を起動するには...

7. おわりに


1. はじめに

私が最初に Linux に関心を持ったのは 95 年 8 月頃です。その当時、 OS/2 ブートマネジャと Linux が共存出来るはずなのに、うまく動作しない と言われていました。実際には私が新品の PC に、OS/2 と Linux を共存さ せてインストールした時、それはちゃんと動作しそれほど難しいことではあ りませんでした。この mini-HOWTO はこれら2つを共存させて使用するため の助けとなるはずです。

NOTE: この文書中で、私は、OS/2 ブートマネジャから Linux を起動する ( LILO を経由で)方法について説明します。LILO ( Linux のローダであり、 ブートマネジャ) から OS/2 を起動する方法については、あとの節で簡単に 説明します。

2. この文書を読む前に

この mini-HOWTO では、システムにすでに OS2 (そしてもし望むなら DOS も) をインストールされている場合について書きます。すでに Linux をイ ンストールしている場合、あるいは OS2 と Linux の両方をすでにインストー ルしているなら、4 節、5 節を見てください。

OS2 のブートマネジャを使用するなら次のことに注意してください。同 じ区画に OS2 と DOS をインストールし(そして DOS の起動*と、 OS2 の起 動*を選択している場合)OS/2 ブートマネジャではなく二重ブートを使って います。その場合は LILO 文書、あるいは、オペレーティングシステム上で 他の OS (Linux ではない OS )を起動させるための mini-HOWTO を読んでく ださい。この HOWTO は ブートマネジャに関することだけです。

訳注*:原文は(and you switch between them with BOOT /DOSand BOOT /OS2)。 二重ブートを使っている場合、DOS から OS/2 に切り替えるにはDOS コマン ドプロンプトで c:\os2\boot /os2 と入力する。

3. インストールの手順

3.1 準備確認

OS/2 を使用しているなら、DOS はインストールされているでしょう。(こ の HOWTO での例は DOS もインストールされています)。パーティションテー ブルはだいたい次のようなものになっているでしょう。

   Device Boot  Begin   Start     End  Blocks   Id  System
/dev/hda1           1       1     254  512032+   6  DOS 16-bit >=32M
/dev/hda2         256     256     786 1070496    5  Extended
/dev/hda3   *     255     255     255    2016    a  OS/2 Boot Manager
/dev/hda5   *     256     256     509  512032+   7  OS/2 HPFS
/dev/hda6   *     510     510     763  512032+  83  Linux native
/dev/hda7   *     764     764     786   46336+  82  Linux swap

ここで、hda1 は DOS、hda3 はブートマネジャ、hda5 は OS/2(ブート可能)、hda6 は Linux (ブート可能) 区画です。OS/2 区画が HPFS ではなく FAT でもかまいません。その場合もこの解説は適用出来ます。 また、OS/2 ブートマネジャは /dev/hda のどこかになければなりませんが、 OS/2 とLinux は /dev/hdbhdc、あるいは IDE ハードディスク 上にあればいいです( OS/2 ブートマネジャは 2つ目のディスクから OS2 を起動 出来ますから、Linux も2つ目のディスクから問題なく起動出来るはずです。 私は2つ目のディスクから起動するために DOS を使うことは出来ませんでしたが)。

3.2 Linux をインストールする

さて、これから Linux をインストールします。OS/2 の FDISK を使って、 DOS と OS2 (必要なら拡張区画も) 区画を作成し、それから Linux の fdisk で Linux 区画を作成するのが一番いいでしょう。 OS/2 は時々パーティショ ンテーブルが壊れていると判断して、OS/2 のブートマネジャメニューにあ とで Linux を追加させてくれないという報告があります。その場合は、 OS/2 FDISK で必要なすべての区画を作成してから、あとで Linux の fdisk を使って区画を適切な ID に変更したらいいでしょう。区画の ID の変更に ついての詳細は fdisk の文書を見てください。 (bubeck@informatik.uni-tuebingen.de (Till Bubeck). に感謝します。)

Linux のインストールプログラムは、LILO のインストールについて質問 してくるはずです。Slackware プログラムはそうします。LILO をインストー ルするようにします (OS/2 のブートマネジャは、Linux のファイルシステム のフォーマットを認識出来ないので、Linux を直接的には起動できません。 また、LILO を加えることで、 Linux の違ったバージョンを選択出来るよう になります。また、起動パラメータを与えることで、Linux はすべてのハー ドウエアやその他のものを認識出来るようになります)。

3.3 LILO をインストールする

Slackware は LILO をどこにインストールするかを尋ねます。 たとえば、 SuperBlock (パーテョションテーブル、マスターブートレコード MBR など) や、Linux 区画にあるブートセクタなどです。SuperBlock にあるブートマ ネジャがマスターのブートマネジャになります。これを OS/2 のブートマネ ジャにしたいのですから、 LILO ( Linux のブートマネジャ)は Linux 区画 のブートセクタにインストールする必要があります。上述のパーティション テーブルの例では、 /dev/hda6 になります。( /dev/hda ではありません。/dev/hda は MBR で、 そこには OS/2 の ブートマネジャがあります。)

Linux のインストールを終えます。インストールの過程で、/sbin/lilo が起動しなかったなら、/sbin/lilo を起動します。もしかしたら LILO の コンフィギュレーションファイルである /etc/lilo.conf を自分で作成しな いといけないかもしれません。ハードドライブ上で Linux カーネル(オペレー ティングシステムそのもの)がどこにあるかを LILO に教えてやらないとい けません。単純なものとしては以下のようになります。

boot = /dev/hda6
delay = 50
vga = normal
ramdisk = 0

image = /vmlinuz
  root = /dev/hda6
  label = linux
  read-only

boot の行には、 LILO がどの区画にインストールされているかを明記します。 これは /dev/hda (あるいは hdb )ではなく、 /dev/hdax* になります。

訳注 * : boot=/dev/hdax としておけば、LILO は /dev/hdax のブートセク タに書かれる。

3.4 OS/2 のブートマネジャメニューに Linux を追加する

さて、Linux をインストールし、動作させる準備が出来ました。しかし、 再起動しても Linux を起動することはできません。OS/2 ブートマネジャに Linux を教えてやらないといけません。再起動し、そして、OS/2 ブートマ ネジャメニューから OS/2 を選択します。(ブートマネジャのかわりに、 LILO プロンプトが起動してしまうなら、3.5節 を読んでください。)

OS/2 を起動し、FDISK を実行します。Linux 区画に移動します( Type 83 とリストされている部分。OS/2 は Linux 区画を認識することが出来ません)。 エンターキーを入力し、"ブートマネジャメニューに加える" をメニューか ら選択します。たとえば Linux のような適当な名前を書き込み、F3 キーを 入力して、セーブし、終了します。

再起動すると、OS/2 ブートマネジャメニューには Linux という項目が入 るでしょう。それを選択すれば、5秒後に LILO が出るはずです。それから Linux が起動します。そうなればもうすべて完了していますから、あとはど うぞお楽しみください。

3.5 再起動した時に、OS/2 ブートマネジャではなく LILO が起動する時

再起動した時に、OS/2 ブートマネジャより先にLILO が起動してしまうな ら、あるひとつの区画(たとえば /dev/hda6 など) ではなく、 superblock(/dev/hda) に LILO をインストールしてしまったのでしょう。 これを修正するのは、それほど難しいことではありません。OS/2 インストー ルフロッピーから起動させ、コマンドプロンプトに入ります。FDISK を起動 し、セーブし、抜けます。再起動すれば OS/2 ブートマネジャはもとに戻る はずです。しかし、今度は Linux を起動できなくなります。Linux のブー トディスクとルートディスクを使って、Linux 区画をマウントします。ディ スクからの起動が完了したら、

mount /dev/hda6 /mnt 

と入力します。

使用している Linux 配布物にもよりますが、ログインしてしまえば、ルー トフロッピーのかわりにハードディスクをマウント出来ます。Slackwareで は、LILO プロンプト がでた時に次のように入力すると、

mount root=/dev/hda6

ブートディスクから起動したのと同じほど早くマウント出来るでしょう。

さて、LILO config を編集します(上述のどの方法で起動したかによりま すが、ログインしてマウントしたなら /mnt/etc/lilo.conf、 LILOプロンプトでマウントしたなら /etc/lilo.conf になります)。" boot = " の行を /dev/hda から /dev/hda6 (あるいは他のいずれか) に変更します。そして

/mnt/sbin/lilo -C /mnt/etc/lilo.conf

あるいは

/sbin/lilo
として lilo を実行します。 どちらになるかは、使った方法のいずれかによります。もう一度再起動する と、OS/2 ブートマネジャが戻ってきます。3.4節の"OS/2 ブートマネジャメ ニューに Linux を追加する"を見てください。

3.6 拡張オプション

起動する間の数秒を節約したいなら、/etc/lilo.conf にある 50 のかわ りに、 "delay = 0" とします。 delay を使うことで、 他のオペレーティングシステムを選択出来るようになりますが、 OS/2 ブートマネジャを使うならその必要ないでしょう。 (しかし、LILO を使えば、違った Linux カーネルの起動を選択出来る ようになります)。

実際には、ブートマネジャメニューから Linux を選択した直後に shift キーを押していれば、 LILO プロンプトが現れます。LILO は非常に早くロー ドしますから、実際にやるのは難しいです。

4. OS/2 ではなく、すでに Linux をインストールしている場合

4.1 OS/2 をインストールする

すでに Linux をインストールしているなら、PC を起動させた時に、LILO プロンプトが出ます。これからOS/2 をインストールするのですね。本当な ら、 Linux をインストールする前に OS/2 をインストールするほうが簡単 だったかもしれないですけれど。

Linux を起動し、/etc/lilo.conf ファイルを編集します。" boot = " の行をブートドライブ /dev/hda のかわりに、 Linux 区画の名前、たとえば、/dev/hda6 に変更します。 それからもう一度 LILO をインストールするために、/sbin/lilo を起動 します。これで Linux 区画のブートセクタに、LILO がインストールされ、 これで OS/2 は LILO を起動出来るようになります。

さて OS/2 をインストールしましょう。OS/2 の FDISK で OS/2 区画を作 成し、きちんと OS/2 のブートマネジャをインストールしましょう。 そし て OS/2 区画(そしてDOS) を確実にブートマネジャに加えます。さらに、メ ニューに Linux 区画(OS/2 の FDISK で Type 83 )を加えるのを忘れないで ください。( エンターキーを入れて Linux 区画に入り、そして " ブートマ ネジャメニューに加える " を選択します。そして、適当な名前を入力しま す)。これで OS/2 のブートマネジャメニューから、Linux と OS/2 を起動 するすべての準備が整ったはずです。

4.2 トラブルシューティング

ブートマネジャメニューから Linux を選択した時、システムディスクが ない、あるいはディスクエラー等のオペレーティングシステムエラーが表示 されるなら、たぶん Linux 区画のブートセクタに LILO をインストールし ていないのでしょう。4.1 節で書いたように、lilo.conf ファイルを編集す るために、Linux のブートディスク(ルートディスクも必要かもしれません が)を使い、/sbin/lilo を起動します。( 3.5節でフロッピーから Linux を 起動する方法と、ハードドライブ上の Linux 区画にアクセスする方法につ いての情報があります。

再起動した時、 OS/2 ブートマネジャではなく LILO が出るなら、ブート マネジャが適切にインストールされなかったのでしょう。再度、OS/2 イン ストールディスクで起動し、F3 キーで、コマンドプロンプトから抜けて、 FDISK を起動します。ブートマネジャがちゃんとインストールされているの を確認し、ブートマネジャ区画を起動可能にします。

5. すでに OS/2 と Linux をインストールしている場合

LILO ( Linux のブートマネジャとローダ)と OS/2 ブートマネジャはいず れもシステムのマスターブートマネジャのようなものです。どちらのインス トールもデフォルトの状態で行ったなら、今のところ、これら2つのうちの ひとつを起動できないでしょう(最初にインストールされたひとつは起動可 能になりません)。OS/2 ブートマネジャはマスターブートマネジャになれま すが、LILO は Linux を起動することが目的であれば場所を変えることが出 来ます。

5.1 OS/2 は起動できるが、Linux は起動出来ない場合

Linux を起動しましょう(必要ならブートディスクとルートディスクを使 います。boot/root ディスクからハードディスクの Linux 区画を起動する 方法については 3.5節を見てください)。

/etc/lilo.conf を編集し、"boot = "の行を、 ブートドライブ(/dev/hda ではなく)、Linux 区画 (たとえば /dev/hda6 )に変更します。/sbin/lilo を実行します(これらの詳細は3.5節 )。

OS/2 を起動し、FDISK を実行します。Linux 区画( Tye 83 )を選択し、 ポップアップメニューから、"ブートマネジャーメニュに加える" を選びま す。これでうまくいったはずです。

再起動しても、Linux がまだリストされない場合、最後の段階できちんと それを加えたかをチェックしてください。Linux はリストされているが、そ れを選択した時、システムがないというエラー、あるいは、システムディス クエラーが表示されるなら LILO がきちんとインストールしていないのでしょ う。5.1節の手順の最初の部分を見て下さい。

5.2 Linux は起動出来るが、OS/2 が起動出来ない場合

5.1 節を見てください。Linux は、ハードドライブから普通に起動するで しょう。OS/2 を起動するには、OS/2 のインストールディスクを使います。 そして、F3 キーで、コマンドプロンプトを抜けて、FDISK を実行します。

6. LILO から OS/2 を起動するには...

理論的には、LILO は OS/2 を起動出来ます。つまり、LILO プロンプトが 出たときに、Shift キーを入れ、そして、OS2 あるいは適当なコマンドを入 力すればいいのですが。私はこれを試しているのですが、動いてくれません。 しかし、私の OS/2 は /dev/hdb6 にあり、そのことが複雑にしているから かもしれないです。

/etc/lilo.conf に、以下の項目を加えます(OS/2 区画が /dev/hdb5 にある場合です)。

other = /dev/hda5
  label = os2

また次の項目も加えなければなりません。

table = /dev/hda 

(OS/2 が /hdb? にあるなら hdb になりますが) これは、 Linux がその区画をチェックするのに必要ですが、私が /sbin/lilo を実行した時、区画を認識してくれませんでした。

OS/2 が2つ目のドライブにあるなら、loader = /boot/os2_d.b を加えな ければいけません。そうしないと /sbin/lilo はきちんと動作しません(2 つ目のハードディスクからOS/2 を起動する特別なローダを必要とし、 os2_d.b がそれに当たります)。

うまく出来たらどうぞ私に教えてください。

7. おわりに

ご意見、提案、質問(最新の報告について)を聞かせてください。

moffatt@yallara.cs.rmit.edu.au

この mini-HOWTO の最新版は以下のところにあります。

http://yallara.cs.rmit.edu.au/ moffatt/linux-os2/

7.1 日本語訳について

日本語訳は Linux-JF プロジェクトの多くの方々にサポート頂きました。 ありがとうございます。

訳:中谷千絵 jeanne@mbox.kyoto-inet.or.jp
June 21,1996