2011-05-03

WindowsのブートローダーでLinuxとデュアルブートする方法 - Ubuntu 11.04, Grub2の場合

Ubuntu 11.04はAppMenu (Global Menu) を採用し、よりMacに近い先進的なユーザインターフェースになりました。
インストーラもデュアルブート派(マルチブート派)により優しくなりました。
以前の投稿と同じく、Windowsのブートローダ(ntldr)でUbuntuとマルチブートするためのインストール手順を記します。

Windows 7/Vista/XPのブートローダで、Ubuntu Linux 11.04をデュアルブートする方法:
  1. Windowsを新規インストール、またはインストール済みのWindowsのパーティションを分けてUbuntuをインストールするエリアを作成します。
    ここでは3つのパーティション、つまりWindows用のNTFS、Ubuntu用の空きパーティション、共有用のFAT32を作成するものとします。
    容量は私の場合は80GBを40GB、20GB、10GBに分けました(テストマシンなので少なめ)。
    Vista/7ではWindowsの管理ツールでパーティションの縮小、分割が簡単にできます。
  2. 次に、Ubuntuを真ん中のパーティションにインストールします。
    1. UbuntuのCDまたはUSBから起動し、最初のメニューで [Ubuntuを試す] を選びます。
    2. 起動後、必要であれば、
      無線LANなどネットワーク環境の設定を行います(必須ではない、インストール後じっくりやる方がよいかも)。
      また、Gpartedツール(システムメニューでgpartedと入力して検索、起動する)でパーティションの状態を確認することができます。必要であれば、過去にインストールしたUbuntuのパーティション(ブートローダ、本体、スワップ)を削除します(結果、ひとつの空き領域にします)。
    3. デスクトップにある [Install Ubuntu 11.04] を起動します。
      1. [言語の選択] で好きな言語(日本語)を選びます。
      2. [ディスク領域の割り当て] で [それ以外] を選びます
        (デフォルトの [UbuntuをWindows 7とは別にインストール] を選んでしまうと全自動インストールが走りブートローダが上書きされてしまうので、注意)。
      3. まず、スワップパーティションを作成します
        (スワップパーティションはなくてもLinuxは問題なく起動しますが、作成するのが一般的です)。
        表示されるパーティション一覧から、[空き領域] を選んで、[追加] を押します。サイズは4GB程度(Linuxサーバでは物理メモリの3倍程度と言っていましたが、昔話となりました)、場所は [後ろ]、マウントポイントは [swap] を選んで [OK] を押します。
      4. 次に、Ubuntu本体をインストールするパーティションを作成します。
        表示されるパーティション一覧から、[空き領域] を選んで、[追加] を押します。
        サイズはそのまま(全て)、マウントポイントは [/] を選んで [OK] を押します。
      5. ここで、[/] に設定したパーティションの名前を記録しておきます。
        私の場合は sda7 になりました(以前紹介した手順に比べて作成するパーティションがひとつ少なくすんでいます)。
      6. [Device for boot loader installation:] に先に記録したパーティション(私の場合sda7)を指定します。
      7. [インストール] を押して、インストールを開始します。
  3. 再起動後、Ubuntuは起動しないので、今まで通りWindowで起動します。
  4. WindowsのブートローダからLinuxを起動するためのツールとしてgrub4dosを使用します(以下、設定済みの場合は4、5、6はスキップしてかまいません)。
    grldrとgrldr.mbrを c:\ に(Cドライブの直下に)コピーします。
  5. Linuxを起動するためのメニューを作成します。
    以下の内容で C:\ に menu.lst という名前のテキストファイルを作成します。
    2行目 hd0,6 の2番目の数字は、Ubuntu本体のパーティション番号マイナス1の数字です。
    sda7の場合は hd0,6 とします。
    title    Linux
    root (hd0,6)
    kernel /boot/grub/core.img
  6. WindowsのブートメニューにUbuntuを追加します。
    Windows 7/Vistaの場合、管理者モードのDOS窓を開き、次のコマンドを実行します。
    2行目以降の {xxxx} は、1行目の実行結果で表示されるidを指定します。
    追加後、引数なしのbcdeditで「リアルモードブートセクター」のところに表示されることを確認します。
    bcdedit /create /d "Linux" /application bootsector
    bcdedit /set {xxxx} device partition=C:
    bcdedit /set {xxxx} path \grldr.mbr
    bcdedit /displayorder {xxxx} /addlast
    Windows XPの場合は、テキストエディタでC:\ にあるboot.iniに下記を追加します(システムファイル、隠しファイルになっている場合は解除してから)。
    C:\grldr="Linux"
  7. リブートして確認します。
    WindowsのブートメニューにLinuxの項目が追加されているはずです。
    Ubuntuを起動するときは、WindowsのブートメニューでLinuxを選んだ後、さらにLinuxを選び、次に表示されるUbuntuのブートローダーで一番上を選びます。
Linuxのブートローダ (Grub2) に比べてWindowsのブートローダ (ntldr) は融通が利かないので、安全のためWindows主体のブート方法をとりました。
こうすることで、Windowsを再インストールしたり、バージョンアップしたり、Linuxを入れ替える場合にも、ブートローダの上書きを気にせず安心して作業できます。

なお、Windowsのgrub4dosはgrubのバージョン1なので、(標準のインストール状態の)Ubuntu 11.04を直接ブートできません。
WindowsのgrubからUbuntuのgrub2をロードし、そこからUbuntuをブートしています(チェインロード)。

以前の投稿:
(Ubuntu 10.10はスキップしてしまいました。)

7 コメント;書く・見る:

Anonymous said...

Boot時にXPとLinuxは表示されるのですが、Linuxを選択すると何も実行されずに再度Bootの最初の画面に戻ってしまい、XPとLinuxの選択画面になってしまいます。
要するに、Linuxが起動できません。。。

パーティションの中身を確認したのですが、ちゃんとUbuntu11.4がインストールされているのですが、どうしてでしょう?

Anonymous said...

自己解決しました。ありがとうございました。

taka8aru said...

> Boot時にXPとLinuxは表示されるのですが、Linuxを選択すると何も実行されずに再度Bootの最初の画面に戻ってしまい

menu.lst のパーティション番号が違っていたのでしょうか。
すでに解決されたとのことですが、どう直されたのか教えていただけませんか?

Anonymous said...

選択画面は表示されるのですが、Linuxを選択すると

 Windowsを開始できませんでした。最近のハードウェアまたはソフトウェアの変更
 が原因の可能性があります。問題を修正するには次の方法があります:
 
 1. Windowsインストールディスク~
 2. 言語の設定を~
 3. [コンピュータの修復]~

 状態: 0xc000000f
情報: 要求されたデバイスにアクセスできないため、ブートの選択でエラーが発生しました。

となり、Ubuntuを起動できません。
Windows7は普通に起動できます。

アドバイスをいただけると幸いです。

taka8aru said...

匿名希望さんへ、
C:ドライブにgrldrとgrldr.mbrはちゃんとコピーされていますか?
bcdeditで見て、設定内容でタイプミスはないですか?

Anonymous said...

ありがとうございます。
コピーは問題ありません。

リアル モード ブート セクター
--------------------------------
identifier {****(略)}
device partition=C:
path \grld.mbr
description Linux

bcdeditのミスもないと思います。

Anonymous said...

× grld
○ grldr