web-dev-qa-db-ja.com

ジャンクションリンクを使用したWindowsフォルダーの移動(mklink)

SSDのスペースがかなり少なく実行されており、Windowsに19GBのフォルダー(%windir%\ Installer)が突き出ており、安全に削除できないようです(ここで説明しているように https://serverfault.com)。/q/15746 )。

ここで、mklinkは、Junctionリンクと呼ばれるきちんとした小さなものを提供します-cmdプロンプトで起動し、すべてのファイルを他のハードドライブに移動してから、これを実行します。

mklink /J C:\Windows\Installer D:\Windows\Installer

私は何らかの方法でWindowsを台無しにしていますか、それともこれで問題ありませんか?フォルダーのアクセス許可/属性はリンク全体で同じままですか?

以前にハードリンクを使用したことがあり、SSDを大幅に解放する魅力のように機能しましたが、システムフォルダーで試したことはありません(機能しない理由はわかりませんが、私が間違っている場合にウィンドウ全体を再インストールする気分)

24
veljkoz

OK、私はリスクを冒しました、そしてそれはそれだけの価値がありました-すべては正常に動作しますが、私は今私のSSDの17GBを解放しました。

基本的に、手順は次のとおりです。

  1. PCを再起動し、F8キーを押し続けてブートメニューを表示し、[セーフモードでコマンドプロンプト]を選択します(これにより、Windowsフォルダーを移動できるようになります)。
  2. コマンドプロンプトが表示されたら、コマンドを入力してフォルダーを別のドライブに移動します。
    robocopy C:\Windows\Installer D:\Windows\Installer /MOVE /e
  3. 次に、不足しているフォルダの「ジャンクション」リンクを作成します。
    mklink /J C:\Windows\Installer D:\Windows\Installer

もちろん、これは%WINDIR%がC:\ Windowsであり、Dドライブがより多くのスペースがあるドライブであり、 "D:\ Windows\Installer"に宛先が必要であることを前提としています(任意のフォルダーである可能性があります。一貫性)など...

これでうまくいくはずです。

30
veljkoz

メインドライブ、120 GB SSDのスペースを再利用しようとしているときに、Users、_Program Files_、Program Files (x86)、を再配置する方法について これらの手順 を見つけましたおよびProgramData。次のように、「デフォルトの場所を設定する」ためのレジストリ編集が含まれています。

  1. HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersionにリストされているパスのドライブ文字を置き換えます(たとえば、_C:\Program Files\Common Files_は_D:\Program Files\Common Files_になります)
  2. 環境変数_%SystemDrive%_をHKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/ProfileListのドライブパスに置き換えます(つまり、_%SystemDrive%\ProgramData_は_D:\ProgramData_になります)
3
Adam Cox

Pagefile.sysとswapfile.sysにも同じトリックを使用できます(hiberfile.sysの場合も不明です。マルチブートでの休止が嫌いなので、テストされていません)。

シンボリックリンクを作成する前に仮想RAMを非アクティブ化して再起動し、作成後に仮想RAMを再アクティブ化してください。

リンクを作成する前に、リンク先に空のファイルを(メモ帳で)作成する傾向があります。

注意:Windows10 UpGradeはリンクを削除して実際のファイルを配置します。UpGradesの後、プロセスを繰り返すことができます。

WindowsXP(私が試した最も古い)以来、Windows 10バージョン1803.48まで作業しています。

2
Anonymous

同様の手順を踏みましたが、ファイルのコピーを行っている間も自分のコンピューターを使用できるようにしたいと思っていました(私のフォルダーは40 GBでした)。

  1. フォルダを手動でF:\ Installerにコピーします
  2. Windows 8.1を使用しているので、コマンドラインブートを行うには、Shiftキーを押しながら[再起動]をクリックし、[詳細設定]をクリックします。
  3. コマンドラインに入ると、使用するドライブ文字を特定する必要がありました(OSが完全に起動したときの%SystemDrive%ですが、Cではありませんでした)。私はecho list volume | diskpartを使用して、C:ドライブがE:と呼ばれるようになり、F:ドライブがまだF:ドライブであることを確認する必要がありました。
  4. E:\ Windows\Installerの隠し属性とシステム属性をattrib -s -h E:\Windows\Installerで削除し、rename "E:\Windows\Installer" "Installer_old"で名前を変更しました
  5. 次に、mklink /J E:\Windows\Installer F:\Installerを使用してジャンクションを作成できます
2
kevinpo
  1. C:\Windows\InstallerD:\C\Windows\Installerなどの別のディスクにコピーします。
  2. コピー中にC:のソースディレクトリが変更されていない場合は、両方のフォルダーのサイズを確認して比較します。
  3. ディスクC:のフォルダの名前を変更します。 Installer => InstallerX
  4. 管理者としてコマンドを実行し、次のコマンドを実行します:
    • mklink /d C:\Windows\Installer D:\C\Windows\Installer
  5. すべて問題なければ、しばらく待ちます(数日)。
    • はいの場合、バックアップC:\Windows\InstallerXを削除できます。
    • いいえの場合、シンボリックフォルダーC:\Windows\Installerを削除し、InstallerXInstallerに名前変更して戻すか、フォルダーD:\C\Windows\InstallerC:\Windows\Installerにコピーして戻します。
0
Petr Voborník