web-dev-qa-db-ja.com

hyper-vからエクスポートされたvhdを起動できません

ゲストとしてWindows2008 R2 x64を実行し、ホストとしてHyper-V R2x64を実行している仮想マシンがあります。

仮想マシンのvhdファイルのクローンを作成しました。次に、Windows 7 Enterprise X64 SP1(ハードウェア仮想化を使用)であるラップトップコンピューターで直接起動します。

そのために、BCDエントリを設定しました:

bcdedit /copy {current} /d "Boot_From_VHD"

エントリは{1230b942-0833-11e1-abb2-d1169c7203ba}に正常にコピーされました

bcdedit /set {1230b942-0833-11e1-abb2-d1169c7203ba} device vhd=[E:]\vhd\myvhd.vhd
bcdedit /set {1230b942-0833-11e1-abb2-d1169c7203ba} osdevice vhd=[E:]\vhd\myvhd.vhd
bcdedit /set {1230b942-0833-11e1-abb2-d1169c7203ba} detecthal on

bcdedit /enumを実行すると、エントリが表示されます。

Windows Boot Loader
-------------------
identifier              {1230b942-0833-11e1-abb2-d1169c7203ba}
device                  vhd=[E:]\vhd\myvhd.vhd
path                    \Windows\system32\winload.exe
description             Boot_From_VHD
locale                  en-us
inherit                 {bootloadersettings}
osdevice                vhd=[E:]\vhd\myvhd.vhd
systemroot              \Windows
resumeobject            {1230b940-0833-11e1-abb2-d1169c7203ba}
nx                      OptIn
detecthal               Yes

再起動すると、ブートメニューにエントリが表示されます。新しく作成したエントリを選択すると、Windowsのロゴが数秒間表示され、次にBSODが表示されます。

このBSODは、chkdskを実行することを提案しているだけなので、あまり役に立ちません。 64ビットの16進数も配置されますが、エラーメッセージは表示されません。

問題を解決する方法はありますか?

PS:ハードウェアの変更の可能性を除いて、システムをそのまま維持したいと思います。 sysprep /generalizeを実行していません。すべてのユーザー、ホスト名などがリセットされるためです。

3
Steve B

私はついに問題を解決しました。

BSODはエラーSTOP: 0x0000007B、つまりinaccessible boot device

これは私を行方不明のドライバーの道に置きます。実際、Hyper-VマシンはIDEエミュレーションを使用しており、私のラップトップはeSataドライブを使用しているのに対し、イメージではIDEドライバーのみが使用可能であると思います。

この問題を解決するために、OSを実行するラップトップで、次の手順を使用して DISM/add-driverコマンド を使用します::

  1. VHDをディスク管理にマウントします(diskpartも可能です)->コンピューターに2つのドライブを追加します。F:予約済みシステムパーティション用、G:Windowsパーティション用
  2. 次のように入力して、ラップトップのすべてのドライバーをイメージに追加します。

    dism /image:g: /add-driver /driver:c:\windows\inf /recurse

  3. ダウンロードした最新のドライバーも追加します。

    dism /image:g: /add-driver /driver:c:\somewhere\drivers /recurse

これには数分かかりましたが、操作後、私のvhdにはすべてのドライバーが含まれています。ターゲットのラップトップでコマンドを実行して、実際のハードウェアのドライバーがすべて追加されていることを確認することが重要だと思います。

最後に、再起動して正しいブートエントリを選択すると、ブートされます:)

新しいハードウェアが検出されたため、何度か再起動する必要がありましたが、最終的にシステムが仮想から物理に移行されました。

1
Steve B