Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

Windowsのジャンクション(別ドライブ内フォルダへのシンボリックリンクのようなもの)について

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!

【AIによる回答】

Windowsで別ドライブへのジャンクション作成は、mklink /j コマンドを使用します。Cドライブの容量不足解消や、データ整理に有効です。空のリンクフォルダ(ジャンクション)をCドライブに作成し、データをDドライブへ透過的に保存・読み込み可能にします。
作成手順と例
  1. コマンドプロンプトを「管理者として実行」します。
  2. 例:C:\Users\Name\AppData の中身を D:\AppData に移す場合
    cmd
    mklink /j "C:\Users\Name\AppData" "D:\AppData"
    
  3. mklink /J は、NTFSパーティション間でのみ有効です。
注意点
  • リンク先フォルダ(この場合 C:\...\AppData)は必ず事前に空にしておくか、削除しておく必要があります。
  • ジャンクションを削除しても、リンク先(Dドライブ)のデータは削除されません。
  • ファイル操作時は、元のパス(Cドライブ)にあるかのように扱われます。

 

Windowsでジャンクション(またはボリュームのマウントポイント)を使用して、別のドライブ(Dドライブなど)を別のドライブのフォルダ(Cドライブ配下など)にマウントした場合、容量表示は以下のような挙動になります。
結論:「そのジャンクション(リンク)があるドライブ(Cドライブ)の空き容量」ではなく、「リンク先としてマウントされたドライブ(Dドライブ)の実際の空き容量」が表示されます。
具体的な容量表示の挙動
  1. エクスプローラーでのプロパティ表示:
    • マウントされたフォルダ(ジャンクション)を右クリックして「プロパティ」を確認すると、リンク先ドライブ(Dドライブなど)の物理的な空き容量と使用容量が表示されます。
  2. 容量計算の対象:
    • そのフォルダにファイルを保存すると、それは実際にはリンク先のドライブ(Dドライブ)に保存されます。そのため、データはマウント先の容量を消費します。
  3. OS側(ストレージ設定)での認識:
    • Windowsの「設定」>「システム」>「ストレージ」などでは、基本的にファイルが物理的に保存されているドライブ(Dドライブ)の容量として計算・表示されます。
  • 状況: Cドライブ(残り10GB)の C:\Data に、Dドライブ(残り500GB)をジャンクションでマウントした。
  • 表示C:\Data を右クリックして「プロパティ」を開くと、「空き領域:500GB」と表示される。
  • 結果: 500GBのファイルを置ける。
注意点
  • フォルダのプロパティ表示: エクスプローラーの一般的なフォルダプロパティでは、誤って「0バイト」または「フォルダ配下の全ファイルの容量合計」を表示する場合がありますが、ディスク上の空き容量としてはマウント先(Dドライブ)のものが適用されます。
  • 「ディスクのクリーンアップ」や一部のバックアップソフト: 一部のツールはジャンクションを追跡せず、マウントポイントのローカルディスク(Cドライブ)として誤って認識することがあります。
これにより、容量の少ないCドライブを延命し、大容量のDドライブへデータを隠蔽・移動させることができます。
Windowsのジャンクション(NTFSジャンクションポイント)は、Windows 2000以降のすべてのWindowsバージョンで使用可能です。
具体的には、以下のOS環境が含まれます。
  • Windows 11 / 10 / 8.1 / 8 / 7 / Vista
  • Windows XP / 2000
  • Windows Server シリーズ(2000以降)
詳細な情報
  • 技術的な前提: ジャンクションはNTFSファイルシステムの機能であるため、ドライブがNTFSでフォーマットされている必要があります。
  • 作成方法:
    • Vista以降: コマンドプロンプトの mklink /J コマンドが標準で使用可能です。
    • XP/2000: Microsoftが提供する「Junction」ユーティリティ(Sysinternals)や「linkd」を使用する必要があります。
  • 主な用途: 主にフォルダの別名(シンボリックリンクのようなもの)として機能し、Windows Vista以降では古いソフトウェア互換性のためにシステムドライブ内でも利用されています。
※ なお、ジャンクションは「ローカル」のフォルダーに対してのみ機能し、ネットワーク上の場所への設定はサポートされていません。
Windowsにおいて、mklinkコマンドなどで作成したジャンクション(ディレクトリジャンクション)は、通常、OSを再起動しても消失せず、有効なまま保持されます
ジャンクションはNTFSファイルシステム上のメタデータとして記録されているため、揮発性(再起動で消える)ではありません。
しかし、再起動後にジャンクションが機能しなくなる、あるいは消失したように見える現象が発生した場合は、以下の原因が考えられます。
再起動後に発生しうるトラブルと原因
  1. 参照先(ターゲット)フォルダが再起動後に未接続
    • 外部ドライブ、ネットワークドライブ、または暗号化されたボリューム上に実データがある場合、OS再起動直後のドライブ認識が間に合わず、リンクが切断された状態(壊れたリンク)になります。
  2. 高速スタートアップの影響
    • 高速スタートアップが有効な場合、シャットダウン時に完全にドライバーが初期化されず、再起動後のファイルシステムアクセスで問題が発生することがあります。一度「再起動」を行うか、高速スタートアップを無効にして改善するか確認してください。
  3. ユーザープロファイル・システムフォルダの移動
    • UsersフォルダやAppDataなど、システムが管理する特殊なフォルダに対してジャンクションを設置し、その実体を別の物理ドライブに移動している場合、ログイン時にアクセス権の齟齬や読み込みエラーが発生し、動作しなくなることがあります。
  4. セキュリティソフトによる削除
    • ごく稀に、アンチウイルスソフトがジャンクションを不審な再ダイレクトと検知し、自動的に削除するケースがあります。
再起動後も維持するためのポイント
  • ドライブ文字を固定する: ジャンクションの参照先ドライブにドライブ文字を固定(ボリュームマウントポイントを使用)し、再起動後にドライブ文字が変動しないようにする。
  • 「完全シャットダウン」または「再起動」を使う: 高速スタートアップを使わず、完全にドライブが認識された状態でログインする。
もし再起動後に「アクセス拒否」などで使えなくなった場合は、再度同じパスに mklink /j コマンドを実行し直す(再作成)ことで復旧できるケースが多いです
タイトルとURLをコピーしました