ヒント: デュアル・ブート Linux

1 台のハード・ディスクにデュアル・ブート Linux システムを構築する方法

Comments

われわれは、IBM Developer Relations の協力スタッフとして、テクニカル・サポート・スタッフがカスタマーの質問に答える際の手助けを行うこと (つまり、ヘルプ・デスクをヘルプすること) を任務としています。われわれは、主に IBM WebSphere 関係の製品を扱っているのですが、マシンをあれこれ調整してカスタマーの実際の問題を再現しなければならないということがよく起こります。

それぞれの問題を再現するということは、まさしく、カスタマーとまったく同じシステムを用意するということであり、そのためには、当然ながら、各システムごとにマシンを用意するよりも、同じドライブにパーティションを設定し、複数のシステムを稼働させるほうが、ずっと効率よく作業を行うことができます。そのようなわけで、われわれは、もうずいぶん以前に、1 マシン・1 システムから 1 マシン・複数システムに体制を転換しました。

現在では、(たとえば) 同じ OS 上に IBM WebSphere Application Server の 2 つのバージョンを稼働させるといったことが可能になっています。このためには、大容量のドライブ (われわれが研究室で使用しているのは、通常 19G バイト) を半分ずつのパーティションに分割し、それぞれのパーティションに OS をインストールして、さらにそれぞれのパーティションに Websphere Application Server の別々のバージョンをインストールすればよいわけです。このようにして、われわれは、同じ 1 台のマシンに同類の環境を複数用意しているというわけです。

われわれの IBM の研究室では、AIX や Linux (Red Hat 6.2) ばかりでなく、Microsoft Windows や NT の系統のさまざまなバージョン (Windows 2000 の Server バージョンや Professional バージョン、NT Server や NT Professional) など、いろいろなオペレーティング・システムを扱っています。

Microsoft のシステムには、複数の OS をインストールするためのユーティリティーが用意されており、OS の切り替えも難無く行うことができました。ただ、われわれの場合 Linux は初めてでしたので、Red Hat システムで少してこずった面もありました。とくに、そうしたインストールを説明する簡単明快な文書をなかなか見つけることができませんでした。そこで、Linux が初めてという方や同じような問題に直面している方のために、必要な情報を簡単に見つけ出し、かつそれが簡明で分かりやすく、使いやすいものとなるよう願いを込めて、この記事を書きました。われわれの狙いが成功したかどうかを、ぜひお知らせください (われわれのメール・アドレスは、この記事の上部および下部に示してあります)。

今回の情報記事では、1 台のドライブに 同じ Linux ディストリビューションを複数インストールする例を紹介します (われわれの研究室では Red Hat を使用しています)。しかし、少しひねりを加えれば (あるいは参考文献 のコーナーに示した文書を参考にすることで)、種類の異なる Linux をデュアル・ブートできるマシンにしたり、Linux と Linux 以外のオペレーティング・システムの組み合わせにしたりすることも問題なくできるはずです。

今回の記事では、カスタマーとまったく同じシステムを構築したかったため、Red Hat の古いバージョンを使用しています。したがって、ここで使用している Red Hat のバージョンは数年前のもので、昔の 2.2 のカーネルを使用しています。新しい Linux のカーネルでは、マルチ・ブートの処理が異なっています。いずれにせよ、できるなら、セキュリティーの理由から、新しい Linux 2.4 (.x) カーネルのバージョンにアップグレードするほうがよいでしょう。また、最近のほとんどの Linux のインストールには、LILO の代わりに、あるいは LILO とともに GRUB が利用できるようになっています。GRUB には、Linux のマルチ・ブートを処理するためのより高度な方法が用意されています。したがって、LILO を使用しない新しいバージョンを使用している方には、以下の情報は、それほど役に立たないかもしれませんが、LILO を使用するバージョンを使っているユーザーにとっては、必要不可欠な情報となるはずです。

Red Hat デュアル・ブート: インストール手順

今回の作業にとりかかれる状態になっているなら、まずシステムをシャットダウンして、リスタートしてください。そして、CD ドライブに Red Hat Linux の CD を入れてください。

Red Hat Linux のインストール・ルーチンは、インストール作業を非常に簡単に行えるようにしています。まずは、デフォルトの言語やキーボードの種類など、いくつかの基本的なシステム構成を行います。「Partitions」の画面になるまで、しかるべき情報を入力していきます。

「Partitions」の画面になったら、「add」ボタンをクリックして、オペレーティング・システムの種類として「Linux Native」を選択します。「size」には 16 (メガバイト) とキー入力し、パーティションの種類には /boot を選択します。残りの構成は、以下に示すとおりであり、個々のパーティションについて以上の手順を繰り返していきます。

/boot   sda1       16M      Linux native
/       sda5     1024M      Linux native
swap    sda6      256M      Linux swap
/var    sda7      200M      Linux native
/tmp    sda8      200M      Linux native

