※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

下記内容はこちらの方法でRAMディスクを作成したことが前提となります。


NTFSフォーマットに変更する

作成されたRAMディスクはFAT32でフォーマットされています。
1ファイルあたりのファイルサイズの制限などを考えるとNTFSに変更しておくのが良いと思われます。

コマンドプロンプトを開き、下記プログラムを実行することでNTFSフォーマットに変更し、かつ再起動後もその状態が維持されます。
FORMAT /FS:NTFS /Q /V:RAM /A:512 R: /Y
CHKDSK /L:2048 R:
CACLS R:\ /G BUILTIN\Adminstrators:F
MKDIR R:\TEMP
rdutil R: registry

「saving to registry...done.」と表示されれば完了です。
「packed data too large (>1M)」と表示された場合は失敗しています。

「packed data too large (>1M)」の対処方法1

「packed data too large (>1M)」で失敗した場合は、以下を試してください。
  • PCを再起動し直後に上述NTFS変換を行う
RAMディスクに書き込みが行われるとサイズが増えてpackに失敗します。そのためPCの起動直後にNTFS変換を実施してください
また1回失敗しても何回か再起動を繰り返しているとそのうち成功することがあるようです

「packed data too large (>1M)」の対処方法2

それでも「packed data too large (>1M)」で失敗する場合は下記を試してください。
  • OS起動時に自動で(1回だけ)NTFS変換を行うように仕込む
WindowsはOS起動時(正確にはユーザログイン時)に自動で一回だけ指定したプログラムを実行する機能があります。
(1回だけしか実行しないのは、1回実行すれば以降は毎回変換する必要がないためです)
その方法は以下のとおりです。

  • これからご紹介する方法はレジストリを編集するため、最悪Windowsが起動できなくなります。コマンドの実行は自己責任とし、当方は一切の責任を持ちません。

以下の内容をram.batという名前で保存する。
cd \Program Files\Gavotte
FORMAT /FS:NTFS /Q /V:RAM /A:512 R: /Y
CHKDSK /L:2048 R:
CACLS R:\ /G BUILTIN\Adminstrators:F
MKDIR R:\TEMP
rdutil R: registry
pause
※最後のpauseは実行結果を確認するためです
※メモ帳で作成する場合は、拡張子が.txtにならないよう注意してください

続いてram.batを「C:\Program Files\Gavotte」に置く。

「ファイル名を指定して実行(R)」を選択し「regedit」と入力後、Enterを押す

レジストリエディタが開くので下記に移動する
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

そこで右クリック「新規(N)」>「文字列値(S)」を選択する

「新しい値 #1」という文字が反転しているので「gavotte」と入力しEnterを押す

「gavotte」をダブルクリックし、「値のデータ(V)」に「C:\Program Files\Gavotte\ram.bat」と入力しEnterを押す

PCを再起動する

次回起動時にコマンドプロンプトが自動で開かれ、前述のコマンド結果が表示されるはずです。
「saving to registry...done.」と表示されれば完了です。

ほかにも以下を使って同じようなことが出来るかもしれません。
しかし私は試していません。
  • ほかのレジストリキーを使う(HKEY_CURRENT_USER\~\RunOnceとか)
  • autoexec.batを使う
  • win.iniを使う
  • system.iniを使う


ジャンクションを張る(未確認)

ジャンクションとはフォルダに別名をつけてアクセスすることが出来る機能です。
ようするに(ハードディスクの)C:\TEMPにアクセスが来たら(RAMディスクの)R:\TEMPをにアクセスしに行くようにすることが出来ます。
TEMPフォルダは一時的に使うファイルの置き場(のはず)なのでPC再起動のたびに消えてしまっても構わないので、高速アクセスが可能なRAMディスクに移動しようというわけです。

テンポラリフォルダは環境変数TEMPやTMPで指定されているので、これをRAMディスクのフォルダに書き換えても良いですが、お行儀の悪いアプリは環境変数を参照せずにC:\TEMPなどを目掛けて直打ちでアクセスしにくることもあるのでジャンクションを張ろうというわけです。

が、実際には私はここまでは必要性を感じていないので私は行っていません。

「packed data too large (>1M)」の対処方法2で触れた方法を使う場合、下記で行けるのではないかと思います。(未確認)

  • これからご紹介する方法はレジストリを編集するため、最悪Windowsが起動できなくなります。
    またファイルの削除を行う処理を含んでおりますので、最悪あなたの大切なデータが削除される可能性があります。
    コマンドの実行は自己責任とし、当方は一切の責任を持ちません。

ジャンクションを張るときにフォルダの中身が空でないといけないらしく、mkdirでフォルダの中身をサブディレクトリごと削除していますのでご注意ください。

cd \Program Files\Gavotte
FORMAT /FS:NTFS /Q /V:RAM /A:512 R: /Y
CHKDSK /L:2048 R:
CACLS R:\ /G BUILTIN\Adminstrators:F
MKDIR R:\TEMP
rmdir /s /q C:\Temp
mkdir C:\Temp
rdutil link C:\Temp R:\Temp
rmdir /s /q C:\Windows\Temp
mkdir C:\Windows\Temp
mkdir R:\Temp\WinTemp
rdutil link C:\Windows\Temp R:\Temp\WinTemp
rdutil R: registry
pause

ジャンクションの消去

ジャンクションの消去はリンク元のフォルダを削除すれば良いようです。
どのフォルダからジャンクションを張ったかわからなくなった場合は、下記junction.exeを利用すれば良いそうです。


junction.exe -s 確認したいドライブ:

ブラウザのキャッシュを移動する

IEのキャッシュを移動する

IEを開き、「ツール」>「インターネットオプション」を開きます。

「閲覧の履歴」の「設定」を押します。

「フォルダーの移動」を押し、RAMディスク上のキャッシュをおきたいフォルダを選択します。
私の場合は「R:\TEMP」を選択しました。

選択したフォルダの下に「Temporary Internet Files」というフォルダを作られ、そこにIEのキャッシュが置かれるようになります。

firefoxのキャッシュを移動する

下記内容をuser.jsという名前で保存する。
user_pref("browser.cache.disk.parent_directory","R:\\TEMP");
※R:\\TEMPの部分は自身の判断で変更してください

firefoxのプロファイルフォルダにuser.jsを置く。
プロファイルフォルダは下記のような形です。
C:\Documents and Settings\ユーザ名\Application Data\Mozilla\Firefox\Profiles\XXXXXXXX.default
※ユーザ名は自身がWindowsにログインするときのユーザ名
※XXXXXXXXは8文字のランダムな文字列です

firefoxを起動し、アドレス欄に「about:config」と入力する。

「フィルタ」に「browser.cache.disk.parent_directory」を入力し、「値」が希望のキャッシュフォルダになっていることを確認する。