« SONY ウォークマン NW-A16を使ってみた。 (3) | トップページ | カメラベルトホルダー b-grip UNOを使ってみた。 »

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

« SONY ウォークマン NW-A16を使ってみた。 (3) | トップページ | カメラベルトホルダー b-grip UNOを使ってみた。 »

パソコン・インターネット」カテゴリの記事

コメント

はじめまして。配布アプリ使用させていただいています。
x205taを使用しておりマイクロSDをオフライン時のクラウド保管場所やダウンロード保存、nasneのデータ転送先にて使用しています。
再起動時にマウントする手間がなくなり助かってます。
動作快適です。ありがとうございます。

x205ta様

ツールのご利用&動作確認のご報告ありがとうございます。
初めてのプログラム公開だったので、ちゃんと動作しているか不安でした。
x205ta様のコメントを読んでホッとしておりますw

また、何か感想・質問・不具合等があれば、コメントを頂ければ幸いです。
よろしくお願いします。

初めまして。
私もYOGA TABLET 2を先日購入しまして早速試してみました。
非常に便利で助かりました。
ちなみに私は
http://www.forest.impress.co.jp/docs/review/20090915_315592.html
これと組み合わせてサービスとして起動してみました。

setuper様

Windowsサービスとして起動させるソフトのご紹介ありがとうございます。
タスク スケジューラへの登録にくらべ簡単そうですね。

あと、自作ツールが YOGA TABLET 2でも動作しているようで何よりですw
コメントありがとうございました!

無事容量の少ない中華windowsパッドに導入できました!

ただ、毎回起動する度に、マウントされたDドライブが自動再生されるのでコントロールパネルから自動再生しないように設定し、解決しました。

taka様

なるほどー Windowsの設定によっては、マウント時に自動再生が動くことがあるのですね。ツール作成時に色々なテストをしましたが、これは気づきませんでしたw 情報ありがとうございます!

本日ASUSのT90CHI-64GSで仮想化に成功しましたのでお礼と報告をさせていただきます。ありがとうございます!

以前SIMフリーYOGA Tablet2を仮想化した際にはバッチをスタートアップに登録していたため毎回実行の確認をされるのが面倒でした^^;

今回こちらを参考にしましたら全て上手く動作しました。本当にありがとうございました!

GARNET様

ASUS T90CHI-64GSでの動作報告ありがとうございます。
ツールの動作報告をいただけるとホント安心しますw

余談ですが「TransBook T90 Chi」は発売当初から目を付けていた機種なので、羨望のまなざしですw うーん、クラムシェル型 欲しい! (^^;

また、何かありましたらご一報くださいませ~
コメントありがとうございました!

初めまして。
Windows8.1 EPSON Endeavor SY01 ステックPCでの動作を試しました。内蔵ストレージが32GB(eMMC)でしたので、microSDカード(32GB)のHDD化と自動マウントツールで動作致しました。有難う御座いますp(^^))q

aries様

EPSON Endeavor SY01でのご報告ありがとうございます!
ステックPCの動作報告はこれが初ですねw

スティックPCは注目の端末なので、これからスティックPCで、HDD化やツール導入を検討されている方の役に立つと思います。情報ありがとうございました!

はじめまして。
Surface3をWindows10にアップグレードしたところ、SDカード上にOneDriveが
作れなくなったため、なんとか仮想HDDでこれまでと同じように使えないか探して
こちらのページを知りました。
まだ入れたばかりではありますが、今のところ問題なく動いています。
おかげでWindwos10でもSDカードにOneDriveのデータが置けそうです。
本当にありがとうございました!

葉柳様

はじめまして。SDカード上に OneDriveが作れない事象があるのですね。
Windows 10も OneDriveも未導入なので知りませんでした...

仮想HDDに導入してから日も浅いとのことですが、今後も安定して OneDriveが動いてくれるといいですね~

問題解決の糸口に、当ブログの情報がお役に立てて幸いです。また、何か情報があればお気軽に書き込みくださいませ~

コメントありがとうございました!

はじめまして。
Thinkpad10で葉柳さん同様Windows10にアップグレードしてOneDriveフォルダをがSDカードに
指定できない問題が解決しました。
ありがとうございます!

てつ様

Windows 10 + OneDriveの件は、私は何もしていないので、情報を寄せてくれた
葉柳さんに感謝ですねw

何はともあれ、問題が解決して良かったです。
皆さんのお礼コメントを読むと、ブログを開設して良かったと思います!
コメントありがとうございましたー

初めまして
ASUSのX205TAで設定してみたところ「DiskPartにより仮想ディスクファイルが選択されました
仮想ディスクは既にアタッチされています」
というエラーが出ます
以前に他の方法のスケジューラ設定で自動マウントをやっていたのですが、失敗することが多いのでそのスケジューラを削除した上で今回こちらのマウントツールを使わせて頂いたのですが…
エラーは出ますがエラーの内容通りちゃんとマウントはされています
何か改善方法はあるでしょうか?

DEM様

はじめまして
“以前の方法”でも失敗しているとの事なので、まずタスクスケジューラが怪しいと思います。
ツールは『マウント失敗時のリカバリ(再実行)処理を行っていない』ので、マウントが複数回 実行されることはありません。

原因は不明ですが、以下の方法をご確認ください。

