Windows7 の ホームディレクトリ変更

わんくまの方に書こうとしたら、いつまで経っても「接続中」のまま先に進まないのでこっちに待避。

現在のメインマシンは、システムディスクを 2.5インチHDD 2台による RAID 0 で構成している。
こんないつ壊れるかわからない怖いところにデータを置いておくわけにいかない。
そこで、ホームディレクトリを物理的に別のディスクに移動することにした。

当初は C:\Users を丸ごと移動しようと思ったが、この操作は少々複雑である。(参考⇒ Windows 7でユーザプロファイルフォルダ(C:\Users)を別ドライブに移してみる)
しかしこのPCを使うのは私一人だけで、アカウントもメインアカウント一つしか作っておらず、この先ユーザーが増える見込みもないため、 C:\Users の配下にあるアカウントディレクトリを移動するだけで目的を十分に達する。

ということで、アカウントディレクトリを移動し、C:\Users\<アカウント名> からのシンボリックリンクを張ることにした。
ここでは <アカウント名> を "guicheng" として作業手順を以下に示す。
ただし若干の改変と記憶に任せている箇所があるため、正確ではないかもしれない。
※ 2012/01/03 追記
クリーンインストールしながら手順を修正。たぶん、正確だと思う。

1. 管理者アカウント Dummy を作成する。
2. PCを再起動してセーフモードで立ち上げ、Dummyでログオンする。
3. コマンドプロンプトを立ち上げ、"guicheng" のアカウントディレクトリを移動する。

robocopy C:\Users\guicheng D:\DATA /MOVE /COPYALL /E /R:0 /W:0

4. アカウントディレクトリを削除する。理想的にコトが進めば、この手順は不要のはず。

rmdir /S C:\Users\guicheng

5. D:\DATA へのシンボリックリンクを張る

mklink /D C:\Users\guicheng D:\DATA

6. PC を再起動して元のアカウント(guicheng)でログオンする。
7. 管理者アカウント Dummy を削除する。

二週間ほど運用してみたが、WZ Editor7上でダブルクリックによる単語選択をすると不正終了する不具合が発生したのみ。
この不具合は、WZ Editor7 の最新バージョン(7.0.9)を上書きインストールすることで解消した。
もとのWZ Editor7は旧環境からインストールフォルダごとコピーしてきたものなので、それが原因かもしれない。

2012/01/03 追記

手順3. のコマンドに /E を追加、/R、/W の数値を 0 に変更。

/E はサブディレクトリも含めたコピーを行うためのスイッチで、これをつけないと「ドキュメント」をはじめとする肝心のディレクトリが移動されない。これを忘れたまま手順4.でユーザーディレクトリを削除すると、Explore がぶっ壊れるというオチが待っている。
/R, /W はエラーが発生した場合のリトライ間隔と回数を指定するスイッチで、双方に0を指定しておくとエラーが起こってもリトライされない。手順3. の移動操作では、クリーンインストール直後でも結構な数のエラーが出る。これらは一切無視してかまわないが、鬱陶しいのでリトライを禁止すると良い。
なお、理想的にことが進めば 手順4.を行うまでもなくユーザーディレクトリが消えているはず。

robocopy のスイッチの意味は robocopy /? で参照することができるが、今回使用したスイッチだけ転載する。

/E
空のディレクトリを含むサブディレクトリをコピーします。
/MOVE
ファイルとディレクトリを移動します (コピー後にコピー元から削除)。
/COPYALL
ファイル情報をすべてコピーします (/COPY:DATSOU と同等)。
/R:n
失敗したコピーに対する再試行数: 既定値は 1,000,000。
/W:n
再試行と再試行の間の待機時間: 既定値は、30 秒です。