gavotte で作った ramdisk をイメージ化して高速バックアップ・リストア
gavotte の wiki に書かれてるのは、xcopy か firefilecopy を使ったやり方がほとんどかと思いますが、ディスク丸ごと復元するのにファイルコピーって若干ナンセンスかなと思い、imagex というディスクイメージ作成・復元ソフトを使って、イメージ化してバックアップ・リストアすることにしました。
結論、バックアップ・リストア共にかなり速度出ます。リストアは特に速いです。なので、バックアップ不要(あるいは稀に必要)なファイルを一度 ram ディスクにぶち込んでイメージを作ってしまえば、あとは起動時に高速リストアするだけで済むので、wiki に書いてあるようなリネージュのゲームデータを……とかって使い方に向いてるかと思います。
ちなみに以下の自分の環境では、ファイル数 6728、ディレクトリ数 1168、総容量 500MB のディレクトリ(eclipse)を25秒程度でリストア出来てます。
- Core 2 Duo 1.8GHz
- メモリ 4GB 物理アドレス拡張
- ramdisk 容量 1GB
以下、自分の備忘録です。あまり詳しくは書きませんので、あしからず。
必要なもの
- Windows XP SP2 以降、自分は SP3
- imagex - Windows AIK に付属
imagex のインストールに修正が必要なんですが、XP の方は SP3 にアップデートするのが手っ取り早いです。SP2 の方は、KB926044 が適用済みである必要があるようですが、自分はすでに SP3 だったので、なんとも言えません。DLページを見る限り、Vista の方も OK なようです。というか元はWindowsサーバ用っぽい。
Windows AIK
↑の URL から 700MB 程度の img ファイルが DL できます。自分は daemon tools でマウントしてインストールしました。
また、自分は msxml6 が無いとか言われましたが、適当にインストールして解決しました。おそらくインストーラが WiX を使ってたりするんじゃないかなー。
使い方
ImageX のコマンド ライン オプション
そこそこ分かってる方は、↑を見れば大体わかると思います。一応、バックアップとリストアは以下のコマンド。
バックアップ
imagex /capture R: C:\ramdisk_backup.wim "RamDisk"
リストア
imagex /apply C:\ramdisk_backup.wim 1 R:
↑のを適当に bat に書き込んで、起動時・終了時にリストア・バックアップを実行するようにしてやれば完了です。
また、imagexは単体で動作します。なので、パスを通したくない方は exe を bat と一緒なディレクトリにコピーしちゃうのも手です。
また、特定のディレクトリ以下をイメージ化することも可能ですので、たとえば「firefox のキャッシュはバックアップしたくないけど、他のファイルはバックアップしたい」といったケースに対応できます。
バックアップ(特定ディレクトリ)
imagex /capture R:\dir ramdisk_dir_backup.wim "RamDisk dir"
余談
自分は eclipse を丸ごと突っ込んでいるのですが、体感できるレベルで動作がサクサクになります。特に違いを感じるのが補完系で、もたつかなくなりますね。自分は終了時にバックアップを走らせていますが、eclipse のプラグイン追加や全体の設定変更は滅多にやることではないので、バックアップは必要な時だけ手動で行う手もあります。
てか imagex がすげぇ軽くて便利。ram ディスクに限らず、使いどころはありそうです。MS 製だから安心だし。