前々回、前回と、複数のOSを使う方法について説明してきました。今回は、その締めくくりとしてGRUBを使って1つのハードディスクでデュアルブートする方法とGRUBの設定方法を紹介します。
GRUBを使って1つのドライブでデュアルブートする
1つのドライブに複数のOSをインストールしてGRUBを用いてデュアルブートする方法は、一部の環境で、すでにインストールされているWindowsを起動不能にしてしまうというリスクを抱えています。それを避けるために、前回紹介したドライブを増設する方法やWubiを検討してみてください。
また、Windowsが起動しなくなってしまった場合に備えて、バックアップやリカバリディスクの作成を欠かさないでください。
WindowsがプリインストールされているドライブにUbuntuもインストールするには、インストーラの「ディスクの準備」で、「それぞれ別のものとしてインストールし、起動時にどれを起動するか選択」を選びます。つぎに画面下部に表示されているスライダを左右に動かして、どれだけの容量をUbuntuに割り当てるか決めます(図1)。「進む」をクリックすると確認画面が表示され、パーティションの変更を実際にディスクに書き込むには「続ける」をクリックします(図2)。後は通常のインストールと同様に作業を進めれば、インストーラによってGRUBが自動設定され、GRUBを使ったデュアルブートが完成します。
GRUB LegacyとGRUB 2
Ubuntu 9.04まで使われていたGRUB Legacyに代わって、Ubuntu 9.10ではGRUB 2が採用されています。さらにUbuntu 9.10のインストーラは、他のOSがインストールされているかどうかを判断して、GRUB 2の設定を変更します。
他のOSが見つからず、Ubuntu 9.10が唯一のOSとなる場合は、起動時にGRUB 2の画面の表示しません。ただし、起動時に「Shift」キーが押し続けられているときだけGRUB 2の画面を表示し、リカバリーモードやメモリテストを選択できる仕組みになっています。
Windowsなどの他のOSが見つかったときは、GRUB 2のOS選択画面を10秒間表示するように設定されます。10秒間操作がなかったときはUbuntuを起動するようになっています。
9.04からアップデートした際にはGRUB Legacyがそのまま使われ、GRUB 2はインストールされません。アップグレードした場合でもGRUB 2を使用したければ、[アプリケーション]-[アクセサリ]-[端末]で、以下のコマンドを実行します。
すると端末内で設定画面が表示されるので、指示に従って設定していきます(図3)。なおこの作業では、選択している項目の移動に「Tab」キーを使います。
この際、GRUB Legacyのmenu.lstからGRUB 2をチェーンロードするか聞かれるので、必ず「はい」を選択します(図4)。続いて、「Linuxコマンドライン」と「Linuxパラメータ」の設定がありますが、どちらもそのまま「了解」を選択してください。
ここまでの作業でGRUB LegacyからGRUB 2が呼び出されるようになります。GRUB LegacyのOS選択画面を見てみると、確かにGRUB 2を呼び出すようになっているのがわかります(図5)。
このように9.04からアップグレードした場合でもGRUB 2を使用できるようになったわけですが、GRUB Legacyもまだ一部分で使われています。おすすめはしませんが、GRUB Legacyを全く使わないように、GRUB Legacyが担当している部分もGRUB 2で置き換えるには、端末で以下のコマンドを実行して、ブートローダのインストール先を指定してください。
GRUB 2のTips
他のOSが表示されないときは
GRUB Legacyの場合は、他のOSのメニューエントリを追加する場合には、自分でインストールされているパーティションなどを調べて「/boot/grub/menu.lst」に追記するのが一般的でしたが、GRUB 2ではGRUB Legacyのmenu.lstにあたる「/boot/grub/grub.cfg」を自分で編集できないようになっています。「/etc/grub.d/」以下のスクリプトによってOSの検出からメニューエントリの追加までを自動で行ってくれます。
GRUB 2のメニューエントリに他のOSが表示されないときは、そのOSがインストールされているドライブを接続した上で順にコマンドを実行していきます。まず、以下のコマンドで前回デバイスマップが作成された時からハードウェア構成が変わっている場合のために、デバイスマップを作成し直します。
次に、以下のコマンドで、OSの検出からメニューエントリの登録までを自動で行います。
たったこの2つのステップで、全てのOSがメニューエントリに追加されます。
デフォルトの起動OSを変更したいときは
GRUB 2を利用するときのデフォルトの起動OSはWindowsではなくUbuntuです。これをWindowsに変更してみます。
まず、端末で以下のコマンドを実行します。
すると以下のような出力を得ます。
このうち、Windowsのメニューエントリの「"Windows 7 (loader) (on /dev/sda1)"」の部分をコピーしておきます。
続いて、端末で以下のコマンドを実行してGRUB 2の設定ファイルを開きます。
設定ファイルの中の「GRUB_DEFAULT」を含む行を、先ほどコピーした文字列を使って以下のように変更して保存します。
または、以下のように変更すれば、前回正常起動したOSを記憶しておき、次回の起動でも同じOSを使用するという設定もできます。
最後に、端末で以下のコマンドを実行して変更を反映させます。
タイムアウトの秒数を変更する
Ubuntu 9.10以外のOSもインストールされている場合、GRUB 2のOS選択画面が表示されるのはデフォルトで10秒ですが、これを変更するには、先ほどと同じく以下のコマンドでGRUB 2の設定ファイルを開きます。
「GRUB_TIMEOUT=10」となっている行を以下のように変更したい秒数に変えて保存します。この値を「-1」としてタイムアウトしないようにも設定できます。
変更を反映させるために以下のコマンドを実行します。
GRUB 2のOS選択画面を表示しないようにする
他のOSがインストールされていない場合はGRUB 2のOS選択画面は起動時に「Shift」キーを押し続けていない限り表示されません。他のOSがインストールされているときにもこの動作をさせてみましょう。
まず、端末で以下のコマンドを実行します。
テキストエディタが開かれるので、末尾に以下の内容を追記して保存します。
次に変更を反映するために以下のコマンドを実行します。
Ubuntuがインストールされているドライブに後からWindowsをインストールしてUbuntuが起動できなくなったときは
Ubuntuがインストールされているドライブに、後からWindowsをインストールすると、WindowsのブートローダがGRUBを上書きしてしまい、Ubuntuを起動できなくなります。
その場合は、まずLiveCDでUbuntuを起動します。続いて、端末を開き次のコマンドを実行します。
すると、以下のようにインストールされているOSの情報が表示されます。
このうち、起動したいUbuntuの項目の先頭に表示されている「/dev/sda5」の部分を使って、以下のようにマウントしてください[1]。
次に以下のコマンドを実行し、/devを/mnt/devからも利用できるようにします。
以下のコマンドで/mntを特別に/として機能するようにします。
次にGRUB 2をインストールし直します。ここでは、先ほど使用した「/dev/sda5」から数字を除いて「/dev/sda」のようにして使用してください。
続いて、以下のコマンドを実行してchrootを解除します。
マウントしたデバイスをアンマウントしていきます[2]。
以上でGRUB 2の再インストールは完了です。
再起動するとUbuntuがまた起動できるようになっています。ただし、新たにインストールしたWindowsの項目は作成されていないので、「他のOSが表示されないときは」での作業を行ってください。
次回は、Ubuntu Japanese Teamリーダーが担当する予定です。お楽しみに。