こんにちは、阿久津です。一般的なOSでは実存するファイルに対して、参照性を高める場合や別名を付けるため、"リンク"を作成する機能が備わっています。OSによって呼称は異なりますが、Windows OSでは拡張子「.lnk」を持つショートカットがそれにあたり、初期状態では拡張子が非表示になっているため、意識される方は多くないでしょう。
その一方で以前から実装されながらも、あまり表に出ることのなかったジャンクションやシンボリックリンクといった機能は、Windows Vista以降から活用されるようになりました。例えばWindows 7のユーザーフォルダーはジャンクションによって下位互換性を実現しています(図01)。
まずはジャンクションの話から始めましょう。そもそもリンクにはハードリンクとソフトリンクという二種類が存在し、両者とも特定のファイルやフォルダーに対して別名で参照するという役割は同じながらも、実装時期やNTFSのバージョンなどによって機能が異なります。
ハードリンクの場合、ベースとなるファイルを編集しても、リンク先のファイルを編集しても結果は同じように反映されます。これは元となるデータが存在し、ハードリンクによって作成されたファイルも元のファイルも同列に扱われますので、ベースとなるファイルを削除しても、ハードリンクで作成したファイルに影響を及ぼすことはありません(図02~08)。
![]() |
図08: ファイルがハードリンクされた否かを確認するには、「fsutil hardlink list {対象となるファイル}」と実行します。画面の例では「ハードリンク.txt」の元となるファイルは「元のファイル.txt」であることが確認できました |
ソフトリンクはシンボリックリンクなどと呼ばれることもありますが、OSの実装形式によって名称が異なります。Windows OSでは、UNIX系OSが実装しているシンボリックリンクの一部機能を踏襲したショートカットを当初から搭載し、Windows 2000からはUNIXのシンボリックリンクに似た機能を持つジャンクション、Windows Vista以降はUNIXの同名機能と同等のシンボリックリンク機能を用意するようになりました。
まずショートカットは拡張子「.lnk」(通常は非表示)を持つリンクファイルを作成する機能で、あくまでも実体となるファイルを参照するための情報ファイル。ジャンクションは後述するシンボリックリンクの下位機能なので割愛します。
そのシンボリックリンクは、ジャンクションと異なりファイルへのリンクやUNCパス上のファイルにリンクを張ることができるため、本来のソフトリンク機能として活用することが可能です。また、ファイルの内容に対する操作結果はハードリンクと同じですが、あくまでもソフトリンクのため、元となるファイルを削除しますと、シンボリックリンクで作成したファイルは意味をなしません(図09~13)。
まとめますと、それぞれ実装時期や特徴がありますが、Windows 7をメインOSとして活用している我々としては、シンボリックリンクを主たるリンク機能として活用するのが良いことになります。今回は一例としてアプリケーション本体やデータフォルダーを別ドライブに待避させ、ホストドライブの空き容量を確保するチューニングを紹介しましょう。今回はiTunesを例に手順を進めます。
1.移動先のドライブに「Programs」フォルダーを作成します。
2.タスクマネージャーで稼働中のプロセスを停止させます。
3.対象となるアプリケーションのフォルダーを移動させます。
4.移動先のドライブに「Data」フォルダーを作成します。
5.アプリケーションが使用するデータフォルダーを移動させます。
6.コマンドプロンプトを起動します。
7.「mklink /d "C:\Program Files\iTunes" "D:\Programs\iTunes"」(パスは環境によって異なります)を実行します。
8.「mklink /d "C:\Users\Public\Music\iTunes" "D:\Data\iTunes"」(パスは環境によって異なります)を実行します。
これでチューニングが終了しました。なお、上記の手順は管理者権限を持つアカウントで実行してください(図14~25)。
![]() |
図17: <プロセス>タブを開き、「iTunesHelper.exe」を選択して<プロセスの終了>ボタンをクリックします。確認をうながすダイアログが現れたら<プロセスの終了>ボタンをクリックしてください |
![]() |
図24: コマンドプロンプトに「mklink /d "C:\Program Files\iTunes" "D:\Programs\iTunes"」と入力して[Enter]キーを押します。これでiTunes本体のシンボリックリンクが作成されました |
![]() |
図25: 続いて「mklink /d "C:\Users\Public\Music\iTunes" "D:\Data\iTunes"」と入力して[Enter]キーを押します。これでデータフォルダーのシンボリックリンクが作成されました |
早速動作を確認してみましょう。iTunes導入時に作成されたショートカットファイルをダブルクリックしてみましょう。問題なくiTunesが起動すればチューニング成功です。上手く動作しない場合は、「mklink」コマンドで作成したシンボリックリンクのパスに間違いがないか確認してください(図26~27)。
読者のなかには本チューニングが無意味だと感じる方もおられるでしょう。もちろんiTunesを導入する際に展開先を変更し、iTunesが参照するデータフォルダーを設定ダイアログから変更すれば、本チューニングは意味をなしません。しかし、だんだんとホストドライブの空き容量が少なくなってきた場合や、再インストールの手間を省きたいといった場面は有効なテクニックとなります。
唯一の欠点はバックアップ作業がホストドライブ一つで完結しない点。本チューニングを行う場合はバックアップ対象に移動先のドライブも含めるように設定を変更してください。
それでは、また次号でお会いしましょう。
阿久津良和(Cactus)