1.バッチファイル起動
 仮想ディスクをバッチファイルでマウントする方法があります。
 バッチをスタートメニューから起動して問題がなければ、タスクスケジューラが
 疑わしいです。環境や設定の見直しをお願いします。
 http://digit.air-nifty.com/blog/2014/04/windowslenovo-m.html
 (■起動時にマウントの項目を参照)

2.高速スタートアップの無効化
 Windows 8の「高速スタートアップ (ハイブリッド・ブート)」を一時的に無効にして、
 動作が改善するか確認して下さい。
 http://121ware.com/qasearch/1007/app/servlet/qadoc?QID=015493

ご不便をおかけしますが、よろしくお願いします。

丁寧な回答ありがとうございます
アドバイスを元に一度マウントツールのスケジューラも無効にして再起動したところ、自動的にマウントされるはずのないVHDが自動でマウントされました
次に高速スタートアップを無効にして、再起動してみると自動でマウントすることはなくなったので、今回の原因は以前使っていたスケジューラと高速スタートアップとにあったみたいです
ただ、そのあとに改めてマウントツールを有効化して再起動してみると「Secure Boot Violation」の文字が…詳しくは知らないのですがBIOSのセキュリティー機能みたいですね
なぜこのエラーが出たかは分かりませんが、今はBIOSの設定を変えて普通に起動出来ています もちろんVHDの方もエラーは出ずにマウント出来ています
ただ気分的にはPCを初期化して、改めてマウントツールの設定をしたいなぁなんて思っています
長くなってしまいましたが本当に助かりました ありがとうございました
これからもこのマウントツールを使い続けたいと思います

DEM様

不具合が解消されて何よりです。ただ、BIOSエラーも出たようなので、他にも何か不具合を抱えているかも知れませんね。そのため「PC初期化案」は個人的に賛成ですw

今回ご報告いただいた内容は、同じエラーに遭遇した人の助けになります。
ご連絡いただき有り難うございました。

また、何かありましたらご一報くださいませ。
よろしくお願いします。

同じことを考え、同じようなツールを作成しようとしたことがありますが…。

私の場合はタスクスケジューラに登録する内容を、batファイルからbatファイルへのショートカットに変更し、ショートカットのプロパティで「実行時の大きさ」を「最小化」にして手抜き解決してしまいました。

コマンドプロンプトは起動しますが、タスクバーのみなのでさほど気になりません。
よかったらお試しください。

Aki様

有益な情報ありがとうございます。
紹介いただいた方法を使えばバッチ起動時しても気になりにくくなりますね~
手抜きでも何でも「仮想ディスク」を使うメリットを享受できれば良いと思います。
人間がラクしてナンボのパソコンですからw

Windows 10のタブレットで使わせて頂いております。
高速スタートアップを有効にしたままだと、上の方と同じく既にマウント済みのエラーが出ますね。
素でマウント状態を覚えるならこの手の操作をしなくてもいいのかとツールを無しにすると、たまにアンマウントされてしまうのが悩みどころ。
結局、高速スタートアップを無効にして起動時間が5~10秒増えることを我慢することにしました。

Welt様

ご指摘ありがとうございます。
VHDマウントツールですが、高速スタートアップに対応したバージョンをリリースしました。
手元に Windows 10がないので動作確認はできていませんが、よろしければお試しください。

[VHDマウントツール Ver0.2]
http://digit.air-nifty.com/blog/2015/10/vhd-2-c913.html

お手数をおかけしますが、よろしくお願いします!

修正ありがとうございます。
Windows 10でも高速スタートアップを有効にしたままエラーが出ずに使えるようになりました。
ログにも「VHDディスク(パス)はマウント済みのため処理を中止しました。」とあるので問題は無いようです。

Welt様

早速の動作確認ありがとうございます。
何とか Windows 10でも動いているようですね。

こちらでもしばらく様子を見てみます。
ツールの安定性の確認がとれ次第、現在の手順も修正予定です。

ご報告ありがとうございました。

中華タブで使用しています。
正常動作しています、感謝です!

kd様

はじめまして。
VHDマウントツールへの感想ありがとうございます!

皆様のコメントを励みに、今後も頑張りたいと思います~

LENOVO YOGA Tablet2にて、仮想化に成功しましたのでご報告させていただきます。ありがとうございました。

KSIN様

仮想化の成功おめでとうございます!
ツールの動作報告もありがとうございます!!

何か不都合があればご連絡くださいませ。
ヨロシクお願いします。

VHDマウントツール、キングジムのポータブック(Win10)にて使わせていただきました。
バッチファイルと迷いましたが、余計な画面が出ないのと、ディスクマウント済みかどうかのチェックがなされるということで、こちらを選ばせていただきました。
今のところ、正常に動いています。

また、勝手ながらブログの方でも紹介させていただきましたので、合わせて報告させていただきます。

Seg_faul様

はじめまして。ポータブックでの動作報告ありがとうございます。
あとブログでの掲載も全然OKですw 

ブログの方も見せていただきましたが、「ドライブ非表示」まで言及されていて、いたれりつくせりですね〜
ツール開発当時「ドライブ非表示」機能も載せる予定だったのですが、開発&検証する時間が取れなかったので諦めました。(^^;;;

今回はご連絡いただき、ありがとう御座いました。

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: VHDマウントツールを作ってみた。:

« SONY ウォークマン NW-A16を使ってみた。 (3) | トップページ | カメラベルトホルダー b-grip UNOを使ってみた。 »