(Hyper-V)物理PCを仮想PCに変換(P2V)してみた

普通のメーカ製PCで稼働している Windows XP を Hyper-V で動く仮想PCにしてみました。

まずは仮想VHDを作成します。
仮想VHDはDisk2vhdで作成します。
この時、忘れずに「Fix up HAL for Virtual PC」にチェックを入れます。

これで作成できた仮想ハードディスクイメージを Hyper-V を動かしているサーバにコピーし、ブートします。

すると OS 起動時に Windows XP のロゴ表示時点で固まってしまいました。

ということで、F8 キーからセーフモードで起動。
セーフモードだと無事にログインできました。

で、Hyper-V統合サービスのディスクを挿入します。
すると、下記のようなHALのアップグレード画面が表示されるので、HAL(Hardware Abstraction Layer)をアップグレードします。
e0091163_23263944.jpg

これで、再起動し通常モードで Windows を起動してから、Hyper-V 統合サービスをインストールするだけで普通に使えます。

ただ、今回ハマったのはHALアップデート後の再起動後ログインしようとしたら、Windows ライセンス認証のダイアログが表示され、アクティベーションしないとログインさせないぞと表示されたことです。

まぁこれは再アクティベーションをし、プロダクトキーを入力し直すと通るわけですが、Hyper-Vで追加したレガシーネットワークカード(統合サービスを入れる前はレガシーじゃないと使えない)がOSから見ると新規のNICになるわけでDHCPになるわけですよね。
DHCPのネットワークじゃなかったので、別でDHCPネットワーク作って、それとHyper-Vのサーバつなげてなんとかアクティベーションは成功しましたが、これは面倒です。

ただ、Disk2vhdでもちゃんとブートできる仮想イメージを作成できることは検証取れたんでよかったです。
前回はバリバリのサーバをDisk2vhdを使ってVirtualBox上でブートしようとしたらできませんでしたが。。


ただ、今回の基の物理PCのCドライブの空き容量が残り数百メガと非常に少なかったため、Cドライブのパーティション拡大をしないといけませんでした。
同じ仮想ディスク上のパーティションDドライブはほぼ空っぽだったので、懐かしのPartionMagicを使ってDドライブのサイズを小さくし、Cドライブを拡大する手法をとりました。

やはり、VHD内のOSが入ってるパーティションのサイズ変更はこのようなツールを使わないとダメなようです。
(パーティションサイズの拡大はdiskpart.exeで可能ですが、システムボリュームはダメなようなので。。参考:@IT:Windows TIPS -- Tips:ディスクのボリューム・サイズを拡張する)

また、仮想ディスク(VHD)自体のサイズの拡大は仮想ハードディスクのサイズを拡大する - @IT仮想ハードディスクのサイズを拡大する(Hyper-V編) - @ITが参考になります。


追記:
別メーカ製PCをまた仮想化したんですが、この時はブート時に「BOOTMGR is missing」と表示されブートできませんでした。
で、基の環境なんですが、1台のHDDの中に、Cドライブ、Dドライブ、そしてリカバリ用の隠しパーティンという構成でした。
Disk2vhdはドライブレターがあるディスクしかVHD化しないので、C,DだけVHD化したんですが、それだと上記の BOOTMGR is missing が表示されてしまいます。
で、リカバリ用隠しパーティションにドライブレターを振って見えるようにし、C,D,リカバリ領域 をVHD化したところ、見事に起動するようになりました。
(セーフモードにしなくてもちゃんと起動しました。もちろんHALのアップグレードは必要でしたが。。)
とうことで、VHD化するときは本当にディスク丸ごとしないといけないということを学ばされました。
[PR]
by jehoshaphat | 2010-10-04 23:28 | サーバがらみ | Trackback | Comments(7)
トラックバックURL : http://jehupc.exblog.jp/tb/13349846
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。
Commented by ハナさん at 2011-06-07 16:04 x
はじめまして。製造業のシステム部門にいるものです。余ったサーバーにWIN2008R2Hyper-V入れて、Disk2vhdでP2V4台目サーバーにて
上記の隠しパーティン取れてなく、「BOOTMGR is missing」にハマってしまい、貴方様のブログへたどり着きました。
「リカバリ用隠しパーティションにドライブレターを振って見えるようにし、」とありますが、もし良ければ、見える様にする方法を教えてもらえませんか?
ちなみに、対象がWIN2003Serverで業務アプリが動いていますので、失敗が許されないServerなんです。。。。
Commented by jehoshaphat at 2011-06-09 13:02
ども。3流PGです。
ドライブレターの割り振りは[コンピュータの管理]の[ディスクの管理]からできます。
詳しくは、下記サイトを参照してください。
http://www.atmarkit.co.jp/fwin2k/win2ktips/023drivel/drivel.html
Commented by ハナさん at 2011-06-13 09:57 x
どうも、すみません。レスありがとうございます。m(__)m
最後に一つ、ちなみにあなた様は、この「リカバリ用隠しパーティション、C、D」にドライブレターはどう振られました?
リカバリ用隠しパーティション=>C、元C=>D、元D=>Eとかでしょうか?
すみません、幼稚な質問で。。。。
Commented by jehoshaphat at 2011-06-13 13:07
ども。3流PGです。
元のドライブレターは元と同じにしないとおかしくなると思います。
リカバリパーティションは適当なドライブ文字使いました。
例:元C=C、D=D、Hidden=W といった感じです。
Commented by ハナさん at 2011-06-13 16:12 x
どうも、ありがとうございます。御回答のとおりですね。
ただ、あれから、ターゲットのServerのディスクの管理で、再度やってて思い出しましたが、
元々、右メニューにドライブレターの変更メニューも無いんです。。。。
ヘルプしか無いんです。
ドライブの構成は、
・31MB 正常(EISA構成)
・(C:)12.00 GB NTFS 正常(アクティブ、プライマリーパーティション)
・(D:)100GB NTFS
で、・31MB 正常(EISA構成)が、リカバリ用隠しパーティションと思っていたのですが、全然違う事だったのかもしねません。
ごめんなさい。
http://social.technet.microsoft.com/Forums/ja-JP/hypervja/thread/d565a6a7-6d76-4b5b-a6ab-7228f12537c6
Commented by ハナさん at 2011-06-14 11:28 x
解決しました。
今までARCserveだったのが、今回のサーバーのみ
V E R I T A S  BACKUPで、これが悪さしてました。
BACKUPの全てのサービスを全て止めたら、P2V成功しました。
お騒がせしました。
Commented by jehoshaphat at 2011-06-14 17:30
ども。3流PGです。
なるほど。バックアップソフトが悪さをしてたんですね。P2Vするときは極力サービスやアプリを停止して実行したほうがよいということですね。
あまり力になれませんでしたが、解決できて何よりです。


<< ネットワークカードを交換してI... 物理PCのハードディスクを仮想... >>