WindowsでUNIXの様にバックアップ時のみハードディスクをマウントしてバックアップするには
現在僕は、左の「 I-O DATA USB 2.0/1.1対応 外付型ハードディスク 320GB HDC-U320」をつかっています。
USBの320GB外付けのハードディスクです。バックアップ専用に利用しています。これに毎日定時に自動で大切なファイルをBunBackupをつかってミラーリングしています。このハードディスク1万6千円くらい(下の記事に書いてました1万1千円で買ってますね)で買ったと思います。今はこのモデルは製造中止になっていて下の後継モデルになっています。約半額の7千円台で購入できます。更に現在はこれとほぼ同じ金額で下の方の「HDCN-U1.0L」が買えちゃいます。なんと1TB、いやんなっちゃいますねw。
□関連:USB外付けハードディスクI・O DATA HDC-U320 320GB を買った – KUMA TYPE
https://blog.kumacchi.com/2007/10/usbiodata_hdcu320_320gb.html
I-O DATA機器 USB 2.0/1.1対応 外付型ハードディスク 320GB HDCN-U320
320GBで7千円台の外付けハードディスクです。
アイ・オー・データ機器 USB 2.0/1.1対応 外付型ハードディスク HDCN-U1.0L
1TBで1万7千円台の外付けハードディスク。
話がそれましたけど、バックアップは良いんですけど、僕のパソコンは基本電源入りっぱなしなのですが、そうするとハードディスクの電源も入りっぱなしなんですね。で、ファンレス設計の所為もあってこれが結構熱を持ちます。電気代ももったいないですしね。使うときだけ電源入れたいわけです。夏場は特に暖房入れているみたいで熱いんですよね。
とりあえず、手動であれば電源を切ることが出来ます。
※おやくそく
自己責任でお願いします。基本的にはWindows 2000 SP4とハードディスクHDC-Uの話ですが、XPや他のUSB外付けハードディスクでもいけるとは思います。未確認ですけど、XPは後述する他の方法があるのでそっちがお手軽だとは思います。他のハードディスクでも同様の方法でいけると思いますが、未確認です。
デバイスマネージャで無効にしてあげる事です。
デバイスマネージャでUSB(Universal Serial Bus)コントローラを見ると「USB大容量記憶装置デバイス」っていうのがあります。いくつもある場合どれが目的のハードかわからないのでプロパティーなどをみて判断します。
目的の場所を選んで右クリックで「プロパティ」を選ぶと見ることができます。下の画像の場合「HDC-U」と表示されているので目的のハードディスクだという事がわかります。まー実際に「無効」にしてみればわかるのですが。
目的にハードディスクが限定できたら実際に「無効」にして見ます。選んで>右クリック>無効 という手順で無効にする事が出来ます。うちの場合ハードディスクのLEDランプが消灯するので停止を確認する事が出来ます。音や少ししてから触ってみて冷たくなっている事などで停止を確認する事ができるかと思います。
ちなみに、「ディスクドライブ」の中に表示されている「I-O DATA HDC-U USB Device」を無効にしてもドライブは停止しません。エクスプローラーのドライブの一覧からは消えて利用できなくなりますが電源は切れないので注意してください。
停止後に逆に「有効」にすることでハードディスクの電源を入れる事が出来ます。これでとりあえず手間さえ惜しまなければ利用するときだけUSBの外付けハードディスクに電源を入れて利用する事が出来ます。パソコンを再起動してもハードディスクの電源が勝手に入ったりすることもないので便利です。
とりあえず、手間さえ惜しまなければこれでいいのですが、うちの場合、パソコンの電源は入れっぱなしで、バックアップも毎日定時に自動で行なっているわけです。なので、手動でハードディスクの電源を入れたり切ったりでは要件をみたさないわけです。
UNIX系のOSの場合別ハードディスクにバックアップを取る場合シェルを書いてバックアップ時のみマウントしてrsyncしたりtarで固めてコピーしたりするわけですが、こういう風にやりたいわけです。Windowsでバックアップ時のみハードディスクの電源を入れてバックアップが終わったらまた電源を切りたいわけです。
で、調べてみました。前にも調べた事があるのですが、見つからなかったのですが今回すんなり解決策が見つかりました。
マイクロソフトから配布されているDevConというコマンドライン ユーティリティを利用します。コマンドライン版のデバイスマネージャです。
□デバイス マネージャとして機能する DevCon コマンド ライン ユーティリティ
http://support.microsoft.com/kb/311272/ja
上記のページの下記の部分からDevConパッケージをダウンロードします。
devcon.exeというファイルがダウンロードされます。実行すると解凍先を聞かれるので適当なフォルダを指定して解凍します。
参照ボタンで解凍先を指定できないようなので先にdevcon.exeを適当なフォルダに移動して。下のように解凍先を「.」(カレントフォルダ(現在のフォルダ))を指定して解凍するのがいいと思います。
解凍するとi386とia64というフォルダが出来ますが通常はi386のフォルダの中に入っているdevcon.exeを利用します。
何処からでもdevconを使える様にパスを通すかよくわからなければC:\WINNTやC:\Windowsフォルダにdevcon.exeをコピーしておきます。
コマンドプロンプトを起動します。(Windows 2000の場合はスタート>プログラム>アクセサリ>コマンドプロンプト)
↓こういうやつです。
出結論から書いてしまうとうちのハードディスクの場合、コマンドプロンプトで下記のコマンドを入力する事でハードディスクを無効、有効切り替えることが出来ました。
無効
devcon disable "USB\Vid_04bb&Pid_010f&Rev_0734"
有効
devcon enable "USB\Vid_04bb&Pid_010f&Rev_0734"
基本的な使い方はコマンドは前述のマイクロソフトのページを見ていただくとして、使い方に割と癖があるのでそこらへんを書いておきます。
有効・無効を切り替えたいハードウェアのハードウェアIDをパラメータとして渡してハードウェアの有効・無効を制御しますが、このハードウェアIDの割り出し方がよくわからなかったのと、パラメータとして渡す方法がよくわからなかったです。
■ハードウェアIDの割り出し方
コマンドプロンプトで以下のように入力します。これでUSBという文字を含んだハードウェアHDをリストします。
C:\>devcon hwids *USB*
または
C:\>devcon hwids *
すると以下のようにズラズラ表示されます。
わかりにくい場合は
C:\>devcon hwids *USB* > hwids.txt
または
C:\>devcon hwids * > hwids.txt
とでも入力してファイルにリダイレクトしてテキストエディタで眺めるなどして下さい。
※以下の説明はI-O DATA UDC-Uドライブの説明にないります。ドライブによってこの文字列は異なりますので自分の利用しているドライブ環境に合わせた解析が必要です。参考にはなると思います。
下の様な部分があります。いかにもこれがハードウェアIDなのですが、正確にはこれではありません。
これは、通常のデバイスマネージャでいうところの「ディスクドライブ」の項目に当たるのでこのハードウェアIDを利用してもハードディスクを停止する事が出来ません。ここに表示されている値からUSB(Universal Serial Bus)コントローラないのハードウェアIDを割り出します。
USBSTOR\DISK&VEN_I-O_DATA&PROD_HDC-U&REV_7.34\00000001401104F80&0
Name: I-O DATA HDC-U USB Device
Hardware ID’s:
USBSTOR\DiskI-O_DATAHDC-U___________7.34
USBSTOR\DiskI-O_DATAHDC-U___________
USBSTOR\DiskI-O_DATA
USBSTOR\I-O_DATAHDC-U___________7
I-O_DATAHDC-U___________7
USBSTOR\GenDisk
GenDisk
Compatible ID’s:
USBSTOR\Disk
USBSTOR\RAW
16 matching device(s) found.
00000001401104F80という部分に注目します。
この部分をキーワードにしてリダイレクトしてファイルに保存したリストを検索して見ると下記の部分が該当しました。これが目的のハードウェアIDの様です。
そういうわけで最初は下記の様に入力してみたのですがうまくいきませんでした。説明ページにも余り詳しく例などがかかれていないので困りましたが、いろいろ試してみた結果。「””」ダブルクォーテーションでくくるとうまくいくことが判りました。
devcon disable USB\Vid_04bb&Pid_010f&Rev_0734
結果下のようになります。
devcon disable "USB\Vid_04bb&Pid_010f&Rev_0734"
これでハードディスクが停止する事を確認しました。
devcon enable "USB\Vid_04bb&Pid_010f&Rev_0734"
これでハードディスクが動き出します。
す、すばらしぃ~~~。ヽ(´ー`)ノ
※あくまでもこれはうちのハードディスクのハードウェアIDなので自分の環境で利用する場合は自分のハードディスクIDを割り出す必要があります。
これでバックアップ時にだけ外付けのUSBハードディスクを動かして(電源ON)バックアップが終わったら止める(電源OFF)する事ができそうじゃないですか、バックアップソフトがバックアップの前後に前処理と後処理用にプログラムを起動できるといいのですが、BunBackupはできなそう(?)なので、とりあえずバッチを書いてやることにしました。
で、書いたのはこれ、たった3行、プログラムのパスを書いただけw。
BATCH.BAT
devcon enable "USB\Vid_04bb&Pid_010f&Rev_0734"
C:\k1\道具箱\BunBackup\BunBackup.exe /AUTO:"C:\k1\道具箱\BunBackup\秀丸メール.lbk"
devcon disable "USB\Vid_04bb&Pid_010f&Rev_0734"
□バッチファイルの解説
1行目で、ハードディスクを有効にしています。
2行目で、BunBackupを起動して定義ファイルに沿って自動バックアップ
3行目で、ハードディスクを無効にしています。
このバッチファイルを、タスクに登録して自動的に毎日起動するようにします。タスクの登録方法などは下記の記事を参考にして下さい。
□関連:ERUNTでレジストリバックアップしてて助かった件 – KUMA TYPE
https://blog.kumacchi.com/2008/09/erunt.html
さて、これで実際にうまく行くかやってみたところ、ばっちりうまくいきました。ちゃんとバックアップ時にハードディスク電源が入ってバックアップが終わると電源が切れます。ずっとアチチだったハードディスクが、バックアップ時以外はヒンヤリつべたくなっています。これで地球温暖化に終止符を打てそうです。(嘘です。)
ただ、バッチの実行時にコマンドプロンプトが表示されるのがかっこ悪いけど、確か設定で起動時アイコン化にもできると思うのでそういう風に対応すればいいと思います。
そういうわけで、DevConを利用したハードディスクの有効・無効切り替えでしたが、他にもDevConをつかって次第で色々出来そうですね。
ソースコードも公開されているようなので、バックアップソフト自体が組み込んでくれるとうれしいのですけどね。
あと、Windows XpやVistaではIO-DATAの場合下記の「I-O Drive Center」というサポートツールがあるようです。ハードディスク未使用時はハードディスクの回転を止める様にできる省電力モードを設定できるツールです。下の記事が参考になると思います。
□関連:窓の杜 – 【NEWS】接続ドライブをサイドバー上へ一覧表示できるガジェット「I-O Drive Center」
http://www.forest.impress.co.jp/article/2008/05/14/iodrivecenter.html
下記からダウンロードする事が出来ます。
□ダウンロード:サポートライブラリ|アイ・オー・データ機器 ~パソコン・コンピュータ周辺機器ならお任せください~
http://www.iodata.jp/lib/product/i/2036.htm
そういうわけで、XP以降な人でIO-DATAのドライブを利用している場合はお手軽に「I-O Drive Center」を利用するのがよろしいかと思います。他のメーカーでも同様のツールが配布されているところもあるのではないでしょうか?
蛇足ですが、
残念ながらWindows 2000には対応していません。対応もXP・Vistaとなっています。実際インストールしてみるとインストールする事は出来ますが正常に動作しません。
起動はしますが、ドライブのリストが出てきません。KDWをつかってみると一応下記の様にドライブリストが出る段階までは動かす事が出来ましたが、省電力モードに設定すると失敗したとエラーになりますw。ダメですね。まーいいですけど。
タグ :