Virtual Server 2005のVHD Mount機能を使ってみる

Virtual Server には VHD Mount というユーティリティが用意されていて、これを使用すると、バーチャル ハード ディスク ファイル (.vhd ファイル) をホスト オペレーティング システム上のバーチャル ディスク デバイスとしてマウントできます。
この機能には、コマンド ライン ツールを使用して手動でアクセスするか、API を介してプログラムでアクセスできます。
バーチャルHDDが物理PCにマウント出来るのはかなりメリットのある事なんじゃないのかな?なんて思ってたんですが、実際にはネットワークマウントが出来なかったので、イマイチ利用用途が思い浮かびませんでした。
ただし、OSが起動していない時にウイルススキャンや不要なファイルの削除だったり、例えばGhostなんかを使ったバックアップ→HDD容量の拡張なんかも容易に出来るようになると思うんで、そのへんはメリットなのかなと思います。
※この操作を行うためには端末の管理者権限が必要になります。

VHD Mountのインストール

Virtual Server 2005に既定インストールでこのユーティリティは含まれていますが、このアプリケーションだけ自動で展開したい場合には

setup.exe /c /t <ドライブ文字>:\<.msi ファイルのパス>

Virtual Server 2005 Install.msi

を摘出し、

msiexec /i "Virtual Server 2005 Install.msi" /qn ADDLOCAL=VHDMount

でサイレントインストールが可能なようです。

VHD Mountコマンドラインツールの使用方法

構文

vhdmount {/p <VHD ファイル名> | /m <VHD ファイル名> [<ドライブ文字>] | /f /u {<VHD ファイル名> [/c | /d] | All} | /q {<VHD ファイル名> | All}}

パラメータ

/p
 指定された .vhd ファイルを、ボリュームをマウントせずに、バーチャル ディスク デバイスとして装着します。
 
/m
 指定された .vhd ファイルをバーチャル ディスク デバイスとして装着し、ボリュームをマウントします。ドライブ文字の指定は任意です。ドライブ文字が指定されている場合、指定されたドライブ文字でボリュームのマウントが開始されます。ドライブ文字が指定されていない場合は、自動的に割り当てられます。

注意   /m オプションを指定すると、Windows 仮想ディスク サービス (VDS) API を使用してボリュームがディスクにマウントされます。VDS API は、Windows Server 2003、Windows Server "Longhorn"、および Windows Vista でのみ使用できます。このため、ホスト オペレーティング システムが Windows XP の場合は、/m を指定してもボリュームはマウントされません。ただし、Windows XP では、ディスク マネージャを使用して手動でボリュームをマウントできます。
 
/u
 指定された VHD ファイル名のバーチャル ディスク デバイス、またはマウントされているすべてのバーチャル ディスク デバイスの装着を解除します。VHD ファイル名は、.vhd ファイルの完全修飾パスです。
 
/q
 指定された VHD ファイル名でマウントされているバーチャル ディスク デバイス、またはマウントされているすべてのバーチャル ディスク デバイスのディスク識別子を返します。VHD ファイル名は、.vhd ファイルの完全修飾パスです。
 
/f
 復元ディスクなしでバーチャル ハード ディスクをマウントします。すべての変更は、元のバーチャル ハード ディスクに対して行われます。既定では、一時的な復元ディスクを作成してバーチャル ハード ディスクがマウントされ、変更は復元ディスクに対して行われます。 
 
/c
 復元ディスク ファイルに格納されたすべての変更で元の .vhd ファイルを更新し、復元ディスク ファイルを削除してからディスクの装着を解除します。
 
/d
 マウントされているディスクに対するすべての変更を破棄し、復元ディスク ファイルを削除してからディスクの装着を解除します。

それでは実際に使ってみましょう。このプログラムは既定のインストールで

C:\Program Files\Microsoft Virtual Server\Vhdmount

にインストールされるので、ここにパスを通してしまうか、コマンドプロンプトを開いた状態で

cd "C:\Program Files\Microsoft Virtual Server\Vhdmount"

と入力して保存されているディレクトリに移動する必要があります。

ボリュームをマウントせずに、バーチャル ディスク デバイスとして装着

VHDMOUNT /p [/f] VHDFileName

手元に物凄くどうでも良い仮想DISKしかなかったので恐縮ですがマウントしてみましょう。ちなみにこのコマンドはVHDMount は UNC (Universal Naming Convention) パスまたはネットワーク ドライブを使用したVHDのマウントをサポートしていないという事で、まあ、何に使おうか正直悩みますね。
メンテナンスを行う場合も実際にはVirtual Serverが稼働しているホストOSから行うのが良いと思います。

vhdmount /p "C:\VHD\Windows XP_Test.vhd"

ボリュームマウントしてバーチャル ディスク デバイスを装着

VHDMOUNT /p [/f] VHDFileName

マウントされている仮想DISKの一覧を表示

vhdmount /q ALL

マウントされている仮想DISKを指定して解除(差分更新)

vhdmount /u /c VHDFileName

マウントされている仮想DISKを指定して解除(差分破棄)

vhdmount /u /d VHDFileName

マウントされている仮想DISKを全て解除する

vhdmount /u ALL

2 COMMENTS

pnpk

>nobodyさん
こんばんは、コメントありがとうございます。

差分破棄と差分更新のコマンドが同じになっておりました、失礼いたしました。
ご指摘いただいた部分、修正いたしました。

ありがとうございました。
今後ともよろしくお願いします。

nobody

■マウントされている仮想DISKを指定して解除(差分破棄)
NG:vhdmount /u /c VHDFileName
OK:vhdmount /u /d VHDFileName

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です