Vistaでドライブレターがないボリューム上のファイルがインデックスに登録されない
2008/03/09 | ラベル: Tips, Vista, Windows |Windows Vista には Windows デスクトップ サーチ の機能が統合されていて、様々なファイルの検索が可能になっている。デフォルトでは Users フォルダとオフラインフォルダがインデックス登録され、検索可能になっている。
だけど、なぜか自分のドキュメントフォルダに保存したPDFファイルがインデックスに登録されない。Administratorのドキュメントはちゃんと登録されている。インデックス対象の選択画面を開くと、なぜか自分のデータフォルダだけ表示されないではないか。。。どうやら、ジャンクションフォルダはインデックスの対象外っぽい。そういう仕様なんだろう。
なぜジャンクションになってるか
自分はデータ領域をシステムドライブと分けたいという性分なので、Documents and Settings フォルダを移動せずに別のドライブにマウントする方法 の手順で自分のデータ領域(C:\Users\xxx)を別ボリュームに分けた。dirコマンドで見てみると、C:\Users\xxx はジャンクションになっている。
ドライブレターをつけてみた
試しにデータ領域にしているボリュームにドライブレターを付けると(Uドライブとした)、インデックス対象の選択画面にはそのボリュームが見えるようになる。マウントポイントである C:\Users\xxxはやっぱり見えない。インデックス対象としてUドライブを選択してインデックスを再構築すると、ファイルがインデックス登録されるようになった。しかーし、UドライブとC:\Users\xxxと、2重で登録されてしまう。ださい。。。Uドライブをインデックス対象から外したり、Uドライブのドライブレターを外すと、やっぱりインデックス登録されない。
シンボリックリンクにしてみた
Vista では正式にシンボリックリンクに対応したということなので、ボリュームのマウントをやめて、C:\Users\xxx を Uドライブへのシンボリックリンクにしてみた。すると、Uドライブをインデックスの対象から外した状態でも、C:\Users\xxx以下のファイルがインデックスに登録されるようになった。でも、今度はインデックス対象を選択する画面で自分のデータフォルダだけでなくUsersフォルダ全部が見えなくなってしまった。。。orz
一応インデックス登録されるようになったし、ファイルの読み書きやアプリの利用など通常利用に問題はなさそうなので、しばらくこれで使ってみるか。。。
ちなみに、Vista でシンボリックリンクを作成するには mklink コマンドを使う。