web-dev-qa-db-ja.com

20GB SSDにWindowsフォルダのみを配置するにはどうすればよいですか?

Linuxを複数のドライブにインストールするのはとても簡単だと知っていますが、Windowsではこれまで見たことがありません。 20GB SSDから起動し、他のすべてを1TBHDDに置きたい。それはそのように見えるでしょう:

C:\
Windows

D:\
Program Files
Program Files (x86)
ProgramData
Users

別の方法は、Windowsフォルダー以外のすべてにマウントポイントを使用することですが、これが可能かどうかはわかりません。 Linuxのソリューションに最も近いので、これは私の好みのソリューションです。

C:\ [SSD]
Windows
Program Files [MOUNT POINT HDD]
Program Files (x86) [MOUNT POINT HDD]
ProgramData [MOUNT POINT HDD]
Users [MOUNT POINT HDD]

質問は:どうやって?

日常の使用のために家庭用コンピュータにインストールするのに十分安定していることを望んでいます。

私がうらやましいLinuxの簡単な解決策: SSDから起動する方法ですが、HDDにインストールとホームフォルダがあります

レジストリに関する関連記事: https://support.Microsoft.com/en-ca/kb/9337

ジャンクションに関する関連記事: https://en.wikipedia.org/wiki/NTFS_junction_point

マウントポイントに関する関連記事: https://support.Microsoft.com/en-ca/kb/280297

3
NatoBoram

次のガイドに従って、対応するフォルダを別のドライブに移行します。

警告:これを読んでください 記事 OSのアップグレードを計画している場合、ユーザープロファイルの移動が脅威となる理由を理解してください...以下の詳細情報:

  • 'ユーザー'フォルダー

このステップでは、2つのことが重要です。1)正しいドライブ文字を使用する必要があり、2)robocopyの正確なオプションを使用する必要があります。 1)を台無しにするとログインできなくなり、2)を台無しにするとログインできるかもしれませんが、他の問題が発生します。

次の手順を実行して、C:\ UsersをD:\ Usersにコピーします。繰り返しますが、ドライブ文字が再マップされることに注意してください。

X:> D:
D:> robocopy/copyall/mir/xjユーザーE:\ Users

/ mirオプションは、ソースに存在しない場合、ターゲット内のすべてのファイルを削除します。したがって、すでにD:\ Usersがあり、ファイルを保持したい場合は、/ Eオプションを使用します。

D:> robocopy/copyall/E/xjユーザーE:\ Users

ここでも、D:は実際にはC:であり、E:は実際にはD:です。 robocopyオプションの中で、/ copyallを見逃した場合、アクセス許可情報はコピーされず、ログイン後、Windwos8アプリは起動時にクラッシュします。 robocopyの結果出力で失敗した列が0になることを確認してください。

エラーがないことを確認した後、次の手順を実行して、元のC:\ Usersディレクトリを削除します。

D:> rmdir/S/Qユーザー

シンボリックリンクを作成する
これが最後のステップであり、C:\ UsersにD:\ Usersを指すシンボリックリンクを作成します。ここで、ドライブ文字が再び表示されます。シンボリックリンクは実際のWindowsセッションで使用されるため、実際のドライブ文字D:をターゲットとして使用する必要があります。したがって、ターゲットがD:\ UsersでもあるD:\ Users(コマンドプロンプト文字-C:実際)にシンボリックリンクを作成することになります。すでにD:にいるので、混乱を少なくするために以下を使用してください。

D:> mklink/JユーザーD:\ Users

ユーザー用に作成されたジャンクション<< === >> D:\ Users
他のオプションは試していませんが、/ J(ジャンクション)オプションを使用しない場合は、レジストリハックを行う必要があるようです。

Dirコマンドでリンクを確認できます。次のように表示されます。

<JUNCTION> Users [D:\Users]

とにかく、それだけです。終了して再起動すると([Windows 8に進む]を選択)、ログインできるようになります。エクスプローラーを開くと、C:\ UsersがD:\ Usersを指すシンボリックリンクであることがわかります。

D:>終了

  • 'Program Files

ProgramFilesフォルダーの移動方法128GBSSDを使用している場合でも、すぐにアプリケーションでいっぱいになります。この時点で、プログラムを個別にアンインストールして再インストールする場合を除いて、別のハードドライブにインストールするには遅すぎます。 C:\ Program Filesフォルダーを別のハードドライブに移動することは可能ですが、フォルダーはWindowsにハードワイヤードされており、Windowsが期待する場所にない場合は問題が発生するため、これはお勧めしません。さらに、シンボリックリンクを使用して適切に実行することは非常に詳細なプロセスです。 C:ドライブに既にインストールされているプログラムの場合、C:\ ProgramFiles内に保存されているサブフォルダーを移動することができます。プログラムをSSDからハードドライブに移動すると、そのプログラムを起動したときにSSDの速度の利点が失われることを忘れないでください。使用頻度の高いソフトウェアをSSDに保存して、必要なときにすばやくロードして実行できるようにします。

ただし、プログラムフォルダを別のドライブに単純にドラッグすることはできません。あなたがしなければならないことは、シンボリックリンクと呼ばれるものを作成することです。デスクトップを散らかすプログラム、フォルダ、Webサイトへのショートカットに少し似ていますが、より強力です。 Windowsまたは任意のプログラムがフォルダにアクセスしようとすると、シンボリックリンクがフォルダを新しい場所にリダイレクトします。ソフトウェアとWindowsに対して完全に透過的です。
シンボリックリンクは手動で作成でき、mklinkと呼ばれるコマンドラインツールがあります。エキスパートユーザーは、コマンドプロンプトウィンドウを開き、mklinkと入力してオプションを表示できます。複雑なコマンドに頼る必要はありません。しかし、あなたのためにすべてを行うシンプルで無料のユーティリティがあります。 mobasoftware.comにアクセスして、SymMoverをダウンロードします。

  • 'ProgramData'

デフォルトのパスはC:\ ProgramDataです。ここに保存されます:

HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList\ProgramData

オプション:

1)デフォルトのProgramDataパスを代替ドライブに変更できます。そうしますが、作成されるすべての新しいユーザーは新しいprogramdataパスを使用します。したがって、データの最後に2つのProgramDataフォルダーが作成される可能性があります。

2)または、「NTFSジャンクションポイント」を使用することもできます。これを知っている人はそれほど多くありませんが、ジャンクションポイントは、パス(c:\ programdata)に書き込むすべてのプログラムを(D:\ ProgramData)にリダイレクトするように強制する方法です。これは、XP用に設計された古いプログラムがVistaおよびWindows7の新しいフォルダーの場所(ドキュメントと設定がユーザーに置き換えられた)で簡単に機能する方法です。

したがって、GRによって作成されたtmpディレクトリ専用のジャンクションポイントを作成できます。 mkdir D:\ ProgramData robocopy/XJ/MIR "C:\ ProgramData" "D:\ ProgramData" mklink/J "C:\ ProgramData" "D:\ ProgramData"

欠点は、WindowsUpdateが別のドライブ上のプログラムデータではうまく機能しないことです。 http://support.Microsoft.com/kb/949977

注意:Microsoftは、システムディレクトリの移動をお勧めしません。これは、Windows Update、修正プログラム、アップグレードが正しく機能しなくなるためです(完全に失敗します!)

注意して進めてください!

1
ClobberXD