異なるフォルダを異なるハードドライブにリンクする

異なるフォルダを異なるハードドライブにリンクする

職場で新しいコンピューターに Fusion セットアップを使用しています (例: 128GB SSD と 1TB HDD)。SSD はユーザー プロファイル専用で、すべてのアプリケーションは HDD にインストールする必要があります。しかし、多くのスタッフがすべてのデータを「デスクトップ」または「ドキュメント」にダンプしてしまい、SSD がいっぱいになっています。「デスクトップ」や「ドキュメント」などのフォルダーから HDD にデータをリダイレクトする方法はありますか。または、OS を SSD に残したまま、いくつかのユーザー プロファイル フォルダーを HDD に移動する方法はありますか。よろしくお願いします。Kyan

答え1

ユーザープロファイル全体を移動することも一つの方法です。これは次のように行うのが最も簡単です。レジストリ内のデフォルトのプロファイルの場所を変更するそして、日常的に使用する新しいユーザーを作成します(必要に応じて、後で古いユーザーを削除することもできます)。代わりに、既存のユーザープロファイルを移動することもできますが、それは面倒です。レジストリ内の古いプロファイルの場所へのすべての参照を見つけて変更する必要があります。より良いオプションは、OSがオフラインのときにプロファイル(またはUsersフォルダ全体)を移動し、ディレクトリジャンクションまたはシンボリックリンク(symlink)を作成します。からC:\Users(またはC:\Users\<username>) 新しい場所に移動します。この手法は、URL にかかわらず、Win8 以前でも機能するはずです。シンボリック リンクは Vista で導入され、ジャンクションはさらに古いものです (ただし、Vista でコマンドが導入される前は、作成するのがより面倒でしたmklink)。

これらの方法はどちらも、基本的にサポートされていないことに注意してください。これを行うと、サービス パックのインストールや Windows のインプレース アップグレードなどの操作ができなくなる可能性があります (私は Vista マシンでこの問題に遭遇しましたが、まだ修正されているかどうかはわかりません)。また、他の問題も発生する可能性があります。また、場所を選択せず​​にインストールされるが、ユーザー プロファイルにインストールされないプログラムの問題も解決されません。最後に、少なくともプロファイルのコア部分 (ユーザー レジストリとシステム設定ファイル) をブート ディスクに置くという議論があります。これは高速になるだけでなく (ブート ディスクが SSD で、データ ディスクが SSD でない場合)、データ ディスクが故障したり取り外されたりしてもプロファイルが使用できなくなることはありません。

「重要なプロファイルはブートドライブに、データは別の場所に置く」というアイデアをサポートするために、Windowsでは(現在多くのバージョンで、いつから始まったのかは不明ですが)ほとんどの個人データディレクトリの場所を変更できるようになりました。つまり、デスクトップ/ドキュメント/ダウンロード/ミュージック/ピクチャ/ビデオディレクトリは、バーチャルしばらく前から、場所が変更されていました(たとえば、XP->Vistaでは、エクスプローラーで表示すると「マイドキュメント」が「ドキュメント」に変更されましたが、基礎となるファイルシステム名は変更されていませんでした)。ないインプレース アップグレードを行った場合は、変更してください)。Windows エクスプローラーを開き、ユーザー プロファイルに移動して、仮想ディレクトリの 1 つを右クリックします。Properties[場所] タブを開いて移動します。Move...データ ドライブ上の仮想ディレクトリの内容を保存するディレクトリ (必要な場合は作成後) をクリックして選択します。Windows は、現在の「実際の」ディレクトリから新しいディレクトリにすべてを移動することを提案します。その後、「ドキュメント フォルダー」にインストールしようとするものは、実際には新しい場所にインストールされます (ただし、もちろん、%USER_PROFILE%\Documents\StupidApp_Stuffシェル API を経由せずにパスをハードコードするだけのものは、この変更を認識しません)。「プログラムがユーザーに尋ねることなく、好きな場所に配置する」問題も解決しません... ただし、少なくともこの方法は Microsoft によってサポートされており、データ (ドキュメント、音楽、保存したゲームなど) をプロファイル設定 (ユーザー レジストリ、アプリケーション データなど) から分離します。

