Share via


Disk2vhdでV2Vしました

実は、Sun VirtualBoxを愛用しています。

普段使いのWindows 7 PC上で手軽に仮想マシンを動かせますし、64-bit VMやマルチプロセッサ VMに対応しているので便利なんです。最近はVisual Studio 2010 RCの検証環境を作り、日々持ち歩いています。

Sun VirtualBox上のWindows Server 2008 R2 + Visual Studio 2010 RC

64-bitで2VPなVMの例

しかし、このVMを会社のHyper-V上でも動かせたら便利だなぁと思うわけです。

そこでdisk2vhdですよ!

このツールをゲストOS内で実行すると、オンライン バックアップを取得するような感じで、ディスクイメージをVHD形式で保存することができます。あとはそのVHDを使って、Hyper-V上のVMを作ればよいわけです。

早速やってみましょう。

まずは、Sysinternalsのページから、disk2vhdをダウンロードします。

https://download.sysinternals.com/Files/Disk2vhd.zip

このZIPの中に、"disk2vhd.exe"という実行ファイルが入っています。これをホストではなくゲストOS上で実行する必要がありますので、私のようにネットワークに接続されていない孤立したVMを使っている場合は、何らかの手段でdisk2vhd.exeをゲストOSにコピーする必要があります。

VirtualBoxには、ホストOSとゲストOSの間でファイルを共有できる「共有フォルダ」の機能があるので、これを使うことにします。ホスト側の"F:\VHDs"フォルダを、ゲストと共有しました。

VirtualBoxでの共有フォルダ設定画面

 

ゲスト側からは、”\\VBOXSVR\VHDs”という共有フォルダとして見えます。

\\VBOXSVR\VHDsフォルダ

このファイルを、ゲストOS内のローカル フォルダにコピーしても良いですし、共有フォルダ上から直接実行してもかまいません。私はローカルにコピーせずにそのまま実行しました。

 

こんなの↓が出ますが 「実行」を押します。

disk2vhd.exeの実行確認

 

もう一回こんなの↓が出ます。

disk2vhd-tmp.exeの実行確認

この”disk2vhd-tmp.exe”というのは、64-bit版のdisk2vhd.exeです。64-bitゲスト上で実行した場合は、この -tmp.exeのほうが実際の仕事をします。Sysinternalsのツールには他にもこのパターンがありますね。

 

初めて実行するときには、こういう↓SysinternalsのEULA画面が出ますが、ぜひ「Agree」してください。

SysinternalsのEULA画面

 

というわけで、起動されたDisk2vhdの画面はこんな感じです。シンプルですね。

 Disk2vhd起動

“VHD File name:”の部分に、変換後のVHDファイル名が入力されています。デフォルトの場所はdisk2vhd.exeがある場所です。私の例の場合、先ほど作成した共有フォルダになりますので、このままVHDを作れば、ホストOS側に作成されるので便利です。

それでは、「Create」をクリックします。

VSSでスナップショットを作成します

"Creating Snapshotting volumes..."とありますね。Disk2vhdはVSSを使ってスナップショットを作り、それを吸い出してVHDにしているのです。仕組みとしてはSCVMMのオンラインP2Vと同じですから、信頼出来そうですよね。

 

この状態↓でしばらく時間がかかります。

 Disk2vhd動作中

 

待っている間暇なのでタスクマネージャでも見てみます。 disk2vhd.exeがWOWで動いている32-bitプロセス ("*32")。disk2vhd-tmp.exeが64-bitプロセスなのがわかりますね。

disk2vhdのプロセス

 

終わりました↓

Disk2vhdでのVHD作成完了

”Disk exported to VHD completed successfully” と控えめに表示されるだけなので、うっかりしてると見落としてしまいそうですが。。

 

ホスト側から見てみます。できてますねVHD。

disk2vhdによって作成されたVHD

 

では、このVHDをHyper-V側に持っていて、VMを作ってみましょう。仮想マシンの新規作成ウィザードで、「既存の仮想ハード ディスクを使用する(U)」を選択して、disk2vhdによって作成されたVHDを指定します。

Hyper-V上での仮想マシンの作成

 

作成された仮想マシンを起動すると、自動的にデバイス ドライバのインストールが行われますので、まずは再起動が必要になります。

デバイス ドライバを更新したので再起動が必要

 

再起動後は、VirtualBoxのGuest Additionsの削除を忘れずに。本来は移行する前に削除しておくべきですねこういうのは。うっかりしてました。

VirtualBox Guest Additions

 

そして、Hyper-VのICを忘れずインストールしましょう。今回のようにゲストが2008 R2の場合は、Hyper-VのICがあらかじめ含まれているので基本的には不要ですが、

image

しかし、更新プログラムでICが新しくなっていることもありますので、明示的にインストールした方が確実です。ゲストOSのバージョンが、ホストのHyper-Vより古い場合は、常にICのインストールが必要です。

 

というわけで、無事にVirtualBoxからHyper-Vへ引越が完了しました。

image

※ 嬉しかったのでVPは4個付けておきました。

 

以上、Disk2vhdでした。これは実に手軽で便利!是非お試しください。

 

__END__