なお、これらのディレクトリーの場所は SCSI ドライブ用です。IDE ドライブの場合、sda1 の s を h に置き換えてください(/boot ドライブは hda1、ルート・ドライブは hda5 といった具合です)。

また、上に示したサイズは、われわれのハードウェアに合わせたもので、このサイズが必須だというわけではありません。とくに最近のハードウェアは、いろいろな構成をサポートしていますので、サイズは、それぞれのシステムに合わせて設定してかまいません。ただし、/boot パーティションにあまり大きなスペースを割り当てても、ほとんど無駄になるだけですので、そうする必要もないでしょう。最近のハードウェアの場合、多分、ブート用のパーティションは、われわれの場合よりも小さなサイズにしてもよいぐらいです。他のパーティションについても、違ったサイズにしてかまいません。

インストールその 2

これで、Linux カーネルの 2 つ目をインストールする準備ができました。ここでは、以下のような簡単な指針にしたがいます。

  • 今回も、マスター・ブート・レコード (Master Boot Record: MBR) に lilo をインストールする
  • リニアー・モードを使用する (SCSI ドライブでは必須)
  • カーネルの各種パラメーターはブランクにしておく

最初にインストールしたほうのパーティションのラベルは、Not Set のままにしておきます。これらのパーティションは Not Set のままにしておき、「add」をクリックし、先ほどと同じようにしてインストールを行うことで、新たに 5 個のパーティションを追加します。必要なことは、前回のインストールで作成したパーティションを削除したり修正することなく、新しいパーティションを追加していくということです。

それ以外のインストール作業は同じです。名前は自由に決めてかまいません (われわれは linux2 にしました)。ただし、ラベルに 2 語以上を使う場合は、クォーテーション・マークで囲む必要があります (スペースを挟みたいときは、"Linux 2" とします)。もちろん、2 回目のインストールのラベルは、最初のものとは違う名前にしなければなりません。

インストールが終わると、システムがリブートされ、プロンプトが表示されます。そこでタブ・キーを押します。すると、2 回目の Linux のインストールのラベルが表示されるはずです。linux2 (あるいは、2 つ目のイメージに付けた名前) をキー入力してエンターを押します。すると、今インストールした 2 つ目の Linux システムが表示されるようになります。

lilo.conf の編集

次に、LILO (Linux Loader) 構成ファイルであるlilo.conf を編集して、最初に行ったインストールのことを Linux に知らせるためのレコードを追加します。

それには、/etc ディレクトリーに行き、lilo.conf ファイルを好みのエディターでオープンします (念のために、先にバックアップ・コピーをとっておくとよいでしょう)。lilo.conf のコードは、以下のような内容になっています。

boot=/dev/sda           #this points to the boot device
timeout=300      #if no activity in the specified time, load default image 
linear
prompt
    Default="Linux2"        #Linux1 will be displayed at the prompt
    Vga=normal              #video mode
     read-only
map=/boot/map
Install=/boot/boot.b	        
image=/boot/vmlinuz=2.2.14-5.0         #location of boot image
   Label="Linux2"                              #label
   initrd=/boot/initrd-2.2.14-5.0
   Root=/dev/sda10                  #location of root partition

