Vista x86 で Gavotte RAMDisk を使う

Gavotte RAMDisk を使うと OS の管理外の領域も RAM ディスクとして使えるのだが、これに関する日本語の情報はほとんど XP 向けのようだ。XP と Vista ではいろいろ違う点があって、今回のセットアップでは少々ハマった。ここに Vista で Gavotte RAMDisk を使う手順をまとめておく。

  1. http://www.chweng.idv.tw/swintro/ramdisk.php から rramdisk.zip をダウンロードして任意のフォルダに解凍する (ここでは仮に D:\Gavotte_RAMDisk とする)
  2. ram4g.reg をダブルクリックしてレジストリに追加する
  3. ramdisk.exe を右クリック → プロパティ → 互換性 → [管理者としてこのプログラムを実行する] にチェックを入れる
  4. ramdisk.exe を実行 → [Install Ramdisk] を押してしばし待つ*1 → 容量を設定して [OK]
  5. 次のコマンドスクリプトを作って、管理者として実行する。この作業は RAM ディスク作成直後または再起動直後の空っぽな状態で行う
CD /D D:\Gavotte_RAMDisk
FORMAT Z: /FS:FAT32 /V:RamDisk /X
MKDIR Z:\Temp
 他にも必要なディレクトリがあれば作る
 (Vista の MKDIR コマンドは中間フォルダも作ってくれる)
rdutil Z: registry
@pause
RMDIR /S /Q %WINDIR%\Temp
MKLINK /D %WINDIR%\Temp Z:\Temp
RMDIR /S /Q %Temp%
MKLINK /D %Temp% Z:\Temp

再起動して、ちゃんとフォルダが再現されてるか確認。

XP と Vista の違い

Vistaシンボリックリンクを作れるので、環境変数やアプリの設定をいじらずに済ませることができる。また、RAM ディスクを NTFS でフォーマットする必要もない*2
PAE は私の環境ではデフォルトで有効になっていた。しかし コントロールパネル\システムとメンテナンス\システム を見ても「物理アドレス拡張」とは書いてない。もし無効になってるようだったら、管理者権限のコマンドプロンプトで次のコマンドを実行して再起動する。Vista に boot.ini は存在しない。

bcdedit /set pae ForceEnable

UAC の存在を忘れてうっかり一般ユーザで実行すると、 ramdisk.exe は何もできない。

Firefox のキャッシュフォルダの設定 (9/1 追記)

プロファイルフォルダに Cache という名前のシンボリックリンクがあると、Firefox は次回起動時にそれを Cache.Trash\Trash フォルダへ隔離して HDD 上に Cache フォルダを再作成してしまう。やはりキャッシュを RAM ディスクに置くには Firefox 側の設定を変えなきゃダメみたい。その手順は次のとおり。

  1. Firefox で about:config を開く
  2. 文字列型のキー browser.cache.disk.parent_directory を新規作成し、キャッシュフォルダの親フォルダを指定する
  3. Firefox を再起動する

*1:ここで "Failed" とか言われたら本当に管理者権限で実行してるか確認しる

*2:さっきのコマンドスクリプトNTFS じゃなくて FAT32 にしたのはパーミッションがらみの面倒を避けるためでもある。シンボリックリンクの代わりにジャンクションを作る場合は NTFS じゃなきゃダメかも