gavotte で作った ramdisk をイメージ化して高速バックアップ・リストア

gavotte の wiki に書かれてるのは、xcopy か firefilecopy を使ったやり方がほとんどかと思いますが、ディスク丸ごと復元するのにファイルコピーって若干ナンセンスかなと思い、imagex というディスクイメージ作成・復元ソフトを使って、イメージ化してバックアップ・リストアすることにしました。
結論、バックアップ・リストア共にかなり速度出ます。リストアは特に速いです。なので、バックアップ不要(あるいは稀に必要)なファイルを一度 ram ディスクにぶち込んでイメージを作ってしまえば、あとは起動時に高速リストアするだけで済むので、wiki に書いてあるようなリネージュのゲームデータを……とかって使い方に向いてるかと思います。
ちなみに以下の自分の環境では、ファイル数 6728、ディレクトリ数 1168、総容量 500MB のディレクトリ(eclipse)を25秒程度でリストア出来てます。


以下、自分の備忘録です。あまり詳しくは書きませんので、あしからず。

必要なもの

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"
リストア(特定ディレクトリ)
mkdir R:\dir
imagex /apply ramdisk_dir_backup.wim 1 R:\dir

ディレクトリを自動で作ってくれたりはしないので、mkdir してます。多分ですが、append とか使えばスマートに書けるんじゃないでしょうか。

余談

自分は eclipse を丸ごと突っ込んでいるのですが、体感できるレベルで動作がサクサクになります。特に違いを感じるのが補完系で、もたつかなくなりますね。自分は終了時にバックアップを走らせていますが、eclipseプラグイン追加や全体の設定変更は滅多にやることではないので、バックアップは必要な時だけ手動で行う手もあります。
てか imagex がすげぇ軽くて便利。ram ディスクに限らず、使いどころはありそうです。MS 製だから安心だし。

参考

Gavotte Ramdisk まとめWIKI - アットウィキ
ImageX | メディア with Microsoft


追記:皆既日食的な意味で eclipse ネタを挙げようと思ってたのに忘れてた……。もういいよ、はいはい(ふて寝