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修復
以下のページを参考に一通り試したが状況変わらず。
参考ページ
不要なドライバのロード、または不足しているドライバがあるっぽい
参考ページ
ドライバの確認とコピー
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
結局、これもダメでした。