Перемещение папок Windows с помощью Junction links (mklink)


23

На моем SSD недостаточно места, и в Windows, похоже, торчит папка объемом 19 ГБ (% windir% \ Installer), которую нельзя безопасно удалить (как описано здесь: https://serverfault.com/q/15746 ).

Теперь mklinkесть небольшая вещь под названием Junction links - если я загружаюсь в командной строке cmd, перемещаю все файлы на другой жесткий диск и запускаю это:

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

Буду ли я портить Windows каким-то образом, или это нормально? Разрешения / атрибуты папки останутся неизменными по всей ссылке?

Раньше я использовал жесткие ссылки, и это работало как чудо, значительно освобождая мой SSD, но я никогда не пробовал его в системных папках (я не понимаю, почему он не работает, но я не в настроение переустановки целых окон на случай если я ошибаюсь)

Ответы:


29

Хорошо, я рискнул, и это того стоило - все работает нормально, но теперь я освободил 17 ГБ на моем SSD.

В основном, шаги:

  1. Перезагрузите компьютер, постоянно нажимайте клавишу F8, чтобы открыть меню загрузки, и выберите «Командная строка в безопасном режиме» (это позволяет перемещать папку Windows).
  2. Когда появится командная строка, введите команду для перемещения папки на другой диск:
    robocopy C:\Windows\Installer D:\Windows\Installer /MOVE /e
  3. Затем создайте ссылку «Junction» для отсутствующей папки:
    mklink /J C:\Windows\Installer D:\Windows\Installer

Конечно, это предполагает, что ваш% WINDIR% - это C: \ Windows, что ваш диск D - это тот, на котором больше места, и вы хотите, чтобы ваш пункт назначения находился в «D: \ Windows \ Installer» (это может быть любая папка, просто в соответствии)

Это должно сделать свое дело.


это работает в Windows 10?
Шайфул Низам Яхья

Это должно - вся информация все еще применяется AFAIK. Если вы попробуете, дайте нам знать, как все прошло!
veljkoz

Работал на Windows 8 - очень круто, спасибо.
Дунк

1
Работал на Windows 7!
glenviewjeff

3
Помните, что это может вызвать проблемы при установке основных обновлений Windows (например, Windows 10 Fall Creators Update), поскольку узел будет заменен пустой папкой.
0xA3

3

При попытке освободить место на основном диске, на 120GB 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)

1
Примечание. Любые уже установленные приложения могут по-прежнему смотреть в старое местоположение, если их записи конфигурации / реестра указывают на местоположение, которое было разрешено до этого изменения. Переустановка этих приложений может решить проблему.
TWiStErRob

2

Я предпринял аналогичные шаги, но я хотел иметь возможность использовать мой компьютер, пока я копировал файл (моя папка была 40 ГБ).

  1. Вручную скопируйте папку в F: \ Installer
  2. Я использую Windows 8.1, поэтому для загрузки из командной строки я удерживал Shift, нажимая кнопку «Перезагрузить», а затем «Дополнительно».
  3. Оказавшись в командной строке, я должен был выяснить, какую букву диска использовать (это был не C: хотя это мой% SystemDrive%, когда моя ОС полностью загружена). Мне пришлось использовать, 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

Вы можете использовать один и тот же трюк для pagefile.sys и swapfile.sys (не уверен, если также для hiberfile.sys, не проверял, так как я ненавижу гибернацию на мультизагрузке).

Просто убедитесь, что деактивировали виртуальный оперативный памяти и перезагрузите до создания символических ссылок, а затем после их создания реактивировать виртуального оперативного диска.

Я имею тенденцию создавать (с помощью блокнота) пустой файл по назначению ссылки до создания ссылки.

Помните: когда Windows10 UpGrade удалит ссылки и поместит реальные файлы, после UpGrades вы можете повторить процесс.

Работа до Windows 10 версии 1803.48, начиная с WindowsXP (самая старая, которую я пробовал).


если вы не хотите гибернации, включите powercfg -h offвместо этого. Использование ссылок на эти файлы звучит как верная квитанция за катастрофу
NiKiZe

1
  1. Скопируйте C:\Windows\Installerна другой диск, например D:\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и переименовать обратно InstallerXв Installer, или скопировать обратно в папку D:\C\Windows\Installerс C:\Windows\Installer.

Это дублирует другой ответ и не добавляет новый контент. Пожалуйста, не публикуйте ответ, если у вас нет чего-то нового.
DavidPostill
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.