Xen→VMwareの移行時、VHD→VMDKに変換してWindows10のVMを起動するとエラーになる

目次

XenSeverからエクスポートしたVMをVMwareにインポート(OVFのデプロイ)をしたときにつまづいた状況をメモ。

結論から言うと、何やってもダメでした。結局、エクスポート&インポートは辞めて、Acronis True ImageまたはAcronis BackupによるI2Vで移行しました。

なので、ここに書いてある内容は、解決の役に立ちません。後に解決策が見つかれば続きを追記したいと思います。

SCSIハードディスク追加でVMDKをマウントすると起動時エラーになる

Xen Centerから書き出したVHDをStarwind V2V converterでVMDKに変換し、VMwareにインポートしたVMにVMDKをマウントすると、Windows起動途中でエラーが出る。

停止コード:SYSTEM THREAD EXCEPTION NOT HANDLED

恐らくVMwareのSCSIドライバがないためエラーになっていると思われる。

しかし、WindowsPE(回復環境)のコマンドプロンプトからDISKPARTでlist volumeを実行したところHDDが接続されていない状況だったので、コマンドでドライバーを入れたり、削除したりしてもHDDが見えない以上、何もできない状況。

IDEで接続して余計なドライバを削除してみる

SCSI接続ではVMからドライブが見えない状態だったので、IDE接続に変更し、再度、WindowsPE(回復環境)のコマンドプロンプトからDISKPARTを起動して、ボリュームを確認。

ボリューム確認コマンド

> diskpart
> list volume

上記のコマンドでWindowsが入ったボリュームはC:だということを確認。

ドライバ確認コマンド

以下のコマンドでドライバを確認。

> dsim /image:c:\ /get-drivers

ドライバを削除するコマンド

起動を邪魔していると思われるCitrix関連ドライバを削除(実際には関係なかったけど)

> dism /imagec:\ /remove-driver /driver:oem10.inf

ちなみに削除したドライバ

--------------------------------------------------
公開名 : oem10.inf
元のファイル名 : cvhdbus6.inf
インボックス : いいえ
クラス名 : SCSIAdapter
プロバイダー名 : Citrix
日付 : 2011/07/14
バージョン : 2.4.0.2705
--------------------------------------------------
公開名 : oem2.inf
元のファイル名 : xennet.inf
インボックス : いいえ
クラス名 : Net
プロバイダー名 : Citrix
日付 : 2017/01/11
バージョン : 8.2.0.103
--------------------------------------------------
公開名 : oem3.inf
元のファイル名 : xenvif.inf
インボックス : いいえ
クラス名 : System
プロバイダー名 : Citrix
日付 : 2017/01/11
バージョン : 8.2.0.103
--------------------------------------------------
公開名 : oem4.inf
元のファイル名 : xenvdb.inf
インボックス : いいえ
クラス名 : SCSIAdapter
プロバイダー名 : Citrix
日付 : 2017/01/03
バージョン : 8.2.0.156
--------------------------------------------------
公開名 : oem5.inf
元のファイル名 : xeniface.inf
インボックス : いいえ
クラス名 : System
プロバイダー名 : Citrix
日付 : 2016/12/12
バージョン : 8.2.0.61
--------------------------------------------------
公開名 : oem6.inf
元のファイル名 : xenbus.inf
インボックス : いいえ
クラス名 : System
プロバイダー名 : Citrix
日付 : 2016/12/12
バージョン : 8.2.0.85
--------------------------------------------------

ドライバを削除したら停止コードが変わった

ドライバを削除してVMを再起動したらWindows途中に表示されるエラーが以下に変わりました。

停止コード:INACCESSIBLE BOOT DEVICE

更にドライバ削除

他にもあるドライバを削除したらうまくいくかな?と、更に以下も削除。