プログラムが自分自身 (またはファイル) を望ましくない場所に置くというケースに対処するには、もう一度、シンボリックリンクをお勧めします。問題のあるファイルまたはディレクトリ (もちろん、関連するプログラムが実行されていないとき) をデータ ドライブに移動し、元の場所を新しい場所へのシンボリックリンク ( を使用mklink) に置き換えます。たとえば、C:\ProgramData\RudeAppが数十ギガバイトを占有し、SSD のスペースを無駄にしている場合は、次のコマンドを実行してみてください (Powershell や他のシェルではなく CMD を使用し、ディレクトリがまだ存在しないことを前提としていますD:\ProgramData)。

md D:\ProgramData
xcopy /e /k /o /h C:\ProgramData\RudeApp D:\ProgramData\RudeApp\
rd /s C:\ProgramData\RudeApp
mklink /d C:\ProgramData\RudeApp D:\ProgramData\RudeApp

これは、次の順序で実行されます。

  1. D: ドライブに ProgramData ディレクトリを作成します (もちろん、ProgramData は C: ドライブでは非表示になっており、複雑な ACL があるため、xcopy /k /o /h C:\ProgramData D:\ProgramData代わりに を使用してすべてのメタデータを取得することができます。ただし、これにより ProgramData 直下のファイルもコピーされます)。
  2. 元の C:\ProgramData\RudeApp ディレクトリ内のすべてのファイルを、データ ドライブ上の新しいディレクトリ (D:\ProgramData\RudeApp) にコピーします。このコピーは再帰的であり (サブディレクトリもコピーされます)、ファイルのセキュリティと属性が保持されます。
  3. 元の C:\ProgramData\RudeApp ディレクトリを削除します。すべてが正しく動作することを確認したい場合は、削除する代わりに名前を変更し、その後削除することもできます。
  4. C:\ProgramData\RudeApp (アプリがファイルを見つけると予想される場所) に、新しい場所 (D:\ProgramData\RudeApp) を指すディレクトリ シンボリック リンクを作成します。Windows エクスプローラーを含むプログラムは、このリンクを C: 上のディレクトリのように認識しますが、これは単に D: 上のディレクトリへのポインター (NTFS 用語では「再解析ポイント」) です。ポインターは C: 上でわずかなスペースしか占有しません。

シンボリックリンクは、リンク先のファイルやディレクトリに影響を与えずに安全に削除できます。シンボリックリンクの名前を変更しても安全です(ただし、シンボリックリンクを探していた人は、フォルダが削除されたと認識します)。にリンクファイルまたはディレクトリはない安全です。これによりリンクが壊れるため、リンクを削除して新しい場所を指すように再作成する必要があります。

答え2

ジャンクション、ハードリンクなど

mklink /jの前に、宛先フォルダを作成し、そこにファイルをコピーする必要があります。

MKLINK [[/D] | [/H] | [/J]] リンクターゲット

mklink /j Documents j:\Documents
mklink /?

ウェブサイトから開発者の豆知識この記事ではそれについて説明します。 Windows ファイル ジャンクション シンボリック リンクとハード リンク

原材料

シンボリック リンクはショートカットに似ていますが、ファイルとして保存されるのではなく、ハード ドライブのパーティションに登録されます。 ディスク領域は使用されず、すべてのプログラムがリンクとターゲットの両方を認識します。 シンボリック リンクは、コンピューター上のローカルまたは SMB パスを使用してネットワーク上の任意のファイルまたはフォルダーを指すことができます。

ファイル ハード リンクは少し異なり、複数のパーティションにわたって使用することはできません。つまり、ドライブ C: のリンクをドライブ D: のファイルを指すようにすることはできません。ファイル ハード リンクは、ターゲットを指してミラー コピーとして複製しますが、コピーはハード ドライブ パーティション上の追加スペースを使用しません。したがって、1 GB のファイルをミラーリングする 2 つのハード リンクは、パーティション上で 3 GB ではなく合計 1 GB のみを使用します。重要な点は、ハード リンクまたはターゲットのいずれかが削除されても、他のリンクはデータを保持することです。ターゲットまたはリンクのいずれかのコンテンツに対する変更は、他のすべての項目に自動的に反映されます。

ジャンクションはディレクトリのハード リンクのように動作しますが、ファイルのハード リンクとは異なり、複数のパーティションにまたがるジャンクションを作成できます。ディレクトリ ジャンクションとそのコンテンツはハード ドライブ パーティションに保存されますが、追加のスペースは使用されません。ターゲットまたはリンク内のコンテンツに対する変更は、ターゲット ディレクトリが削除または名前変更された場合を除き、自動的に伝播されます。その場合、ターゲットを指すすべてのリンクは切断され、パーティションに残ります。

関連情報