以前、WindowsとUbuntu 9.04をWindowsのブートローダでデュアルブートする方法(初出)と、WindowsのブートローダーでLinuxとデュアルブートする方法 - Ubuntu 9.10, Grub 2の場合(Grub 2対応)を書きましたが、またしてもUbuntu 10.04 ではそのままの方法ではうまくできませんでした(いまさらながらで、すみません)。
Ubuntu 10.04では、インストールウィザードの一番最後にブートローダーのインストール先を指定するところで、すでに存在するパーティションからしか選択できなくなったためです。
そのため、Ubuntuのブートローダーのための小さなパーティションをあらかじめ作っておくようにしました。
以前の手順に今回の手順を追加して再録します。
Windows 7/Vista/XPのブートローダで、Ubuntu Linuxをデュアルブートする方法:
- Windowsを新規インストールします。
パーティションはNTFS、Ubuntu用の空き、WindowsとUbuntuのデータ共有用のFAT32、の3つを作っておきます(FAT32のパーティションは結局ほとんど使うことはないかもしれません)。
なお、パーティションを1つだけ作成して、後からパーティションを分けることも最近では可能ですが、間違いを少なくするために最初から分けておきます。 - 次にUbuntuを真ん中のパーティションにインストールします。
- CDからインストールする際、最初のメニューで「インストール」を選ぶのではなく、「インストールせずにUbuntuを使用する」を選びます。
- Gpartedツール(Administratorメニュー)で、真ん中の空きパーティションにUbuntuのブートローダ用の小さなパーティションを作成します。フォーマットはext4、サイズは最小限の512MB程度(100MB程度でよいですがGUIではこれ以上小さく指定できませんでした)。
Gpartdで変更を適用します。そして、作成したパーティション名を覚えておきます(私の場合はsda6になりました、古いパーティションを何度も使っていると大きな数字になるようです)。
(Ubuntuが既にインストールされている場合は、この段階でSwapも含めパーティションをきれいに削除してから作業します) - インストールウィザードを起動します。
- Ubuntuのインストール先のパーティションの指定で、「空き領域を最大限利用する」を選択します。これで真ん中の空きパーティションが選ばれるはずです。
- インストールウィザードの最後の画面で、「拡張」ボタンを押して、ブートローダのインストール先を「sda6」(先ほど作成した小さなパーティションの名前を選ぶ)とします。
この操作を忘れないでください。忘れるとWindowsのブートローダーが上書きされてしまいます。 - Ubuntuのインストールが終わったら、リブートしてWindowsを起動します。
ブートメニューを設定していないので、この段階では、まだUbuntuは見えません。
- Windows上にgrub4dosをダウンロードし、grldrとgrldr.mbrの2つのファイルをC:\ (Cドライブ直下)にコピーします。
- チェインロードのためにメニューを作成します。
以下の内容で C:\ にmenu.lstを作成します(2行目のhd0,6の数字をUbuntuのパーティションに合わせます。sda6は、ここではhd0,6になりますブートローダ用のパーティションの後ろにUbuntu本体のパーティションが作成され、そこに /boot/grub が格納されているはずです。ブートローダ用のパーティションがsda6の場合、/boot/grub のパーティションは sda7 となり、指定するのは hd0,6 となります。2番目の数字はパーティション番号マイナス1の数字です)。
バックアップのために、grub4dosとmenu.lstはデータ共有パーティション(Dドライブ)にコピーしておくとよいです。title Linux
root (hd0,6)
kernel /boot/grub/core.img - WindowsのブートメニューにUbuntuを追加します。
Windows 7/Vistaの場合、管理者モードのDOS窓を開き、次のコマンドを実行します。2行目以降の{xxxx}は、1行目の実行結果で表示されるidを指定します。
追加後、引数なしのbcdeditで「リアルモードブートセクター」のところに表示されることを確認します。bcdedit /create /d "Linux" /application bootsector
Windows XPの場合は、テキストエディタでC:\ にあるboot.iniに下記を追加します(システムファイル、隠しファイルになっている場合は解除してから)。
bcdedit /set {xxxx} device partition=C:
bcdedit /set {xxxx} path \grldr.mbr
bcdedit /displayorder {xxxx} /addlastC:\grldr="Linux"
- リブートして確認。
WindowsのブートメニューにLinuxの項目が追加されているはずです。
Ubuntuを起動するときは、WindowsのブートメニューでLinuxを選んだ後、次に表示されるUbuntuのブートローダーで一番上を選びます。
こうすることで、Windowsを再インストールしたり、バージョン変更(XP=>7、7=>XPなど)で上書きする場合、Linuxを入れ替える場合にも、ブートローダの上書き順の制約を気にせず安心して作業できます。
[2011-05-03] パーティション番号の理解が間違っていたので訂正しました。Ubutu 11.04用の記事への参照を追加しました。
こんにちは以前WindowsのブートローダーでLinuxとデュアルブートする方法 - Ubuntu 9.10, Grub 2の場合で質問させて頂いたwingsです。
ReplyDeleteその説はアドバイス有難うございました。
随分遅くなりましたがWindows XPとUbuntu 10.04 for Grub4dosの結果を報告します。
"Ubuntu 9.10, Grub 2の場合"の記事と同様の
手順で成功しました。(/bootは作成していません)
但しmenu.lstの部分は以下のように記述しました。
title Linux
find --set-root /boot/grub/core.img
kernel /boot/grub/core.img
以上
それでは