現象
ESXi上のWindows Server 2003を入れている仮想マシンを、ClonezillaやAcronis TrueImage?等ディスクのイメージバックアップを取るソフトでクローンしても、Hyper-V上で起動するとブルースクリーンが表示されて起動しない。ブルースクリーンにはSTOP: 0x0000007Bと表示される。
原因
ブートディスクがSCSI→IDEになったため。
ESXiでウィザードに従ってWindows Server 2003の仮想マシンを作ると、ブートディスクはSCSIになる。一方で、Hyper-VはブートディスクはIDEであるため、起動できない。
Hyper-VでLinuxを動かそうと思ったことが無いけど、Linuxでもsda→hdaになるわけだから、GRUBとfstabいじらないとダメなんだろうな。
対応
クローンする前に以下のレジストリを入れておく。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\primary_ide_channel]
"Service"="atapi"
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
ESXiのVMにIDEのCD-ROMドライブが設定されていることが前提。CD-ROMはセカンダリIDEになっているので、プライマリIDEのデバイスを追加してやれば良い。一切IDEデバイスが無い場合は色々面倒そう。
参考
逆(Hyper-V→ESXi)の場合
ESXiならば起動ディスクをIDEにできるので、素直にIDEを起動ディスクにすれば良い。Hyper-VはIDE以外起動ディスクにできないので、一手間必要。