VHDファイルの自動マウント


仮想マシンソフト「VirtualPC」でのHDDイメージは、拡張子「vhd」のファイルとなります。
このファイルは、マイクロソフトが「VirtualPC」を買い取ったことにより、Windows標準で使用できるようになりました。
私は、「VirtualPC」から「VirtualBOX」に乗り換えましたが、「VirtualBOX」でもそのまま利用できます。
このように「vhd」ファイルは、非常に利用価値のあるファイルであることは間違いないのですが、中身を見たい(編集したいも含む)場合がちょっと面倒です。

画面左下のWindowsアイコンを右クリックし、「ディスクの管理(K)」からメニューの「操作(A)」で「VHDの接続」でファイルを選ぶ、というのが通常の方法となります。ドライブとして有効な領域があれば、ホストマシンのドライブとして認識されます。
「ディスクの管理(K)」は、「ディスクマネージメント」とも言い「diskmgmt.msc」で起動することもできます。

その他にも、「diskpart」というコマンドがあって、コンソール画面からVHDファイルを選択して「attach」コマンドを実行するという方法もあります。ただ、コマンドを入力するというのもなかなか大変な作業で、まずコマンドを覚えないといけませんし、毎回入力しなければならないのも面倒です。

因みに、エクスプローラから、拡張子「VHD」のダブルクリックしてもOSデフォルト状態では何もできません。私の環境では、こんな感じになってしまいます。



そこで今回は、バッチファイルを作成し、「VHD」の拡張子連動として割り当てることで、簡単にマウント・アンマウントができる方法を紹介します。



まずは、下記の内容を「VHD_TOOL.bat」という名前で任意の場所に保存して下さい。名前や保存場所は特に何でも構いませんが、コードはS-JISとして下さい。
読み取り専用で開きたい場合は、「attach vdisk」の後に「readonly」を付けて下さい。因みに、読み取り専用でない状態でattchすると、中身に何も変更を加えなくてもVHDファイルのタイムスタンプが更新されますのでご注意下さい。これは「ディスクマネージメント」で接続する場合も同様です。

「VHD_TOOL.bat」の中身
@echo off
if "%~1"=="" (
  echo 引数にVHDファイルを指定して下さい。
  pause
  exit /b
)

rem ------------------------------------------------------------------------------------------------
title VHD自動マウントバッチ
cd /d %~dp0

rem ------------------------------------------------------------------------------------------------
set MOUNT_TXT=temp_mount.txt
set UNMOUNT_TXT=temp_unmount.txt

rem ------------------------------------------------------------------------------------------------
echo sel vdisk file=%1 > %MOUNT_TXT%
echo attach vdisk >> %MOUNT_TXT%

rem ------------------------------------------------------------------------------------------------
echo sel vdisk file=%1 > %UNMOUNT_TXT%
echo detach vdisk >> %UNMOUNT_TXT%

rem ------------------------------------------------------------------------------------------------
diskpart -s %~dp0%MOUNT_TXT%

echo\
echo %1をマウントしました
echo\
echo この画面が開いている間はマウントされます。
echo 何かキーを押して画面を閉じるとアンマウントされます。
echo\
pause

diskpart -s %~dp0%UNMOUNT_TXT%

del %MOUNT_TXT%
del %UNMOUNT_TXT%


エクスプローラから、任意のVHDファイルを右クリックして、「プログラムから開く(H)」で、「その他のアプリ」から、このバッチファイルを選んで、「常にこのアプリを使って・・・」にはチェックを入れて、OKボタンをクリックして見て下さい。

このような画面が現れます。そして、VHDファイルの中身にもよりますが、使用中ドライブの最後に、このVHDファイルのドライブが追加されているはずです。私の環境では、Hドライブが追加されました。




ここで新たに割り当てられたドライブで、ファイルやディレクトリの編集・追加・削除などが行えます。


このコンソール画面の表示通り、このコンソール上で何かキーを押すと画面が閉じ、ドライブもアンマウントされてなくなっています。この時、エクスプローラでの編集内容はVHDに反映されます。
要するに、VHDの中身も物理ドライブと同じように扱えるということです。




戻る