Windowsのディスクボリュームを他のボリュームのフォルダに割り当てる方法(NTFSのリパースポイント機能を利用する)Tech TIPS

Windowsではドライブ構成によって、割り当てられるドライブ文字が変化して既存ファイルのパスが変わってしまうことがある。そこでWindows 2000/XPのNTFSで新たに追加されたボリュームのリパースポイント機能を使えば、他のボリュームを、NTFSボリューム中の任意のサブフォルダとして割り当てることが可能だ。

» 2003年01月21日 05時00分 公開
「Tech TIPS」のインデックス

連載目次

対象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)を使用する必要がある。

操作方法

●リパースポイントの設定方法

 あるボリュームを別ボリュームのサブフォルダにマウントするには、コントロール・パネルの[管理ツール]フォルダにある[コンピュータの管理]アイテムを起動する(または、デスクトップや[スタート]メニューにある[マイ コンピュータ]アイコンを右クリックするとポップアップ表示されるメニューの[管理]からも起動可能)。そして[コンピュータの管理]ダイアログが表示されたら、左側のツリーから[記憶域]グループの[ディスクの管理]を選択する。すると右側のペインにシステムに接続されたドライブが一覧表示される。

 このドライブ一覧から、マウント先に指定したいボリュームを選択し、マウスの右ボタンから表示されるショートカット・メニューの[ドライブ文字とパスの変更]を実行する(または[操作]−[すべてのタスク]−[ドライブ文字とパスの変更]メニューを実行する)。

[コンピュータの管理]ダイアログで、ツリーから[記憶域]−[ディスクの管理]を選択し、マウント先のボリュームを選択してマウスの右ボタンをクリックしたところ [コンピュータの管理]ダイアログで、ツリーから[記憶域]−[ディスクの管理]を選択し、マウント先のボリュームを選択してマウスの右ボタンをクリックしたところ
[コンピュータの管理]アイテムは、各種のコンピュータの管理用ツールをMMC形式で操作可能にしたツールである。最初はボリューム一覧からマウント先として指定したいボリュームを選択し、右ボタンから表示されるショートカット・メニューの[ドライブ文字とパスの変更]を実行する。
  [A]選択したボリュームをマウント先に指定するには、このメニュー項目を実行する。→[A]

 すると次のダイアログが表示されるので、ここで[追加]ボタンをクリックする。

[A]

[ドライブ文字とパスの変更]ダイアログ [ドライブ文字とパスの変更]ダイアログ
ここでは、選択したボリュームにアクセスするためのドライブ文字やパスが一覧される。ダイアログの構成から、1つのボリュームに複数のパスを設定できることが分かる。
  (1)このボリュームにアクセスするためのドライブ文字/パス。このボリュームに対して複数のパスが指定されている場合には、ここにそれらが一覧表示される。
  [B]新しいパスを追加するときにはこのボタンをクリックする。→[B]

 次に表示される[ドライブ文字またはパスの追加]ダイアログでは、このボリュームをマウントするNTFSボリューム中のサブフォルダを指定する。指定はエディット・コントロール内で直接パスを入力してもよいし、[参照]ボタンから既存のフォルダを選択してもよい。今回の例では[参照]ボタンを押してみることにする。

[A]

[ドライブ文字またはパスの追加]ダイアログ [ドライブ文字またはパスの追加]ダイアログ
ここでは、マウント元のフォルダを指定する。パスを直接指定するときにはエディット・コントロールにパスを入力する。既存フォルダを一覧表示させて選択したり、新規フォルダを作成してそれをマウント元に指定したりするときには、[参照]ボタンをクリックする。
  (1)パスを直接指定するときには、ここにパスを入力する。
  [C]既存フォルダを一覧表示して選択したり、新しいフォルダを作成してそれをマウント元フォルダとして指定したりするときにはこのボタンをクリックする。→[C]

 上のダイアログで[参照]ボタンをクリックすると、次の[ドライブ パスの参照]ダイアログが表示される。このダイアログでは、既存フォルダが一覧表示されるので、ここから任意のフォルダを選択する。ただし、ファイルやフォルダを内部に含む既存フォルダは指定できない(必ず空きフォルダを指定する必要がある)。また必要なら、[新しいフォルダ]ボタンをクリックして、ここで新規フォルダを作成することも可能である。[新しいフォルダ]ボタンをクリックすると、ツリー上に「新しいフォルダ」という名称のフォルダが作成され、フォルダ名が入力可能な状態になる(エクスプローラなどで新規フォルダを作成する場合の挙動と同じ)。そこで任意のフォルダ名をキーボードから入力する。フォルダの選択を終えたら、[OK]ボタンをクリックする。

[A]

[ドライブ パスの参照]ダイアログ [ドライブ パスの参照]ダイアログ
このダイアログでは、既存のフォルダが一覧表示されるので、ここからマウント元にしたいフォルダをマウスで選択する。新しいフォルダを作成し、それをマウント元フォルダにしたければ、[新しいフォルダ]ボタンをクリックする。
  (1)新しいフォルダを作成したければ、このボタンをクリックする。
  (2)[新しいフォルダ]ボタンをクリックすると、「新しいフォルダ」という名称で新規フォルダが作成され、名前が選択状態になる。そこで任意のフォルダ名を指定する。
  (3)マウント元となるフォルダを選択したら、このボタンをクリックする。

 以上で設定は完了である。エクスプローラを起動し、C:\D_Driveフォルダを表示すると、ここにD:ドライブがマウントされていることが分かる。

エクスプローラでマウント元フォルダを表示したところ エクスプローラでマウント元フォルダを表示したところ
設定完了後、エクスプローラを起動してマウント元フォルダ(今回の例ではC:\D_Drive)を表示させると、その先にマウント先ドライブ(今回の例ではD:ドライブ)のルート・ディレクトリの内容が表示されていることが分かる。
  (1)マウントされたフォルダ。C:\D_Driveフォルダの中身を見ると、今回マウントしたD:ドライブの内容が表示されている。

■更新履歴

【2003/01/21】Windows XPに関する情報を加筆・修正しました。

【2000/02/05】初版公開。


「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。