【MBR】デュアルブート スレ【bcdedit】

このエントリーをはてなブックマークに追加
12とある名無しの仮想人形
>>3-7,9,11です。
ブートマネージャでXPの起動できました。
手作業ではついに出来ませんでしたが・・・

■XP+VHDブートな環境構築で、ブートマネージャでブートする手順(不完全)
まずブートDVD、インストール済みVHD、PuppyLinuxのCD-RW、VMwareありきで話します。
インストーラを動かせ(×さ)ないのでブートパーティションは手作業で用意します。
[下準備]
・VHDはアタッチして利用が可能ですが、XP+VMwareではアタッチできません。そこで、
 まず、ttp://pc12.2ch.net/test/read.cgi/win/1257308960/4 のように、qemu-img.exe でvmdkに変換します。
・新規仮想マシンに変換したvmdkと新規ディスク(可変)を組み込み、PuppyLinuxでブートします。
・PuppyLinuxのPuddでブートパーティション(サイズ100MB)をバックアップします。
 手順は、
 1.新規ディスクをフォーマット
 2.そのパーティションをマウント。(ドライブアイコンをクリックするだけ。マークがつけばおk)
 3.Puddでパーティション選択、ファイル選択ではrootを/に変更し、mnt、sd?1、ディレクトリと選択し、おk。
   1台目のHDDならsda、2台目ならsdbとなります。
   マウント状態にしないとmntには出てきません。
 4.作ったファイルをホストに移動。USBメモリを経由したら簡単だけど、SMBで共有も可能。
・ホストをPuppyでブートしてPuddで逆手順で戻す。
 先頭領域を空けるときはGPartedでサイズ変更できます。もちろん危険なのでバックアップは取っておかないと。
 書き戻し先にドライブが選択できますが、空き領域の選択がなくて怖いので、一旦100MBほどのパーティションを作り、FAT32でフォーマットします。
 Puddでファイル選択、パーティション選択して進めばすぐに終わります。

長々と書きましたが、C:のWindowsパーティションを移動して先頭にWindows7ブートパーティションを持ってくるということです。
この作業を終えてもC:のWindowsXPはブート可能です。
仮にできなくてもMBRを書き戻してPuppyでbootフラグを立てれば大丈夫です。
13とある名無しの仮想人形:2009/11/08(日) 16:52:18 ID:sM23qzjH
[本作業-VHDブート]
1.まず、Windows7 DVDでブートします。修復だけなのでWinPEでもおk?
2.セットアップ起動の選択画面で、修復をクリック。
3.ブート可能なWindowsのリストが出てきますが、サイズ0で場所も不明になってます。
  「イメージから書き戻す」が選択されてしまうので修復を選んで次に進みます。
4.修復メニューが出てきたら、コマンドプロンプトを選択します。
  ・エクスプローラー代わりと、セットアップのメモを開くためにnotepadを起動。
  ・ブート領域を書き込みます。
   > X:\Sources>bootsect /nt60 sys /mbr
   (bootrec /fixmbr とか bootrec /fixboot とかはあるけど、うまくいかなかったようです。)
  ・vhdをマウントします
   > diskpart
   > list volume
   > select volume 8 (数字はあいてるとこ)
   > select vdisk file=d:\(vhdファイルパス)
   > attach vdisk
   > exit

5.ここで引っかかってたんですが、修復メニューを × で閉じ、セットアップ開始画面に戻ります。
6.もう一度修復を選び、同様に進んでいくと、今度は修復可能なリストに128GBでアタッチされたドライブのWindowsが出てきます。
7.修復メニューで、修復を選択します。

これで次回からVHDブートになるはずですが、・・・HALの設定とかドライバの追加をしてないからなのか分かりませんが、ブートでエラーになりました。
14とある名無しの仮想人形:2009/11/08(日) 17:09:04 ID:sM23qzjH
[本作業-ブートマネージャでXPブート]
これは簡単
1.まず、Windows7 DVDでブートします。修復だけなのでWinPEでもおk?
2.セットアップ起動の選択画面で、修復をクリック。
3.ブート可能なWindowsのリストが出てきますが、修復を選んで次へ。
4.修復メニューが出てきたら、コマンドプロンプトを開きます。
  notepadを実行してメモを開くといいでしょう。
   ブート構成の確認
  > bcdedit /enum
   オブジェクト作成
  > bcdedit /create {ntldr} /d "WindowsXP"
   ブートの設定
  > bcdedit /set {ntldr} device partition=x:
  > bcdedit /set {ntldr} path \ntldr
   メニュー項目に追加
  > bcdedit /displayorder {ntldr} /addfirst (もしくは/addlast)

わけが分からなかったのはドライブ名がころころ変わることですが、
設定時に入力するのは、現在のドライブ名です。
WindowsXPのパーティションの現在のドライブ名を確認して入力します。


大事なことを忘れてました。
>>13だけではMissingBootManagerとかいうエラーになり、ブートできないと思います。
   パーティションは現在のドライブ名で、ブートパーティションです。
   localeも設定しておきます。ja-JPもしくはen-USです。
  > bcdedit /set {bootmgr} device partition=C:
  > bcdedit /set {bootmgr} locale en-US

もう一度修復を実行する必要があるかもしれませんが、>>13と同様、アタッチして一旦前に戻ってそれから修復を実行します。