UEFI環境上のGPTディスクにインストールしたWindows 8とMBRディスクにインストールしたWindows 7のデュアルブートを組む。GPTとMBRのディスクが同居する環境なんてそう無いと思うけど。
前の休日にWin8をインストールしてから、もともとMBRディスクにインストールしておいたWin7とデュアルブートを組めないものかと、bcdedit /createコマンドを駆使したりと試行錯誤していたが、うまくいかず断念。まあ、当然UEFI-BIOSのブートメニューで起動するディスクを選択すれば簡単なことは知っていましたが、F8キーを押すタイミングを合わせたりとか面倒。
ところが、今日になってbcdbootコマンドの存在を知り、これを実行したところデュアルブートを組むことに成功したので、その方法を紹介します。
○ディスクの構成とデュアルブートを組むドライブ文字を確認する。
コントロールパネルからディスクの管理ツール(ハードディスクパーティションの作成とフォーマット)を開いて、ディスクの構成を確認。ブートメニューに追加するWindowsのドライブ文字を覚えておく。もしドライブ文字が割り当てられていなければ、設定しておきます。
今回はGPTディスクのCドライブにインストールしたWindows 8と、MBRディスクのGドライブにインストールしたWindows 7とでデュアルブートを組んで、Windows 8をメインにします。Windows 8はEFIブートローダーで、Windows 7はBIOSブートローダーを使用しています。
○ブートメニューにOSを追加する。
まず、コマンドプロンプトを管理者権限で起動します。Windows 8の場合は検索画面のアプリからコマンドプロンプトを右クリックして「管理者として実行」をクリックします。
万が一のためBCDストア(ブート構成データストア)をバックアップしておきます。「bcdedit /export [ファイルパス]」コマンドを実行します。BCDストアを復元するときは「bcdedit /import [ファイルパス]」を実行します。
まずは「bcdboot G:\Windows /l ja-JP」を実行します。ここでのGはブートメニューに追加したいWindowsがインストールしてあるドライブ文字を指定します。
これだけでデュアルブートの設定は終わりなのですが、このままだとGドライブ(Windows 7)がデフォルトで起動します。そこで「bcdboot C:\Windows /l ja-JP」を実行します。これによって現在のCドライブ(Windows 8)がデフォルトになります。
スイッチを付けずに「bcdedit」を実行すると現在のBCDストアのエントリを表示できます。
以下は実行例。
$ bcdedit Windows ブート マネージャー -------------------------------- identifier {bootmgr} device partition=\Device\HarddiskVolume3 path \EFI\Microsoft\Boot\bootmgfw.efi description Windows Boot Manager locale ja-JP inherit {globalsettings} default {default} resumeobject {27f0d13e-27f4-11e2-b00f-b0b4396c3065} displayorder {default} toolsdisplayorder {memdiag} timeout 30 Windows ブート ローダー -------------------------------- identifier {default} device partition=C: path \Windows\system32\winload.efi description Windows 8 locale ja-JP inherit {bootloadersettings} recoveryenabled Yes isolatedcontext Yes allowedinmemorysettings 0x15000075 osdevice partition=C: systemroot \Windows resumeobject {27f0d13e-27f4-11e2-b00f-b0b4396c3065} nx OptIn bootmenupolicy Standard $ bcdedit /export c:\bcdstore.bak この操作を正しく終了しました。 $ bcdboot G:\Windows /l ja-JP ブート ファイルは正常に作成されました。 $ bcdboot C:\Windows /l ja-JP ブート ファイルは正常に作成されました。 $ bcdedit Windows ブート マネージャー -------------------------------- identifier {bootmgr} device partition=\Device\HarddiskVolume3 path \EFI\Microsoft\Boot\bootmgfw.efi description Windows Boot Manager locale ja-JP inherit {globalsettings} default {default} resumeobject {bd84eedf-298c-11e2-be8c-5404a6c337ff} displayorder {default} {bd84eede-298c-11e2-be8c-5404a6c337ff} toolsdisplayorder {memdiag} timeout 30 Windows ブート ローダー -------------------------------- identifier {default} device partition=C: path \Windows\system32\winload.efi description Windows 8 locale ja-JP inherit {bootloadersettings} isolatedcontext Yes allowedinmemorysettings 0x15000075 osdevice partition=C: systemroot \Windows resumeobject {bd84eedf-298c-11e2-be8c-5404a6c337ff} nx OptIn bootmenupolicy Standard detecthal Yes Windows ブート ローダー -------------------------------- identifier {bd84eede-298c-11e2-be8c-5404a6c337ff} device partition=G: path \Windows\system32\winload.efi description Windows 7 locale ja-JP inherit {bootloadersettings} osdevice partition=G: systemroot \Windows resumeobject {bd84eedd-298c-11e2-be8c-5404a6c337ff} nx OptIn detecthal Yes
起動対象のディスクがMBRであるにも関わらずwinload.efiになっているのが謎。BCDストアのことがさらにわからなくなってきた。今回はWindowsインストール時にデュアルブートが組まれなかったけど、ディスクやブートローダーの種類を統一すれば、Windowsインストール時に自動でデュアルブートが組まれるのだろうか。
ブートメニューの項目の名前を変えるには、「bcdedit /set [変更対象のID] description [名前]」を実行します。
こちらのページによれば、UEFIファームウェアによってはUEFIからMBRのブートができない場合があるようです。
○ブートメニューから項目を削除する。
ブートメニューからエントリを削除するには「bcdedit /delete [削除対象のID]」を実行します。オペレーティングシステムの選択画面を出さないようにするには「bcdedit /timeout 0」を実行します
○関連ページ
- WindowsをUEFIでインストールする [Win8]
http://blog.goo.ne.jp/limited_terra/e/1ae3d89ec8042d89aecc0bd483bac5bd - WindowsがUEFIを使用していることを確認
http://blog.goo.ne.jp/limited_terra/e/c228976198dadf6533e525992c175314 - IRST RAID0 Status - Failed からの復旧 [Win8] - Diary on wind
http://blog.goo.ne.jp/limited_terra/e/0a9f00ece498cb7bc3d230f48dddb933
強力なPCをお使いで、うらやましいです。
構成はこちらに上げているとおり、組立PCです。
http://blog.goo.ne.jp/limited_terra/e/32f67dfbe19552603ad31de3228bff1c
現在はWin7を使っていないので、補足説明を求められても答えられないかもしれませんが。