はじめに
背景
ダウンロードしたSoundfontsが圧縮状態で約900MBもありディスク容量を圧迫するため、EドライブではなくSDカード等の外部保存領域に保存したいと考えた。
その方法を調べる中で、FL Studioで指定のフォルダ以外にSoundfontを置く方法を解説したこちらの記事がヒットした。
この方法はSoundfontに限らず、「保存場所がCドライブに限定されてしまうVST3プラグイン」の保存場所を変更するためにも活用できるのではないかと考えた。
目的
- VST3フォルダの実体を、Cドライブから別のドライブに移動する
- アクセス制限のわずらわしさから解放される
- VST3プラグインをシステムドライブから分離し、Cドライブの容量圧迫を防ぐ
記事の対象者
- Cドライブの容量がVSTプラグインで圧迫されて困っている方
- DTM環境のファイル管理を、システムドライブ以外の外付け/別ドライブで整理したい方
- ※ジャンクションを使用しているため、ネットワークドライブは対象外
- その他、ディスク容量の確保とインストール先の制約の板挟みに悩むWindowsユーザー
なぜ一般的なシンボリックリンクではなく、あえてジャンクション機能を使うのかについても記載しています。
=> 【コラム】なぜシンボリックリンクではなくジャンクションなのか?
操作手順
最初の状態
設定完了前のプラグインマネジャーとVST3ディレクトリの様子
VST3の保存先として
C:\Program Files\Common Files\VST3が指定されている。
VST3フォルダのアイコンがフォルダになっている。
1. 既存のVST3フォルダを移動する
ジャンクションの作成は「リンクの付与」ではなく、特殊な「ディレクトリの作成」という過程である為、VST3フォルダがC:\Program Files\Common Filesに存在していると失敗します。
元々存在していたVST3フォルダを、実体として置きたい場所に移動する様子。
このgifでは行っていないが、操作ミスに備えVST3フォルダのバックアップを推奨。
参考記事: シンボリックリンクでフォルダ同期のエラー3パターン, mklink(公式リファレンス)
2. 管理者権限でコマンドプロンプトを開く
ジャンクションの作成自体には管理者権限は必要ありませんが、今回の目的であるVST3関連の操作は、Windowsのシステム保護領域であるC:\Program Filesで行う為、管理者権限が必要になります。
-
Win + Rショートカットを使用し、「ファイル名を指定して実行」ウィンドウを表示する -
cmdと入力する -
Ctrl + Shift + Enterを押す - コマンドプロンプトが管理者権限で開く
-
カレントディレクトリが
C:\WINDOWS\system32>になっている (参考)
-
カレントディレクトリが
参考記事: 【一手間をなくそう!】コマンドプロンプトを素早く起動する方法
3. ジャンクションを作成する
-
管理者権限で開いたコマンドプロンプトに、下記のコマンドを入力する
-
mklink /J "C:\Program Files\Common Files\VST3" "実体のパス"- "実体のパス"は、実際の物に変更する
-
gif中では
E:\00_Program_E_Drive\01_Tool\FL Studio 2025\Plugins\VST3
-
- コマンドを実行する
-
作成に成功した場合、「ジャンクションが 作成されました」というメッセージが表示される
よく発生するエラー
-
既に存在するファイルを作成することはできません。-
C:\Program Files\Common Files\VST3が存在した状態でコマンドを使用しています-
1. 既存のVST3フォルダを移動するに記載している通り、このコマンドは「リンクの付与」ではなく、特殊な「ディレクトリの作成」という過程である為、
C:\Program Files\Common Filesにある、VST3フォルダは削除して下さい
-
1. 既存のVST3フォルダを移動するに記載している通り、このコマンドは「リンクの付与」ではなく、特殊な「ディレクトリの作成」という過程である為、
-
-
アクセスが拒否されました。-
コマンドプロンプトが管理者権限で実行されていません
- 2. 管理者権限でコマンドプロンプトを開くの手順の通りに、管理者権限でコマンドプロンプトを実行して下さい
- ジャンクションを
C:\Program Files\Common Filesディレクトリに作成する為、管理者権限が必要になります
-
コマンドプロンプトが管理者権限で実行されていません
-
「このファイルを開く方法を選んでください」が表示される-
コマンドプロンプトではなく、PowerShellを使用しています
- 2. 管理者権限でコマンドプロンプトを開くの手順の通りに、管理者権限でコマンドプロンプトを実行して下さい
-
mklinkコマンドはコマンドプロンプトのコマンドである為、PowerShellでは使用できません
-
コマンドプロンプトではなく、PowerShellを使用しています
-
-
- (任意)正常に作成できているか、確認をする
-
dir "C:\Program Files\Common Files"-
種類の項目に
<JUNCTION>と記載されている -
ジャンクションの名前
VST3と実体のパスが記載されている
-
種類の項目に
-
参考記事: 【PC】ディスク容量不足解消にシンボリックリンク(Windows 10編), シンボリックリンクの使い方と落とし穴
参考リファレンス: mklink, ハード リンクとジャンクション, dir
作成が完了した状態
DAW側の表示
設定完了後のプラグインマネジャーとVST3ディレクトリの様子
VST3の保存先として
C:\Program Files\Common Files\VST3が指定されている。
VST3フォルダのアイコンがショートカットになっているが、種類はファイル フォルダーになっている。
実体を実体から開くと、パスは実体の物になる。
ジャンクションのVST3ディレクトリを開くと、ジャンクションのパスになる。
その為、実体はEドライブにあるが、DAWからはCドライブにあるように見えている。
インストールテスト (実践確認)
インストール先が変更できないプラグインを利用し、実体側にインストールできるか確認している様子
インストール先が、強制的に
C:\Program Files\Common Files\VST3にされている。
その為、インストーラー上ではCドライブへのインストールとして処理が進む。
インストール後に実体のディレクトリを表示すると、正常に実体にインストールできている事が確認できる。
解説
コマンドの説明
使用するコマンド
mklink /J "<link>" "<target>"
| コマンド パラメーター |
説明 |
|---|---|
mklink |
シンボリックリンクまたはハードリンク、及びジャンクションを作成するコマンド。 ディレクトリ自体を生成する為、VST3フォルダが存在する場合は、移動又は削除が必要。 |
/J |
ディレクトリ用のジャンクションを作成するオプション。 このオプション(または /D)を付けない場合、デフォルトではファイル扱い(ファイルシンボリックリンク)として作成されてしまい、フォルダとして機能しない。 |
<link> |
作成するジャンクションのパスを指定する。 例: C:\Program Files\Common Files\VST3
|
<target> |
ジャンクションの接続先となる「実体(移動先)」のパスを指定する 例: E:\00_Program_E_Drive\01_Tool\FL Studio 2025\Plugins\VST3
|
参考リファレンス: mklink, ハード リンクとジャンクション
ジャンクションとは
よくある誤解:
Web上の一部の解説記事では「ジャンクションはボリューム(ドライブ)を跨げない」と記載されていることがありますが、これは誤りです(ハードリンクの制約もしくはネットワークドライブの制限と混同されているケースが多いです)。
Microsoft公式リファレンスにも記載がある通り、同一コンピューター上のローカルドライブ間であれば、ジャンクションで問題なくリンク可能です。
参考(公式リファレンス) : ハード リンクとジャンクション
-
ファイルの属性の一種である
-
再解析ポイント により実装される
- 再解析ポイントの種類を表す 再解析タグ が設定される
- ジャンクションのタグは
IO_REPARSE_TAG_MOUNT_POINT(0xA0000003) である - 参考: 再解析ポイントのタグ (Microsoft Learn)
- ジャンクションのタグは
- シンボリックリンクやジャンクションでは、実体のパス等の情報が含まれる 再解析データ が設定される
-
Get-Itemコマンドとfsutil.exeコマンドでディレクトリの属性と再解析ポイントの詳細を確認している様子
-
Get-Itemコマンドにより、VST3ディレクトリの属性はReparsePointである事を確認できる -
fsutil.exeコマンドで再解析ポイントの詳細を照会している- 再解析タグは
Mount Pointであることを確認できる - 再解析データに実体のパスが記録されている事を確認できる
- 再解析タグは
- 参考記事: ASCII.jp
-
-
- 再解析ポイントの種類を表す 再解析タグ が設定される
-
動作の仕組み
- 保存領域にアクセスする際、再解析ポイントが存在すると ファイルシステムフィルタードライバー が処理に介入し、実体の場所へと接続(リダイレクト)する
参考記事: WindowsのNTFS/ReFSに搭載されている「再解析ポイント」とは何か?
参考資料: ファイル属性定数, 再解析ポイント
【コラム】なぜシンボリックリンクではなくジャンクションなのか?
本記事では、ディレクトリのリンク機能としてより高機能な「シンボリックリンク (/D)」ではなく、あえて古くからある「ジャンクション (/J)」を採用しています。
これには以下の理由があります。
1. アプリケーションの互換性と安定性
シンボリックリンクはWindows Vista(2007年1月30日発売)から導入された機能ですが、一部の古いアプリケーションやファイルダイアログでは正常に認識されず、予期せぬ挙動(開けない、見つからない等)を引き起こす可能性があります。
特にDTMの現場では、プロジェクトの再現性のためにあえて古いバージョンのDAWを使用するケースがあります。
例えば、『UNDERTALE』の作者であるToby Fox氏が FL Studio 10 (2011年頃のバージョン) を使用していたことは有名ですが、こうした少し前の世代のDAWや、設計の古いVSTプラグインが混在する環境においては、より歴史が古く(Windows 2000から存在)、ディレクトリとしての透過性が高い(OSが普通のフォルダとして扱いやすい)ジャンクションの方がトラブルが少ないと判断しました。
参考資料: UNDERTALE Help, FAQ and Troubleshooting, XユーザーのDaily Toby Fox Trivia (Chapter 5 2026)さんによるポスト, History - FL Studio
2. 機能の十分性
シンボリックリンクの利点として「ネットワークドライブや相対パスを指定できる」点が挙げられますが、今回の目的は「ローカルドライブ間でのフォルダ移動」であり、ジャンクションの機能で必要十分です。
また、もう一つの利点である「管理者権限なしで作成可能」という点についても、今回はターゲットがシステム保護領域である C:\Program Files 内であるため、いずれにせよ管理者権限が必要となり、シンボリックリンクに対する優位性にはなりません。
以上のことから、今回は「機能の豊富さ」よりも「枯れた技術ゆえの確実性」を優先し、ジャンクションを採用しました。
参考資料: シンボリックリンクの使い方と落とし穴
参考リファレンス: シンボリックリンク
参考資料
FL Studio指定のSoundfontsフォルダ外部にSoundfontを置く方法
コマンドプロンプトを管理者権限で開く方法
シンボリックリンク・ジャンクションリンクの作成方法
躓きやすいポイントの説明
ジャンクションについて
何故ジャンクションを選定したか
検証に使用したプラグイン
-
Bongo Cat Band (Audio Fusion Bureau)
- インストーラーにて保存先ディレクトリの変更ができず、強制的に
C:\Program Files\Common Filesが指定されるため、今回の検証・動作確認に利用しました
- インストーラーにて保存先ディレクトリの変更ができず、強制的に




