Windows 7 64bitでRamdiskをシンボリックリンクで使う
Ramdiskはメインメモリにデータを置いてストレージとして使うことで驚異の読み書き能力を実現するもので、メモリが非常に安くなっている今、オススメなのですが、Windows 7 64bitでは少しやりづらかったので導入の仕方を解説します。
RAMディスクの超高速読み書き性能
まずは↓の画像をご覧ください。

驚異の速度です。
これはGavotte RamdiskというRamdiskのソフトを使って、Windows 7 Ultimate 64bit でメモリ16GB中の11GBを使ったRamdiskドライブの速度です。

これはCFD CSSD-S6M64NMQという64GBのSSDの測定結果ですが、遥かに凌駕しています。
このSSDはそこそこ速い方のSSDですが、HDDよりは全然速いものの、Ramdisk相手では勝負になりません。
ちなみに4kの書き込みが遅いのはXPでフォーマットしたからです。7でフォーマットし直せば改善すると思いますが、システムボリュームを含んでいるのでそのままにしてます。
大事なのは読み込み性能なのでいいかなと。
この解説記事の概要と注意点
この記事ではWindows 7 64bitでGavotte Ramdiskというソフトとシンボリックリンクを使ってRamdiskを活用する方法を説明します。
Ramdisk用のソフトは他にもあるようですが、VSuite Ramdisk Free Editionは4GBまでしか作れず、BUFFALOのRAMDISKはメモリがBUFFALO製である必要があり、ERAM改も使えるようですが、どうも導入が面倒そうだったので(どっちもどっちですが)今回はGavotte Ramdiskを使ってみました。
ただしRamdiskは導入を間違えるとOSが簡単に起動しなくなるので、バックアップした上で自己責任の上で試してください。Windows 7にはシステムボリュームのバックアップと復元機能がありますし、フリーソフトのバックアップソフトもありますし、起動しなくなってもWindowsが勝手に修復してくれることもあります(何度もお世話になりました)。
あとセキュリティ上の注意点として、ドライバ署名の強制を無効にする必要があります。詳しくは後述しますが、完全に自己責任ですのでご注意ください。
あと、Gavotte Ramdiskをインストールしたら起動時間が20秒ほど伸びました。「Windowsを起動しています」の画面で待たされます。Ramdiskが頑張っているんでしょうか。私は我慢してますが、頻繁に再起動が必要な際はダルそうです。
先に参考にしたサイトさんを挙げておきます。
- Gavotte Ramdisk まとめWIKI
- あっち行ったり、こっち来たり。: Windows 7 x64にてGavotte Ramdiskを利用する
- はいじん☆ちゃんねる: Vista x64でGavotte Ramdiskを使う (その2)
- day: Windows 7 RC を削除する方法:bcdedit - Windows Vista とのデュアルブート
- ぺんたん info: Windowsでシンボリックリンクを使う方法
Gavotte Ramdiskの導入
私はGavotte Ramdisk まとめWIKIからDLしたGavotte_RAMDisk_1.0.4096. 5 _20081130を使いました。ちなみに、前バージョンのGavotte RAMDisk 1.0.4096. 4 (2008-01-25)は現在ダウンロードできないようです。

←展開するとこのようになっています。
x64フォルダに addswap.exe と rdutil.exe があるのでこれでこのフォルダのものを上書きします。多分必須ではなく、やらなくても大丈夫ですが。
次に rramdisk.sys を削除するかリネームして、rramdiski64.sys をrramdisk.sys にリネームして、これが使われるようにします。
すると↓のようになります。空のx64フォルダはあってもなくても。

そしたら、ram4g.reg を実行してレジストリに情報を登録します。
ここからデバイスマネージャを使ってRamdiskをインストールするのですが、長くなってしまう上にはいじん☆ちゃんねるさんの記事で画像付きで超わかりやすく解説されているのでそちらをご覧ください。
やることをざっと書くと、デバイスマネージャの一番上に表示されているコンピュータ名を右クリックから「レガシ ハードウェアの追加」でダイアログを出し、rramdisk.inf を指定してインストールします。
無事ダイアログが終了したら、ramdisk.exe を右クリックして「管理者として実行」で起動します。

