仮想ディスクをWindows起動時に自動マウント(アタッチ)するシンプルな方法…バッチファイルもスクリプトファイル不要。
バッチファイルやスクリプトファイルなどの追加のファイル無しで、タスクスケジューラを使ってWindows起動時に仮想ディスク(VHD)を自動マウントする方法を試してみました。すっきりシンプルでいい感じです。
YOGA BOOKの内臓ストレージをSDメモリカードで増やそう
年末に購入したYOGA BOOK with Windows、ボチボチっと好みの環境にしようと、あれこれ調べながらセットアップ中です。YOGA BOOKは内臓ストレージ容量64GBであまり多くないため、なるべく空き容量を温存しておきたいところです。
YOGA BOOKのストレージ容量アップのため、128GBのmicroSDメモリカードを入れました。写真データを保存するだけならこれで解決なのですが、Dropboxの同期フォルダもSDメモリカードに設定したかったので、VHD(仮想ディスク化)してアタッチするようにしました。
Windowsの仮想ディスクを手動でアタッチ(マウント)する方法
仮想ディスクはWindowsを再起動すると切断されてしまい、再び「ディスクの管理」から再接続操作をする必要があります。操作そのものは難しくありません(「ディスクの管理」を探すのが難しいぐらいで…)。
「ディスクの管理」からメニューの「操作」→「VHDの接続」と辿ります。
そうすると「仮想ハードディスクの場所」を聞いてくるので、先のSDメモリカード上の仮想ハードディスク実体ファイルを指定します。
これで仮想ディスクがアタッチされて普通のハードディスクと同じよう使うことができるようになります。
たぶん、この先、ほとんどはスリープ、もしかしたら休止状態、1週間に1回ぐらいしか再起動しないような気しかしないので、毎回手動で仮想ディスクのアタッチ操作をしてもいいかな?とも思いましたが、せっかくなので自動アタッチ方法を調べてみました。
DISKPARTコマンドで仮想ディスクをアタッチ
調べてみたところ、DISKPARTというWindows標準の管理用コマンドを使えば仮想ディスクをアタッチすることがわかりました。みなさん、タスクスケジューラで起動時に、仮想ディスクをアタッチするためのバッチファイル(あるいはDISKPARTとスクリプトファイル)を実行するようにされているようです。
皆さん、よくこういった方法を見つけるんだな、と感心します。
DISKPARTはディスクパーティションの作成や管理をするためのコマンドですが(だから「DISK PART(ITION)」なのですね)、仮想ディスクのアタッチ機能も実装されているとのことです。そんなわけで、ちょっと危険レベルは高めのコマンドなので、取り扱い注意です。
このコマンドに、仮想ディスクのファイルパスを設定、そしてアタッチの指示をすれば仮想ディスクをアタッチすることができます。要はDISKPARTコマンドを起動してコマンド入力待ちになったら、以下のコマンドを入力します(同じことがスクリプトファイルでできます)。
attach vdisk
でも、バッチファイルにしろスクリプトファイルにしろ、なんとなくそれ用に新しくファイルを作るのがスマートじゃない気がします。そんなわけで、昔、MS-DOSのバッチファイルで遊んでいた記憶をもとに、シンプルな方法を考えていました。
DISKPARTはコマンドラインを受け付ける(実行すると入力待ちになる)ので、標準出力に先のコマンドを流し込んでやればいいはずです。どうやって書けばいいんだっけ?と、MS-DOS当時のコマンドも併せてGoogle検索していたら、既にやっていらっしゃる方がいました…。さすがですね~。
タスクスケジューラだけで起動時に仮想ディスクをアタッチする方法
というわけで参考に(というか、もろ真似させて)いただいたサイトは、こちらです。なんだ、VHD化から全部説明してくださっています。最初からここにたどり着けば早かった…と、思いつつ、知らなかったことをいろいろと理解できたので良しとします。
タスクスケジューラで「cmd.exe」を「/c」オプションを指定することでコマンドモードで起動します。
さらにecho(標準出力へのテキスト送信)で「SELECT VDISK FILE=”M:\vhd.vhd” && echo ATTACH VDISK」というテキストを標準出力からパイプでDISKPARTの標準入力に送り込むという仕組みです。そうそう、昔はMS-DOSでこんなやつをよく書いていました!懐かしいなぁ。
まずは「タスクスケジューラ」を起動します。タスクスケジューラはコントロールパネルの「システムとセキュリティ」から「管理ツール」内の「タスクのスケジュール」をクリックして起動します。そして「タスクの作成」を選びます。
「タスクの作成」には「全般」、「トリガー」、「操作」、「条件」、「設定」のタブがありますので、それぞれ設定していきます。
まずは「全般」タブです。名前を説明を付け、実行権限などを設定します。名前は「attachVHD」にしてみました。
「トリガー」タブで「新規」をクリックすると「新しいトリガー」設定画面が表示されますので、「タスクの開始」を「スタートアップ時」に変更します。
続いて「操作」タブで「新規」をクリックします。「プログラム/スクリプト」に「C:\Windows\System32\cmd.exe」を指定します。そして「引数の追加(オプション)」にて、「cmd.exe」に渡す引数を設定します。
今回はこんな引数です。
- 2017/02/28追記:上記引数をコピペすると、ダブルクオーテーション(「”」)が全角になってしまうことがあるので、引数として設定するときに4つのダブルクオーテーションを半角に書き換えてご利用ください。
そして「条件」タブで「コンピュータをAC電源で使用している場合のみタスクを開始する」をオフにします。別にAC電源につながっていようがなかろうが、仮想ディスクをアタッチしてくれないと困りますからね。
最後に「設定」タブで、「タスクを停止するまでの時間」をオフにします。
設定を完了すると、最後にユーザーアカウント情報の入力を求められますので、Windowsのログオンに使用しているパスワードを入力して完了です。
それでは試しにYOGA BOOKを再起動してみます。そしてエクスプローラで確認…ドキドキしますが…お、大丈夫、ばっちり仮想ディスクがDドライブにアタッチされていました。
これでmicroSDメモリカード上に、アプリ、DropboxやOneDriveの同期先指定ができるようになります。
【Amazon.co.jp限定】Transcend microSDXCカード 128GB Class10 UHS-I対応 (無期限保証) TS128GUSDU1PE (FFP) – amazon.co.jp YOGA BOOKのmicroSDカード認識最大容量が128GBということで、思い切って最大サイズを購入してみました。 |
今日の一言二言三言
起動時の AUTOEXEC 書いたこと
懐かしく思う初春の朝かな
MS-DOS時代はよくAUTOEXEC.BATに起動時の実行コマンドを書いたり、バッチファイルでいろいろな処理をやらせたりしたものですが、なんだか懐かしいです。
Lenovo YOGA BOOK with Windowsに関する記事は、YOGA BOOK/SiSO-LAB.NETにて一覧を見ることができます。また、一緒に購入した周辺グッズは以下の記事にまとめています。 2016/12/18 Lenovo YOGA BOOK with Windows LTE(SIMフリー)モデル購入。液晶フィルムやケース、IIJmioの格安SIMなどいろいろ♪
Lenovo 2in1 タブレット YOGA BOOK ZA160003JP /Windows 10/SIMスロット/Office Mobile搭載/4GB/64GB/10.1インチ – amazon.co.jp 2つ折りできるちょっと変わった2in1ノート(タブレット色の方が強いかな)Windows 10、LTE通信モデルです。 |
はじめましてmotoと言います。
Yoga book を購入したのでこの記事を参考にというかそのまま実行しましたが、何度も失敗。
記事の中の
プログラム/スクリプト」に「C:\Windows\System32\cmd.exe」を指定します。そして「引数の追加
のところは引数ともに記事からコピーして使ったのですが認識してくれません。
何度も確認しましたが、
合っているようだけど~と止まっています。
浮かんだのは引数は合っているのだろうか?でした。
ここはこのての学がありませんので言われた通りにするしかないもので
何かしら解決法はないでしょうか?
いきなりで申し訳ありません、
よろしくお願いいたします。