--------------------------------------------------
公開名 : oem7.inf
元のファイル名 : vboxusb.inf
インボックス : いいえ
クラス名 : USB
プロバイダー名 : Oracle Corporation
日付 : 2020/09/04
バージョン : 6.1.14.40239
--------------------------------------------------
公開名 : oem8.inf
元のファイル名 : vboxnetadp6.inf
インボックス : いいえ
クラス名 : Net
プロバイダー名 : Oracle Corporation
日付 : 2020/09/04
バージョン : 6.1.14.40239
--------------------------------------------------
公開名 : oem9.inf
元のファイル名 : vboxnetlwf.inf
インボックス : いいえ
クラス名 : NetService
プロバイダー名 : Oracle Corporation
日付 : 2020/09/04
バージョン : 6.1.14.40239
--------------------------------------------------

追加で更にドライバ削除

状況変わらず、更に以下のドライバも削除。

--------------------------------------------------
公開名 : oem0.inf
元のファイル名 : prnms009.inf
インボックス : いいえ
クラス名 : Printer
プロバイダー名 : Microsoft
日付 : 2006/06/21
バージョン : 10.0.14393.0
--------------------------------------------------
公開名 : oem1.inf
元のファイル名 : prnms001.inf
インボックス : いいえ
クラス名 : Printer
プロバイダー名 : Microsoft
日付 : 2006/06/21
バージョン : 10.0.14393.0
--------------------------------------------------

結局、状況変わらず...。

セーフモードで起動させるためにBCDを変更

WindowsPE(回復環境)のコマンドプロンプトから、Windowsの起動に関係するBCDを編集してみました。

> c:
> bcdedit /v
> bcdedit /set {default} safeboot minimal
> bcdedit /set {default} bootmenupolicy legacy
> bcdedit /set {default} bootmenupolicy standard
> bcdedit /set {default} bootmenupolicy legacy
> bcdedit /set {default} hypervisorlaunchtype off

状況変わらず。

BCD/MBR修復

以下のページを参考に一通り試したが状況変わらず。

参考ページ

不要なドライバのロード、または不足しているドライバがあるっぽい

参考ページ
vmware knowledge base

vmware knowledge base

https://kb.vmware.com/s/article/1005208?lang=ja

windows vms fail to boot due to inaccessible boot device (0x0000007b: stop) - myzerto

windows vms fail to boot due to inaccessible boot device (0x0000007b: stop) - myzerto

https://www.zerto.com/myzerto/knowledge-base/windows-vms-fail-to-boot-due-to-inaccessible-boot-device-0x0000007b-stop/

ドライバの確認とコピー

c:\windows\system32\driversに以下の物があるか確認し、なければ正常稼働しているVMからコピーする。

  • symmpi.sys
  • vmscsi.sys
  • BusLogic.sys
  • lsi_sas.sys

正常起動のVMからドライバをコピー

正常に起動しているVMのDriversフォルダの中で、直近で登録された.sysファイルをコピーしてみる。

方法としては正常に起動するVMDKでVMを起動し、Dドライブを作り、そこのドライバを保存。

再度、正常起動しないVMDKを接続し、Windows10のインストールメディアから起動。

コマンドプロンプトからcopyコマンド等で、DドライブからCドライブのDriversフォルダにコピーする。

  • vm3dmp.sys
  • vm3dmp_loader.sys
  • vm3dmp-debug.sys
  • vm3dmp-stats.sys
  • vmxnet3.sys
  • vmmouse.sys
  • vmmemctl.sys
  • vmci.sys
  • vsock.sys

コピー後、再起動したが状況変わらず。

更に追加でコピー

更に、以下も追加でコピーしてみました。

  • cvhdbus6.sys
  • e1i63x64.sys
  • pvscsi.sys
  • vmscsi.sys

結局、コピーしても起動できませんでした。

DismコマンドでWindowsの修復を試みた

最後に、OSがイカれてしまったのではないかと、修復を試してみました。

Dism /Image:c:\ /Cleanup-Image /StartComponetCleanup
Dism /Image:c:\ /Cleanup-Image /RestoreHealth

結局、これもダメでした。

前へ

『ディスクの管理』を簡単・最速で開く方法とコマンド【Windows】

次へ

特定の要素のみを遅延表示させるJSとかCSSとかの方法メモ