きたけんブログ

旅と趣味と

SSDからHDDに一時ファイルのディレクトリ移動

先日SSDを導入したとご紹介しました。SSDはその特性上、データの書き込み回数に上限があります(普通に使っている分には気にしなくていいとも言われますが)。そこで不必要な書き込みを避けるため、OSをインストールしたドライブ(普通はCドライブ)にパスが割り当てられているディレクトリのうち、ほかのドライブに移動できるものを移動することにしました。

当方Windows 8.1を使用しているので、その画面を掲載しています。

環境変数の変更

システムの詳細設定(Windowsボタンを右クリック、システムを選択した画面の左側から開けます)より、システムのプロパティダイアログを開きます。詳細設定タブにある環境変数ボタンを選択します。

環境変数

ユーザー環境変数、システム環境変数それぞれにある「TEMP」「TMP」の値を「編集」ボタンで任意のディレクトリに変更します。一時ファイルを保存するディレクトリです。

わたしはユーザー環境変数を「D:Temp」、システム環境変数を「D:Systemp」とし、該当フォルダーを事前に作成しました。

ライブラリの移動

C:Usersユーザー名 下にある各ライブラリディレクトリをほかのドライブに移動します。Windows Vista以降はプロパティにある場所タブから自由に変更できるようになったようです。場所を変更後、中にあるファイルも移動するかと問うてくるので、はいと回答すると、勝手に移動までしてくれます。

ライブラリの場所

ドキュメント、ピクチャ、ミュージック・・・各ディレクトリごとに設定する必要があります。

C:Usersユーザー名AppData以下にあるLocal、LocalLow、Roamingも同様に移動できますが、どっかのプログラムがアクセスしている可能性がありますので、プロセスを切ってから移動します。どのプロセスが働いてるか分からない場合は、ほかのアカウントから移動すると簡単です(この場合、場所変更後の移動の是非を問うてきたときは「いいえ」で回答し、別アカウント上で改めて切り取り&貼り付けする必要があります。)。

ここで問題になるのがLocalディレクトリです。これをほかのドライブに移動すると、なぜかWindowsストアアプリの一部が起動しなくなります。ストアアプリを使わないと割り切ればいいのですが、わたしは多少使うやつもあるので、LocalディレクトリのみCドライブに残しておきました。

Google Chromeのキャッシュの移動

LocalディレクトリをCドライブに残すにあたって、ここにめっさアクセスしているGoogle Chromeの存在を無視できなくなります。

ChromeはWebページのキャッシュをLocalに保存する仕様で、現段階ではIEのように設定を変更できません。実行時に「–disk-cache-dir=」引数でキャッシュの保存先を指定できますが(下図、リンク先の末尾に当該テキストを追加。指定するディレクトリ適宜変更。)、都度引数を与えるのは面倒くさいorz ショートカットに割り当ててもいいのですが、プロトコルに関連付けているので、通常起動してしまいがちになります。

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disk-cache-dir="D:\Hoge"

そこで今回使用するのがmklinkコマンドです。Linuxのmountのように、任意のディレクトリをショートカットにし、実体を別ディレクトリにリンクするコマンドみたいです(詳しくは知らないw)。

まずは、キャッシュが保存されているディレクトリ C:Usersユーザー名AppDataLocalGoogleChromeUser DataDefaultCacheを削除します。

次に新しくキャッシュを保存したいディレクトリを作成します。

最後に管理者権限のコマンドプロンプトで「mklink /d “C:Usersユーザー名AppDataLocalGoogleChromeUser DataDefaultCache” “キャッシュを保存するディレクトリ名”」を実行して完了です。

Google Chrome のキャッシュの場所を移動する

これだけのことをやるのに、2日を潰してしまったorz


2020/6/28追記

2020年に提供が始まったChromiumベースの新しいMicrosoft Edgeでも「–disk-cache-dir=」引数で変更できるようです。