注意点は画像の通りです。
Disk Sizeはドロップダウンからは最大3Gまでしか指定できませんが、直接10Gなどと入力すればOKです。
Media Typeは変更しないでください。RAM Driveにするとバグることがあるようです。
言うまでもないですが、OS用のメモリまでとらないように。私は5GBをOS用に残しました。
このままではまだ使えないですが、あと少しです。
ReadyDriver Plusを使って強制デジタル署名を回避
Vista以降、Microsoftはデジタル署名を重視しており、当然Gavotte Ramdiskのような危ないソフトがそれを得られるはずがありません。そこでWindows起動時にオプションから「デジタル署名の強制を無効」にする必要があります。
するとGavotte Ramdiskは晴れて使えるようになるのですが、当然セキュリティ上は望ましくありません。私はそれでもRamdiskをとりましたが、ここは各自判断してください。
デジタル署名の強制を無効にするには、PC起動時に<F8>を連打して詳細オプションを出して、「ドライバ署名の強制を無効にする」を選んで起動すればOKです。
しかし毎度手動で<F8>から起動するのは大変面倒なので、この作業を自動でやらせます。
ReadyDriver Plus(私はv1.2を使用)をDLしてインストールします。
また他力本願で恐縮ですが、はいじん☆ちゃんねるさんの記事で画像付きで超わかりやすく解説されているのでそちらをご覧ください。
インストールの際の注意点は2点だけで、インストール先を「C:\BOOT」から変更しないことと、複数のOSが存在してマルチブートできる場合はOSを選ばせる必要があるので、正しい<↑>キーのストローク数を指定することです。大抵の人はOSは1つでシングルブートなので「1 Stroke」から変更する必要はありません。
正しくReadyDriver Plusをインストールできたら、早速再起動して試してみましょう。「デジタル署名の強制を無効」にできればRamdiskを認識できると思います。
もしも誤ってReadyDriver Plusを重複インストールしてしまった場合
基本的にこのソフトは重複インストールできないようですが、私は一度やってしまいました。すると起動時に複数のReadyDriver Plusが並ぶことになり機能しなくなります。アンインストールを実行すると最後にインストールした1つだけブート画面から削除するので、残りはアンインストールからは削除できません。
XPまでは boot.ini で比較的簡単にいじれたのですが、Vistaからは boot.ini が存在せずに bcdedit.exe から行うのですが、複雑になっています。
またしても他力本願で恐縮すぎるのですが、dayさんの記事で画像つきで丁寧に解説されているのでそちらをご覧ください。でも少しだけ手順を書いておきます。
まずコマンドプロンプトを管理者として実行して起動、「bcdedit /v」と入力して<Enter>(鍵括弧は不要)、存在するブートローダーとその情報を確認します。ReadyDriver Plusのブートローダーが見つかったら、その identifier を確認、「bcdedit /delete {identifier}」と入力して<Enter>すると削除されます。これで手動でReadyDriver Plusの登録を消すことができます。
Windows Vista/7でのシンボリックリンクの使い方
Windows XPまでは「リンク作成シェル拡張for Windows 2000/XP」があって簡単にシンボリックリンクを作れたのですが、Vista以降のOSには対応していません。そのためコマンドプロンプトから行う必要があります。
詳しくはぺんたん infoさんの記事をご参照願いたいのですが、難しくないので簡単に説明します。
書き方は以下の通りです。
ファイルの場合 mklink "作るリンクの名前" "リンク先(本体の場所)" フォルダの場合 mklink /d "作るリンクの名前" "リンク先(本体の場所)"
サンプルとして、Dドライブへのリンクを「C:\Users\ユーザー名」フォルダの中に「Documents」というフォルダ名で表示する方法。
mklink /d "C:\Users\NAME\Documents" "D:\"
すると、「C:\Users\ユーザー名」フォルダの中に「Documents」という名のDドライブへのリンクが現れ、クリックするとDドライブ直下のフォルダ・ファイルが表示されます。もちろん「NAME」はアカウント名に適宜変更してください。
「作るリンクの名前」として、パスに加えリンク名まで指定していることに注意してください。「C:\Users\NAME\」だと作成できません(というか、NAMEという名前のリンクを作ろうとして、既存のフォルダなのでエラーが出る)。「リンク作成シェル拡張for Windows 2000/XP」を使っていた人は勘違いしやすいかも(リンク名を任意で変更できる)。
なぜこのサンプルを書いたかというと、XPまで私はマイドキュメントとして大容量HDDのルートディレクトリ(D:\など)を指定して、HDD1台を丸ごとマイドキュメントとしていたのですが、Vistaからはドキュメントを複数指定するようになり、その際は「C:\Users\NAME\Documents\xxxx」のようになり、XPまでの「D:\xxxx」とパスが変わってしまってショートカットが機能しなくなってしまったので、シンボリックリンクで対応したというわけです。
長いですね、すみません。しかし管理にこだわりのあるユーザーには由々しき事態で、シンボリックリンクがなければ大変なことになってました。
ところで毎度コマンドプロンプトで入力するのも大変なので、batファイルを利用すると楽です。まずtxtファイルとしてコマンドラインを書いて、拡張子をbatに変更したら実行すればOKです。batでも右クリックから編集できます。シンボリックリンクは切ることがあるので、また入力し直すのはあまりに面倒ですからね。
複数行も可能です。例として、私のOblivion用のファイルのシンボリックリンク作成batです。
mklink "S:\Data\All Natural.bsa" "R:\All Natural.bsa" mklink "S:\Data\alllll61-Druaga the Sword of URUK-Fatina.bsa" "R:\alllll61-Druaga the Sword of URUK-Fatina.bsa" mklink "S:\Data\Alluring Potion Bottles v3.bsa" "R:\Alluring Potion Bottles v3.bsa" mklink "S:\Data\Alluring Wine Bottles.bsa" "R:\Alluring Wine Bottles.bsa" mklink "S:\Data\ArchiveInvalidationInvalidated!.bsa" "R:\ArchiveInvalidationInvalidated!.bsa" mklink "S:\Data\BSA Loader - FCOM Meshes.bsa" "R:\BSA Loader - FCOM Meshes.bsa" mklink "S:\Data\BSA Loader - FCOM Textures 1.bsa" "R:\BSA Loader - FCOM Textures 1.bsa" mklink "S:\Data\BSA Loader - FCOM Textures 2.bsa" "R:\BSA Loader - FCOM Textures 2.bsa" mklink "S:\Data\BSA Loader - QTP3RR Meshes.bsa" "R:\BSA Loader - QTP3RR Meshes.bsa" mklink "S:\Data\BSA Loader - QTP3RR Textures 1.bsa" "R:\BSA Loader - QTP3RR Textures 1.bsa" mklink "S:\Data\BSA Loader - QTP3RR Textures 2.bsa" "R:\BSA Loader - QTP3RR Textures 2.bsa" mklink "S:\Data\Harvest [Flora].bsa" "R:\Harvest [Flora].bsa" mklink "S:\Data\HRMHorseCommands.bsa" "R:\HRMHorseCommands.bsa" mklink "S:\Data\HumantouchNPC.bsa" "R:\HumantouchNPC.bsa" mklink "S:\Data\Oblivion - Misc.bsa" "R:\Oblivion - Misc.bsa" mklink "S:\Data\Oblivion - Sounds.bsa" "R:\Oblivion - Sounds.bsa" mklink "S:\Data\Oblivion - Voices1.bsa" "R:\Oblivion - Voices1.bsa" mklink "S:\Data\Oblivion - Voices2.bsa" "R:\Oblivion - Voices2.bsa" mklink "S:\Data\P1DseeYouSleep.bsa" "R:\P1DseeYouSleep.bsa" mklink "S:\Data\TreasureChest.bsa" "R:\TreasureChest.bsa"
これはRamdiskであるRドライブにあるファイルを、SSDであるSドライブのDataフォルダ内にシンボリックリンクとして登録するものです。作るのは少々面倒ですが、一度作れば後はダブルクリックするだけですので。