« 2015年2月 | トップページ | 2015年4月 »

2015年3月

2015年3月31日 (火)

VHDマウントツールを作ってみた。

以前、microSDを仮想ディスク(VHD)化する記事を書きました。その際、OS起動時に仮想ディスクをマウントさせる方法として、バッチファイルを用いた手順を紹介しました。

バッチファイルでもVHDの動作に問題はないのですが、バッチ起動の瞬間 「DOS窓 (コマンドプロンプト)」がチラッと表示されるのが気になっていました。DOS窓を表示させない方法(※1)もあるみたいですが、折角?なので DOS窓を表示しない VHDマウントツールを作ってみました。

※1: バッチファイルを実行する時に黒いコマンドプロンプト画面を表示しない方法
http://amaotolog.com/pc-benri/33

本ツールは Miix 2 8で動作確認しました。以下の手順は Windows 8.1の画面です。動作確認は手元にある別のWindows 7機 (32/64bit)でも行っていますが、動かない環境もあると思います。動かなかった際はゴメンナサイ、、、

プログラム的には"diskpart.exe"へ vhdファイルを橋渡ししているだけで、特に難しいことはしていませんw

■導入方法
(1)ダウンロード
まず、ここからファイルをダウンロードしてください。
ツールを更新しました。ダウンロードはこちらのページからお願いします。

vhd_attach_v0.1.zip (6,826,902 バイト)

MD5: 3dc318a71ba9142f5bc4da8f60031c04
SHA-1: e865192d060f4b25a3a7755055730ad0389318bb

次に展開したフォルダを適当な場所へコピー(or移動)して下さい。
以下の手順では「ユーザフォルダ(c:\Users\xxxxx)」配下を指定しています。

(2)仮想ディスク(.vhd/.vhdx)を記述
フォルダ内の vhdfiles.txtをテキストエディタで編集します。
絶対パス(フルパス)で vhdディスクのファイルがある場所を入力してください。
例では Rドライブの"hogehoge.vhd"を指定

vhdfiles.txt
R:\hogehoge.vhd

※複数台の仮想ディスクを記述可能。複数ディスクを記述する際は「改行区切り」にして下さい。

(3)事前テスト
仮想ディスクがマウントされていない状態で、vhd_attach.exeを実行します。
vhdfiles.txtに書かれたファイルがマウント出来れば成功です。マウントが成功してもメッセージ等は表示されないので、[コンピュータ]を開いて仮想ドライブを確認して下さい。

もし、マウントに失敗するようであれば、ファイルパスの見直しや実行権限を確認して下さい。実行には管理者権限が必要です。管理権限は vhd_attach.exeのプロパティから変更可能です。

Vhd16

(4)タスクスケジューラに登録
OS起動時にツールを実行するため、プログラムをタスク スケジューラへ登録します。

[コントロールパネル] --> [管理ツール] --> [タスク スケジューラ]を起動
ウインドウ右上の「タスクの作成」をクリック

Vhd10

<全般>
・名前: 適当な名前を付けて下さい。 (例では"vhd_attach")
・最上位の特権で実行する: チェック

Vhd11_3

<トリガー>
・[新規]をクリック

・タスクの開始: [ログオン時]
・有効: チェック

Vhd151

<操作>
・[新規]をクリック

・操作:プログラムの開始
・プログラム/スクリプト:[参照]をクリック
    ⇒ ツール(vhd_attach.exe)を選択

Vhd121

<条件>
・特に指定なし (お好みで)

Vhd13

<設定>
・タスクを要求時に実行する:チェック
・残りの項目はチェックを外す
・新しいインスタンスを開始しない

Vhd14

<履歴>
・デフォルトでOK

スケジューラへの登録が完了したら、OSを再起動。
再起動後に仮想ディスクが正しくマウント出来ていれば成功です。

(5)エラー画面
マウントに失敗した場合など、diskpart.exeで吐き出されたエラーがそのままダイアログに表示されます。問題解決の糸口にして下さい。

Vhd17

(6)FAQ
■マウントに失敗 (1) -- パス(PATH)の確認
ツール内で diskpart.exeを呼び出しているため、diskpart.exeへのパスが通っている必要があります。通常であれば diskpart.exeは"C:\Windows\System32"配下に存在しています。このパスは OSインストール時に自動的に登録されているハズです。

■マウントに失敗 (2) -- スタートアップ起動
Windows 8はシステムに手を加える系のプログラムはスタートアップメニューに登録できません。手順にあるように「タスク スケジューラ」へ登録して下さい。

(7)免責事項
堅苦しいですが免責を、、、

本ソフトウェアおよび本ドキュメント等を使用して得られた結果について、利用者に対していかなる保障をするものでもありません。利用者は自己の責任において使用して下さい。

作者は、本ソフトウェアの使用または使用不能によって、発生する損害に対する一切の責任を負わないものとします。

(8)開発環境
Lenovo Miix 2 8 --  Windows 8.1
Python 2.7.9
wxPython 3.0.2.0
py2exeで実行ファイル化

(9)あとがき
仮想ディスクマウント時に DOS窓を表示させないためとはいえ、面倒な導入手順になってしまいました。我ながら自己満足なツールw

« 2015年2月 | トップページ | 2015年4月 »