winsxs
フォルダーをデータHDDドライブに移動し、SSDにジャンクションを作成するためのWindows7の詳細な手順のリストを検索していました。
mklink /J oldpath newpath
私はこれを見つけることができましたが、これはスーパーユーザーの質問からリンクされています( winsxsを移動できますか? )が、Vista用であり、... 2007年に公開されました:
私はまた、スーパーユーザーでこれらの答えを見つけました:
Windows 7では、winsxsまたはインストーラーフォルダーのシンボリックリンクまたはジャンクションを作成できますか このスーパーユーザーの質問では、ユーザーは、別のドライブに移動した後、mlink
フォルダーをwinsxs
フォルダーに作成できるかどうかを尋ねています。 そして答えは "インストーラーに対してこれを行うことができます"。しかし、問題は、winsxsのためにそれを行うことができるかということでした。特に、質問の下の最初のコメントの後に、"これらは"すでに "シンボリックリンクであるため、これを行うことはできません"。
Windowsを強制終了せずにWindowsインストーラーフォルダからドライブスペースを解放するにはどうすればよいですか? これはWindows/Installer
フォルダー用であり、winsxsではなく、/D
オプションの代わりに/J
オプションを使用しますmlink
で。しかし、彼らは私がwinsxsでやりたいことをやっています。フォルダーの内容を別のドライブにコピーしてから、mklink /D oldpath newpath
を実行します。しかし、これはwinsxsで実行できますか? (リンクされたブログ投稿もwinsxsフォルダーを移動せず、他のフォルダーのみを移動しました)。また、リンクされたブログ投稿のコメント投稿者は、管理者権限からシステム権限に変更できなかったと報告しています。これは、コマンドを実行したり、フォルダーを移動したりする前の最初のステップです。
Windowsを強制終了せずにWindowsインストーラーフォルダからドライブ領域を解放するにはどうすればよいですか? 前のスーパーユーザーリンクの別のコメント投稿者は、ジャンクションを作成すると、
「msiexecは(明らかに)ジャンクションを無視し、手動でC:\ Windows\Installerを作成します。これにより、1)ジャンクションが削除され、2)ターゲットディレクトリの内容が完全に削除されます。」
これはwinsxsフォルダにも起こりますか?
Winsxsフォルダーを移動して、そのフォルダーへのジャンクションを作成したいのですが、それができるかどうか、またはその結果がわかりません。
/J
(ジャンクション)または/D
(シンボリックリンクリンク)のどのオプションを使用しますか? /J
を推測していて、2つの違いはわかっていますが、他のオプションも回答に表示されているため、もう何もわかりません。さまざまなオプションがさまざまなソースに表示されます。誰が正しいですか?WinSxS
:について知っておくべき最も重要なこと
WinSxSには、主にハードリンクが含まれています。ハードリンクはシンボリックリンクに似ていますが、はるかに透過的です。
ファイルはツリーとしてハードディスクに保存されるのではなく、フラットな構造で保存されます。次に、この構造のアイテムがフォルダーツリーにマップされ、名前が付けられます。このような各マッピングは、単一のハードリンクです。したがって、ハードリンクはファイル名とパスをファイルの内容に接続するものです。
ほとんどのファイルにはハードリンクが1つしかありません。たとえば、ファイルをダウンロードすると、その内容がハードディスクのどこかに保存され、名前付きのハードリンクがC:\Users\<yourUsername>\Downloads
に作成されます。
必要に応じて、同じディレクトリ(異なるファイル名)または同じドライブ上の別の場所に追加のハードリンクを作成できます。ファイルの内容はドライブに1回だけ保存されるため、2番目のハードリンクを作成してもディスク使用量は増加しません。ファイルには2つのパスからアクセスできます。これらのハードリンクは両方とも、プロパティ、変更日、およびファイルの内容を共有します。 1つのファイルへの変更は、2番目のファイルですぐに有効になります。ファイルは、すべてのハードリンクが削除されるまでフラット構造から消去されないため、ハードリンクを削除すると、最後のハードリンクでない限り、ファイルは変更されません。ハードリンクは互いに区別できず、どちらが最初に作成されたかはわかりません。それらは両方とも完全に同等です。 (「マスター」ファイルが1つあるシンボリックリンクとは対照的です。)
他のドライブのファイルは任意のドライブにシンボリックリンクでき、ディレクトリジャンクションはドライブ間で作成できます。ただし、別のドライブ上のファイルへのハードリンクを作成することはできません。すべてのハードリンクは、同じボリューム上のファイルを指している必要があります。
それでは、実験をしてみましょう。 2つのフォルダーを作成し、そのうちの1つに64 KBのファイルを作成し、2番目のフォルダーにこのファイルへのハードリンクを作成します。
C:\Users\gronostaj\Desktop\experiment>mkdir A B
C:\Users\gronostaj\Desktop\experiment>fsutil file createnew A\hardlink1 65536
File C:\Users\gronostaj\Desktop\experiment\A\hardlink1 is created
C:\Users\gronostaj\Desktop\experiment>mklink /h B\hardlink2 A\hardlink1
Hardlink created for B\hardlink2 <<===>> A\hardlink1
次のようなフォルダツリーがあります。
+ experiment
|-+ A
| `-- hardlink1
`-+ B
`-- hardlink2
64KBファイルへのハードリンクが1つ含まれているAのプロパティは次のとおりです。
スジは通ってるようだ。 Bのプロパティ。同じ64KBファイルへのハードリンクも1つ含まれています。
これも結構です。次に、AとBの両方を選択し、プロパティに応じてそれらがどのくらいのスペースを占めるかを見てみましょう。
...そしてこの窓は私たちに嘘をついています。 64KBを使用する物理ファイルは1つだけです。ただし、Windowsエクスプローラーはこれを認識していません。ハードリンクが指すファイルの合計サイズをカウントし、64KBファイルへのハードリンクが2つあります。そのため、これらのフォルダは実際の2倍のスペースを占めると考えられています。 プロパティのフォルダサイズを信頼しないでください。
WinSxSには、Windowsがある時点で使用したシステムファイルへのハードリンクが含まれています。システムファイルがインストールされると、メインの場所とWinSxSにハードリンクされます。新しくインストールしたWindowsシステムでは、WinSxSは数GBの大きさのように見えますが、他の場所にハードリンクされているファイルのみが含まれているため、有効サイズはゼロです。
システムファイルが(たとえばWindows Updateによって)置き換えられると、メインの場所から削除され、その場所に新しいファイルがインストールされます。この新しいファイルは、WinSxSでもハードリンクされています。この時点で、Windowsは新しいバージョンのファイルのみを使用しますが、ハードディスクには2つのバージョンが含まれており、そのうちの1つは使用されていません。これにより、実際にはWinSxSが成長します。
なぜWindowsはこれを行うのですか?
sfc /scannow
が行うことです。この時点で、WinSxSを別のドライブに移動することはできないと結論付けることができます。これは、内部の一部のファイルがC:\Windows
内の別の場所にハードリンクされているためです。それらを別のドライブにコピーしてジャンクションを作成することもできますが、ディスクの総使用量が増加し(追加のハードリンクはスペースを取りません、余分なコピーはスペースを取ります)、おそらくWinSxSを壊します。
WinSxSのサイズを縮小する唯一の合理的な方法は、未使用の古いバージョンのファイルを削除することです。これは、ディスククリーンアップツール(Windowsで使用可能)を使用して、Windows Updateクリーンアップチェックボックス。ディスククリーンアップに表示されない場合は、WinSxSはすでに圧縮されています。