コメント (ハッシュ記号# で始まる) は、無視されます。ここでは、各行の意味がわかるようにコメントを入れてありますが、後で参照したときのためにコメントを入れておきたいということでなければ、みなさんのシステムの lilo.conf ファイルにはコメントを入れる必要はありません。

ここでも、IDE ドライブを使用している場合には、sda を hda に置き換えます。

LILO の別の構成方法

lilo.conf ファイルの編集には、以下のような方法もあります。

  1. 端末ウィンドウをオープンし、/root ディレクトリーに入り、linuxconf とタイプします。すると、Linux のコマンド・ウィンドウが開き、この中でシステムの構成を設定することができます。
  2. Boot mode のところまでスクロール・ダウンしていきます。boot mode のところには、LILO の構成を設定するためのオプションが表示されるはずです。メニューの中の 2 番目の項目の Configure LILO Linux configurations を選択し、LILO Linux configurations タブをクリックします。
  3. Add をクリックします。そして、他の Linux ブート・パーティションやカーネル・ファイルの場所を追加していきます。各フィールドに何を追加すればよいのかがわからない場合は、タイプする前に表示されていたものを参考にしてください。

上の lilo.conf ファイルを見ると、これが linux2 というラベルの Linux インストールのものであること、すなわちインストール作業のうち 2 回目にインストールした Linux であることがわかります。そこで、/sda5 (IDE ドライブの場合は /hda5) のパーティションにインストールされた 1 つ目の Linux を LILO がデュアル・ブートできるようにするために、最後の行に続けて、以下のコードを追加します。

image=/boot/vmlinuz=2.2.14-5.0
   label="Linux1"
   initrd=/boot/initrd-2.2.14-5.0
   root=/dev/sda5

このコードを追加した後の最終的なファイルは、以下のようなものになります。

boot=/dev/sda
timeout=300
linear
prompt
    default="Linux2"
    vga=normal
    read-only
map=/boot/map
install=/boot/boot.b
image=/boot/vmlinuz=2.2.14-5.0
   label="Linux2"
   initrd=/boot/initrd-2.2.14-5.0
   root=/dev/sda10
image=/boot/vmlinuz=2.2.14-5.0
   label="Linux1"
   initrd=/boot/initrd-2.2.14-5.0
   root=/dev/sda5

ルートのパスは、必ず上のリストの最後の行にあるように指定してください。これは、非常に重要なことです。また、必ずインストール時に使用したラベルを指定します。

編集が終わったらファイルを保存し、プロンプトにlilo コマンドを入力します。するとファイルが再コンパイルされ、更新された構成が保存されます。

image/kernel は、どちらのインストールのものも同じです (/boot/vmlinuz=2.2.14-5.0)。われわれの場合、まったく同じシステムをデュアル・ブートしようというわけですから、同じ CD を使ってインストールを行います。したがって、イメージ・ファイルも同じです。異なるディストリビューションをインストールする場合には、それらのイメージ・ファイルは違ってきます。

これで、ほぼ完了です。そこで、端末からリブート・コマンドshutdown -r now を実行することにします。リスタートしたコンピューターには、LILO プロンプトが現れます。ここでタブ・キーを押すと、以下のような表示になるはずです。

Linux2			Linux1
Boot:_

ブート・プロンプトで Linux1 とタイプすると、最初にインストールした Linux がブートされます。Linux のブートが終わったら、こちらのほうの lilo.conf ファイルを確認してみます。上で 2 つ目のイメージ用として編集したものと非常によく似ているはずです。違っているのは、デフォルトのイメージが /sda5 (IDE ドライブを使用している場合は /hda5)、ラベルが linux1 となっている点だけです。先と同じように、このファイルを編集し、最後の部分に以下の行を追加します。

image=/boot/vmlinuz=2.2.14-5.0
   label="Linux2"
   initrd=/boot/initrd-2.2.14-5.0
   root=/dev/sda10

その結果、ファイル全体を示すと、以下のようなコードとなります。

boot=/dev/sda
timeout=300
linear
prompt
    default="Linux1"
    vga=normal
    read-only
map=/boot/map
install=/boot/boot.b
image=/boot/vmlinuz=2.2.14-5.0
   label="Linux1"
   initrd=/boot/initrd-2.2.14-5.0
   root=/dev/sda5
image=/boot/vmlinuz=2.2.14-5.0
   label="Linux2"
   initrd=/boot/initrd-2.2.14-5.0
   root=/dev/sda10

ファイルを保存し、コマンド・プロンプトにlilo と入力して、再コンパイルします。もう一度リブート・コマンドを実行します。システムが起動すると、LINUX のブートを選択するよう求められます。ここでタブ・キーを押すと、今度は以下のような表示となります。

LINUX BOOT:
Linux1			Linux2
Boot:_

これで完了です。デュアル・ブートの Red Hat Linux システムが構築できました。以上、パーティションごとに、必要な数だけイメージをインストールしていくとか、アプリケーション・ソフトウェアのいろいろなバージョンをインストールしていく (われわれが WebSphere Application Server や DB2 で行ったように) といったことも大した作業でないことがお分かりになったことと思います。


ダウンロード可能なリソース


関連トピック

  • ドライブのパーティション分割は、初めての場合、面倒かもしれません。PowerQuest 社からは、この作業を簡単に行えるようにするためのPartition Magic という製品が発売されています。
  • この情報記事では、例として LILO を取り上げましたが、同じようなことを行ってくれる新しいユーティリティーで、さらにいろいろな機能を備えたGNU GRUB Multiboot ブートローダーという製品もあります。
  • まだ Linux をインストールしたことがないという方には、Eric Raymond のThe Linux Installation HOWTO が大いに参考になることと思います。
  • Dual booting Win2K and Linux という記事には、NTFS のパーティションを Linux からブート可能なパーティションとして認識されるようにするための 1 つの方法が紹介されています。
  • 複数のオペレーティング・システムを同時並行して実行できるようにするための高度な製品 (たとえば Linux の下で Windows のアプリケーションを実行できるようにする) が、VMware です。
  • 最後に、1 個とか 3 個とか 10 個程度のちっぽけな数の Linux を 1 台のマシンにインストールするだけで終わりにする手はありません。ドイツ IBM のプログラマーが 41,400 個の Linux をメインフレームで実行させた〔IBM programmers in Germany got 41,400 copies of Linux running on a mainframe〕ときの手順が Earthweb の developer.com に紹介されています。

コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Linux
ArticleID=228107
ArticleTitle=ヒント: デュアル・ブート Linux
publish-date=04012002