VMware Playerを使用していたのですが、Dockerを始め昨今のWindowsプラットフォームでの開発ではHyper-V前提になってきており、VMwareだと何かと厳しいので移行するためのメモです。
基本的にvmdkファイルのWindowsNTをHyper-Vで動かすを参考にしながら、所々違うことをしています。
環境
ホストOS: Windows 10 Pro 1809
VMware: VMware Workstation 14 Player
ゲストOS: Windows 10 Pro 1809(Workstation 11.x仮想マシン)
VMDKファイルの編集
VMDKファイルのddb.toolsInstallType
をコメントアウトする必要があるらしく、
dsfork.exeというツールが紹介されているが、やっていることはVMDKファイルのヘッダーを差し替えているだけなので、バイナリエディタで置換しました。
具体的には、ddb.toolsInstallType
の前に #
を挿入して、その少し後ろのオフセット0x3E0あたりの0x00を削除しました。
多分ddコマンドとかでも同様のことができると思う。
VHDXファイルに変換
Microsoft Virtual Machine Converterをインストールして、PowerShellのConvertTo-MvmcVhd
コマンドレットで変換しました。
ConvertTo-MvmcVhd
コマンドレットでは、-VhdFormat
でVHD/VHDXが指定できるので、VHDXにしてます。
PS> import-module "C:\Program Files\Microsoft Virtual Machine Converter\MvmcCmdlet.psd1"
PS> help ConvertTo-MvmcVhd
名前
ConvertTo-MvmcVirtualHardDisk
構文
ConvertTo-MvmcVirtualHardDisk [-SourceLiteralPath] <string> [[-DestinationLiteralPath] <string>] [[-VhdType] {Dynam
icHardDisk | FixedHardDisk}] [[-VhdFormat] {Vhd | Vhdx}] [<CommonParameters>]
エイリアス
ConvertTo-MvmcVhd
注釈
なし
PS> ConvertTo-MvmcVhd -SourceLiteralPath "D:\Virtual Machenes\Windows 10 x64\Windows10.vmdk" -DestinationLiteralPath "D:\Virtual Machenes\Windows 10 x64\Windows10.vhdx" -VhdFormat Vhdx
Destination Source
----------- ------
D:\Virtual Machenes\Windows 10 x64\Windows10.vhdx D:\Virtual Machenes\Windows 10 x64\Windows10.vmdk
PS >
Hyper-Vの有効化と仮想マシンの作成
VMwareはアンインストールせずに、Windowsの機能の有効化または無効化でHyper-V プラットフォームを有効にした後、Hyper-Vマネージャで新規の仮想マシンを作成します。
その際、世代の指定では第1世代を指定します。
第2世代でも試したが、VMWareではSATA(IDE)接続だったせいか、そのままでは起動ロゴが出ずに起動しませんでした。
stackoverflowではISOファイルで起動してbootrec.exe /fixBoot
が有効、みたいなことが書いてあったけど、直りませんでした。
追記
変換後の仮想マシン(Windows 10)でライセンス認証をしようとしたのですが、今のところ失敗しています。
ハードウェアの変更で行けると思っていたのですが、「Windows をライセンス認証できません」と言われて完了できません。
追記2
こちらにP2Vで作成したVHDXファイルを第2世代の仮想マシンで起動する手順が記載されている。
もしかしたら参考になるかも。
Disk2VHD UEFI ファームウェアのマシンのブート手順