Windowsではドライブ構成によって、割り当てられるドライブ文字が変化して既存ファイルのパスが変わってしまうことがある。そこでWindows 2000/XPのNTFSで新たに追加されたボリュームのリパースポイント機能を使えば、他のボリュームを、NTFSボリューム中の任意のサブフォルダとして割り当てることが可能だ。
対象OS:Windows 2000 Professional/Windows XP Professional/Windows XP Home Edition/ Windows 2000 Server/Windows 2000 Advanced Server
コマンドライン・インターフェイスのMS-DOSでは、ハードディスクなどのブロック型デバイスを簡単に特定するために、各ドライブにドライブ文字という1文字のアルファベットを割り当てるようになっていた。FATにせよNTFSにせよ、このドライブ文字は、グラフィカル・インターフェイスが主流になった現在でも生きている。
ドライブ文字を使ったシステムの欠点は、基本的にこれらがシステムの起動時に自動的に割り当てられるようになっており、ドライブ構成が変化すると(ハードディスクを追加した場合など)、ドライブ文字が変わってしまう可能性があることだ。アプリケーションの中には、レジストリや独自の情報ファイル中にドライブ文字を含むファイル名やフォルダ名を記録しているものがあり、ドライブ文字が変化すると、正しく起動できなくなったり、設定が無効になったりするものがある。
これに対しWindows 2000/XPでは、コントロール・パネルの[管理ツール]−[コンピュータの管理]アイテムを利用して、各物理ドライブに割り当てるドライブ文字をマニュアルで指定することが可能である(詳細は別稿の「TIPS:ドライブ文字をマニュアルで指定する方法」を参照)。しかし、Windows 2000/XPに搭載されるNTFSボリュームなら、リパースポイント(reparse point)と呼ばれる機能を利用して、ほかのドライブをNTFSボリューム中の任意のサブフォルダに割り当てることが可能である(この機能は、Windows 2000に搭載されたNTFS 5から利用可能になった)。UNIXでいえば、これはシンボリックリンクと、ボリュームのマウント機能を1つにしたようなものだ。
例えば、D:\testfolder\sample01.txtというファイルを含むドライブ(D:ドライブ)を、C:\D_DriveというC:ドライブのフォルダにリパースポイントを使って割り当てれば(マウントすれば)、以後はC:\D_Drive\testfolder\sample01.txtというように、C:ドライブのフォルダとしてD:ドライブのファイルやフォルダにアクセスできるようになる。
このリパースポイントの機能は、NTFSの拡張属性を使って実現されている。この部分にリパース先の情報を記録しておき、ファイルやフォルダがアクセスされたときに、この情報を読み出し、アクセスをリパース先のファイルやフォルダにすり替えている(このような処理を行うものは、ファイル・システム・フィルタと呼ばれる)。
NTFSの機能を使っていることから、マウント元のボリューム(上の例ならC:ドライブ)は、必ずNTFSボリュームでなければならない(FATボリュームにマウントすることはできない)。ただし、ボリューム・タイプはベーシック・ボリュームでもダイナミック・ボリュームでもマウント可能である。マウントされる側のボリューム(マウント先のボリューム。上の例ならD:ドライブ)は、NTFSでもFATでも構わない。
マウント元のサブフォルダは、既存フォルダを使用してもよいし、マウント指定時に新たに作成してもよい。ただし既存フォルダを使用するときには、フォルダ内にファイルやフォルダを含んでいてはいけない(空でなければならない)。
なお、1つのフォルダに対し、複数の別ボリュームをマウントすることはできない。しかし、マウント先のボリュームは、複数のフォルダでマウントされていても構わない。例えば上の例なら、D:ボリュームをさらに別のフォルダ(例えばC\Testなど)にマウントすることが可能である。
セキュリティ上の理由から、ネットワーク・ドライブをマウント先として、そのサブフォルダにマウントすることはできない。これを行いたければ、DFS(Distributed File System)を使用する必要がある。
あるボリュームを別ボリュームのサブフォルダにマウントするには、コントロール・パネルの[管理ツール]フォルダにある[コンピュータの管理]アイテムを起動する(または、デスクトップや[スタート]メニューにある[マイ コンピュータ]アイコンを右クリックするとポップアップ表示されるメニューの[管理]からも起動可能)。そして[コンピュータの管理]ダイアログが表示されたら、左側のツリーから[記憶域]グループの[ディスクの管理]を選択する。すると右側のペインにシステムに接続されたドライブが一覧表示される。
このドライブ一覧から、マウント先に指定したいボリュームを選択し、マウスの右ボタンから表示されるショートカット・メニューの[ドライブ文字とパスの変更]を実行する(または[操作]−[すべてのタスク]−[ドライブ文字とパスの変更]メニューを実行する)。
すると次のダイアログが表示されるので、ここで[追加]ボタンをクリックする。
[A]
次に表示される[ドライブ文字またはパスの追加]ダイアログでは、このボリュームをマウントするNTFSボリューム中のサブフォルダを指定する。指定はエディット・コントロール内で直接パスを入力してもよいし、[参照]ボタンから既存のフォルダを選択してもよい。今回の例では[参照]ボタンを押してみることにする。
[A]
上のダイアログで[参照]ボタンをクリックすると、次の[ドライブ パスの参照]ダイアログが表示される。このダイアログでは、既存フォルダが一覧表示されるので、ここから任意のフォルダを選択する。ただし、ファイルやフォルダを内部に含む既存フォルダは指定できない(必ず空きフォルダを指定する必要がある)。また必要なら、[新しいフォルダ]ボタンをクリックして、ここで新規フォルダを作成することも可能である。[新しいフォルダ]ボタンをクリックすると、ツリー上に「新しいフォルダ」という名称のフォルダが作成され、フォルダ名が入力可能な状態になる(エクスプローラなどで新規フォルダを作成する場合の挙動と同じ)。そこで任意のフォルダ名をキーボードから入力する。フォルダの選択を終えたら、[OK]ボタンをクリックする。
[A]
以上で設定は完了である。エクスプローラを起動し、C:\D_Driveフォルダを表示すると、ここにD:ドライブがマウントされていることが分かる。
■更新履歴
【2003/01/21】Windows XPに関する情報を加筆・修正しました。
【2000/02/05】初版公開。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.