Переміщення папок Windows за допомогою з'єднання Junction (mklink)


23

Місця на моєму SSD займає досить мало, і, здається, у Windows є папка 19 Гб, яка стирчить (% windir% \ Installer) і не може бути безпечно видалена (як пояснено тут: /server//q/15746 ).

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

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

Я буду якимось чином зіпсувати свою Windows, чи це все в порядку? Чи дозволи / атрибути папок залишатимуться однаковими для посилання?

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


Це буде возитися. Я зробив саме це, і після того, як програмне забезпечення типу Ramdisk не вдалося встановити. Те саме з mklink / J та / D, лише переміщення папки назад до c дозволить закінчити інсталяцію. Можливо, і з оновленнями Windows були проблеми.
Cmazay

Відповіді:


29

Гаразд, я ризикнув, і це того варте - все працює нормально, але я звільнив 17 ГБ на своєму SSD.

В основному, такі дії:

  1. Перезавантажте комп'ютер, натискайте клавішу 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" (це може бути будь-яка папка, просто будьте послідовно) тощо ...

Це повинно зробити трюк.


це працює у Windows 10?
Syaiful Nizam Yahya

Слід - вся інформація все ще застосовується 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

Навіщо турбувати переміщуватися / liningk своп тимчасовим вмістом, який ви не хочете зберігати, якщо ви можете просто відключити його на одному диску та включити на іншому?
Олег Вікторович Волков

0
  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.