Как лучше всего переместить c: \ users в d: \ users в Vista / W7 [закрыто]

64

Я только что установил Windows 7 RC1 и хочу переместить c: \ users в d: \ users.

Какой лучший способ сделать это?


Из-за того, что Windows 7 создает зарезервированный раздел, который монтируется как C: в консоли восстановления, мне пришлось использовать следующие команды

robocopy /mir /xj D:\Users E:\Users
mklink D:\Users D:\Users /j

Оба D в команде mklink являются правильными. Когда система перезагружается, диск, который был D в консоли восстановления, становится диском C.

Скотт
источник
1
Хороший улов! Мне нужно будет помнить детали этого зарезервированного раздела при переходе на Windows 7
Джимми Р. Хаутс
1
Пожалуйста, посмотрите этот связанный вопрос (для Vista) и ответы: serverfault.com/questions/4624/…
Бенджол
Я не могу оставлять комментарии, поэтому я пишу это в ответе. Кто-то должен предупредить, что параметр / mir (который, по-видимому, обозначает «зеркало») в примере: robocopy / mir / xj D: \ Users E: \ Users удалит все в E: \ Users, которого нет в D : \ Users. На самом деле, мне интересно, действительно ли необходим параметр / mir. В итоге я удалил многие из моих файлов в непустой папке / Users из более старой установки.
Не смешно, что вопрос закрыт как не по теме, но у него есть огромное количество поклонников и противников.
капча
Это потому, что плебс использует этот сайт, чтобы задавать реальные вопросы, подобные этим, для очень реальных проблем, но наши высшие и могущественные повелители чувствуют, что это бесполезно, потому что они изучили этот материал много лет назад, вместо того, чтобы быть брошенным в массовый хаос, который в наши дни IT, как мы ,
Дэвид

Ответы:

65

Вы можете легко переместить всю папку C: \ Users на другой диск после установки Windows:

Предупреждение: это может вызвать проблемы, если / когда вам нужно выполнить восстановление системы

  1. Загрузитесь с установочного носителя и перейдите в командную строку ( нажмите Shift + F10 в диалоговом окне установки )
  2. Используйте Robocopy для копирования C: \ Users в D: \ Users: robocopy c:\Users d:\Users /mir /xj /copyall
    a. /mirговорит robocopy для зеркалирования каталогов, это скопирует все файлы
    b. /xjочень важно, это говорит робокопии не следовать точкам соединения. Если вы забудете это, у вас будет много проблем.
    с. /copyallскопирует все атрибуты, включая ACL и информацию о владельце
  3. Убедитесь, что файлы успешно скопированы
  4. Удалить c: \ Users
  5. Создайте соединение, которое указывает на d: \ Users: mklink c:\Users d:\Users /j

Вот и все. Я использую этот процесс с тех пор, как Vista перешла на RTM без проблем.

Вот статья, которая это объясняет. Просто используйте robocopy вместо xcopy, как он это делает в статье, чтобы избежать возможных проблем с разрешениями ntfs.

Обновление: поскольку я нашел трудный путь, я подумал также упомянуть, что если вы планируете перемещать «Программные данные» или «Программные файлы» с помощью этого метода, вы будете разочарованы, узнав, что все работает как положено , но обновления Windows больше не будут устанавливаться. Я не уверен, если это было исправлено Win 7.

Обновление 2: @Benjol имеет сообщение в блоге, в котором подробно описывается метод перемещения папки профилей, который воссоздает узлы, которые этот метод исключает. Если вы столкнетесь с какими-либо проблемами с устаревшими приложениями, посмотрите здесь и посмотрите, решит ли его метод эту проблему.

Джимми Р. Хаутс
источник
1+ offline-move + точка соединения - самое простое решение - но я бы добавил, что сценарий автоматической установки может сделать это и во время установки ^^
Оскар Дювеборн
Это действительно хороший взлом ... и я рад, что кто-то опубликовал все шаги, которые необходимо предпринять, чтобы выполнить это действие.
mrTomahawk
8
-1: обратите внимание, что этот подход НЕ воссоздает все соединения, которые не были скопированы robocopy (nb robocopy не может копировать соединения даже без / xj, он создает новые папки). Это не остановит работу окон, но, вероятно, сломает устаревшие приложения, которые ищут папки типа «Мои документы» и т. Д.
Бенджол
1
Измените настройки вашей папки, чтобы просмотреть системные и скрытые файлы. Папка «Пользователи» переполнена узлами, которые указывают (например) на «Мои документы» на «Документы» и т. Д. Она предназначена для обратной совместимости со старыми приложениями, поэтому вы можете заметить или не заметить разницу, в зависимости от того, что вы установили.
Бенджол
3
+1 @ Джимми за подробное объяснение, как это сделать. Я очень устал от того, что Windows просто идет вперед и размещает пользовательские данные и установку приложений везде, где бы они ни были, не спрашивая меня в первую очередь! WTF они сделали так трудно изменить ?? Что, если мой основной раздел - это SSD-диск, и на нем установлены Windows для повышения производительности? Я, черт возьми, не хочу, чтобы окна использовали этот раздел как проклятую поджелудочную железу для всего!
greatwolf
11

Самый простой и рекомендуемый способ - переместить отдельные специальные папки в пользовательский каталог, например «Документы», «Музыка», «Видео» и т. Д. Это можно сделать, выполнив следующие действия:

  1. Щелкните правой кнопкой мыши> Свойства
  2. Вкладка "Местоположение"
  3. Заполните нужное место и нажмите «переместить»

Недостатком этого является то, что он по-прежнему оставляет основную папку «Пользователи» на месте.

Жесткий способ является гораздо более сложным и рискованным:

В моем поиске решения я нашел только два простых способа перемещения расположений каталогов профилей пользователей с системного диска:

  1. Задайте папку профиля пользователя во время установки, используя файл автоматической установки.
  2. Переместите отдельные папки в вашем профиле пользователя, что можно сделать с помощью проводника (который обновит разделы реестра HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Shell Folders и HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ User Скоросшиватели).

Однако для меня этого было недостаточно, я хотел, чтобы папка моего профиля пользователя была перемещена в отдельный раздел / том, включая настройки реестра. Я обнаружил, что на самом деле это не так сложно, если вы устраиваете массовую замену ключей и значений реестра.

Вот как я переместил местоположение своего профиля пользователя. Обратите внимание, что я хотел, чтобы все профили были перемещены, включая Public и Default, поэтому некоторые из этих шагов можно пропустить, если вы этого не хотите:

  1. Убедитесь, что у вас есть полная резервная копия вашей системы!
  2. Скопируйте исходный каталог профиля по умолчанию в новое расположение (например, из C: \ Users \ Default в D: \ Users \ Default).
  3. Скопируйте исходный каталог Public Profile в новое место (например, из C: \ Users \ Public в D: \ Users \ Public).
  4. Перейдите к HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList.
  5. Измените значение ключа по умолчанию на новое местоположение профиля пользователя (например, D: \ Users \ Default).
  6. Измените значение открытого ключа на новое местоположение профиля пользователя (например, D: \ Users \ Public).
  7. Измените значение ProfilesDirectory на новое местоположение профиля пользователя (например, D: \ Users).
  8. На этом этапе вам нужно перезапустить и снова войти в систему как другой пользователь, который никогда ранее не входил в систему и, следовательно, не создал профиль. В моем случае пользователь с правами администратора никогда не входил в систему, поэтому я включил его, чтобы администратор мог войти и использовать его. Вы можете включить вход в систему администратора, загрузив управление компьютером, затем перейдите в раздел «Учетные записи пользователей», отредактируйте свойства для администратора и снимите флажок «Отключить вход в систему».
  9. После первого входа в систему с новой учетной записью пользователя вы увидите «Создание рабочего стола» и другие подобные вещи, пока Windows создает ваш профиль. Обратите внимание, что новый профиль должен быть создан в новом месте.
  10. После входа попытайтесь закрыть как можно больше приложений. Это предотвратит блокировку большинства файлов, поэтому вы не сможете их скопировать.
  11. Скопируйте всю исходную папку профилей пользователей из исходного местоположения в новое местоположение (например, C: \ Users * в D: \ Users). (Смотрите следующий шаг после начала копирования).
  12. Есть несколько вещей, которые нужно отметить во время этой копии. Были тысячи файлов .TMP, которые были заблокированы и не будут копироваться. Я просто пропустил эти файлы. Я удерживал Alt-S, чтобы увидеть все пропущенные файлы и убедиться, что пропускаются только файлы .TMP. Да, это заняло немного времени, но, по крайней мере, я был уверен, что скопировал все свои файлы. Этот процесс, вероятно, может быть упрощен с помощью командной строки или powershell.
  13. Если в вашем случае есть файлы, которые не будут скопированы, вы можете запустить файл procxp.exe, предоставленный sysinternals. Затем выполните поиск дескриптора и найдите часть имени файла. procxp сообщит вам, какие программы блокируют файл. Пока вы закрыли столько программ, сколько могли, этого не должно происходить.
  14. Найдите и загрузите программу, которая будет выполнять поиск и замену в реестре. Я не буду предлагать один, потому что я не нашел ни одной программы, которая работала бы отлично. В итоге я скачал несколько разных бесплатных приложений и использовал их все.
  15. Используя программу поиска и замены реестра, выполните поиск исходной папки профиля пользователя и замените ее новой папкой профиля пользователя (например, найдите «C: \ Users» и замените на «D: \ Users». Обратите внимание, что некоторые из приложения, которые я использовал, меняли только значения, а не имена ключей. Однако все ключи, которые нужно было пометить, были связаны с MuiCache. Я не знаю, нужно ли их действительно обновлять. Я сделал это только для того, чтобы убедиться.
  16. Выйти. Войдите в систему с тем же пользователем. Повторяйте шаг 14, пока не останется ничего заменить. Причина этого шага заключается в том, что при выходе из системы некоторые программы обновляют реестр, используя старый путь к профилю пользователя.
  17. Запустите regedit.exe, выполните поиск исходного пути к профилю пользователя и убедитесь, что он не существует. Причина этого шага заключается в том, что (как отмечено в шаге 13) я не доверял ни одной из программ поиска и замены реестра, которые использовал. Мне пришлось обновить около дюжины ключей и значений вручную, так как поиск и замена пропустили их.
  18. Чтобы вы могли легко найти программы, которые не используют реестр и жестко заданные пути к профилям, переименуйте исходную папку профиля (например, переименуйте C: \ Users в C: \ ~ Users).
  19. Выйти. Войдите в систему под своим обычным пользователем. Все должно работать правильно, кроме программ, которые используют жестко закодированное местоположение профиля пользователя.
  20. Существует два простых метода, которые можно использовать для поиска программ, которые используют «жестко запрограммированное» местоположение профиля и по-прежнему ищут исходный путь к профилю пользователя. Вы можете использовать упомянутый выше трюк procxp.exe и искать дескрипторы в исходном местоположении профиля. Вы также можете отслеживать местоположение профиля oringal, чтобы увидеть, были ли созданы какие-либо новые папки или файлы. Например, в моем случае FolderShare создал несколько папок и файлов в каталоге C: \ Users \ MyUsername \ AppData \ Local \ FolderShare. Поэтому я обновил настройки FolderShare, указав другой путь, а затем удалил каталог C: \ Users (обратите внимание, что C: \ ~ Users все еще существует в качестве резервной копии).
  21. Поскольку теперь вы уверены, что все ваши данные были перемещены (правильно ??????), вы можете удалить резервную копию исходного расположения профиля пользователя (например, C: \ ~ Users).

Источник: Изменить местоположение папки профиля пользователя в Vista

Учитывая тот факт, что Microsoft упростила изменение местоположения специальных папок и столь же сложно изменить расположение всей структуры пользовательских папок, я настоятельно рекомендую вам воспользоваться легким подходом .

Арон Роттвил
источник
5
Хлоп! Не рекомендовал бы эти процессы моему худшему врагу :-), но ... +1, потому что это работает, независимо от того, насколько грязным может показаться. Интересно, а что еще может «сломать» такой хак?
Я видел эту статью, но я хотел переместить весь каталог пользователей, и хотел избежать суеты в реестре.
Скотт
1
Я хотел бы добавить, что проблема с перемещением всех «Специальных» каталогов, а не Пользователей, заключается в том, что вы не можете перемещать AppData как специальную папку, и все большее число программ хранит там свои кеши, хранилища и большие объемы данных.
Акварион
2
@Aquarion: НО каталоги Local, LocalLow и Roaming можно перемещать с помощью вкладки местоположения :)
Milind R
Достижения в технологии за четыре года действительно безграничны. Возможность перенаправить почти каждую отдельную папку в каталоге и каждую отдельную папку в его подкаталоге, но не просто перенаправить любой родительский каталог, безусловно, является разумным ограничением, которое явно отвечает наилучшим интересам пользовательской базы.
Aquarion
5

Вот правильный процесс

  1. Загрузитесь с установочного носителя и перейдите в командную строку (я полагаю, вам нужно сначала нажать кнопку восстановления)
  2. Используйте Robocopy для копирования C: \ Users в D: \ Users: robocopy c: \ Users d: \ Users / mir / xj / copyall
    a. / mir говорит robocopy зеркалировать каталоги, это скопирует все файлы
    b. / xj очень важен, это говорит робокопии не следовать точкам соединения. Если вы забудете это, у вас будет много проблем.
    с. / copyall скопирует все атрибуты, включая ACL и информацию о владельце
  3. Убедитесь, что файлы успешно скопированы
  4. Удалить c: \ Users
  5. Создайте соединение, которое указывает на d: \ Users: mklink c: \ Users d: \ Users / j

Я сделал инструкцию Джимми, и я почти работал. Однако у меня возникла странная проблема с IE, я не смог загрузить файл. Я нашел решение, чтобы исправить мою проблему с загрузкой, и оно задокументировано на суперпользователе :

Хапкидо
источник
Благодарю. Я не могу отредактировать ответ, или я бы добавил ваши изменения.
Скотт
+1 за / copyall Я хотел добавить это давным-давно и никогда не удосужился к этому.
Джимми Р. Хаутс
3

Некоторые ресурсы для «автоматического» перемещения C: \ Users с помощью автоматического сценария во время установки.

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

Когда дело доходит до самого сценария автоматической установки, есть элемент с именем FolderLocations, у которого есть дочерний элемент ProfilesDirectory, который вы можете указать следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="oobeSystem">
<component name="Microsoft-Windows-Shell-Setup"
publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"
processorArchitecture="x86">
<FolderLocations>
<ProfilesDirectory>d:\users</ProfilesDirectory>
</FolderLocations>
</component>
</settings>
</unattend>

Вот статьи Microsoft о развертывании Vista, в которых рассказывается, как работать с unattend.xml, и вот лучший источник, который я нашел, из расширенной статьи Рамеша Сринивасана «Как перемещать специальные папки», в которой подробно объясняется, как это сделать и на что следует обращать внимание. (включая тот факт, что даже после запуска этого сценария автоматической установки, например, в качестве аргумента для setup.exe, все еще существуют точки соединения, такие как c: \ documents and settings, которые указывают на старое расположение, которое необходимо исправить вручную (если возможно)).

Оскар Дювеборн
источник
2

"C:\users"является системной папкой, которая эквивалентна в "C:\Documents and Settings"Windows XP / 2000 / NT, и из-за этого было очень трудно, если не невозможно, переместить папку. Было несколько способов обойти эту проблему, перемещая подпапки через TweakUI или некоторые другие подобные хаки вместо родительской папки, и здесь есть много сообщений об этом:

http://www.tech-recipes.com/rx/1409/move-your-documents-and-settings-username-profile-off-of-the-c-drive/

http://support.microsoft.com/kb/236621

http://support.microsoft.com/default.aspx?scid=kb;en-us;314843

http://support.microsoft.com/default.aspx?scid=KB;EN-US;q310147&ID=KB;EN-US;q310147

Но в отношении Vista / Windows 7 кажется, что этот процесс, возможно, стал проще. Вот несколько постов, в которых рассказывается, как это сделать в Vista, в основе которой лежит Windows 7:

http://www.ehow.com/how_2064387_relocate-user-files-windows-vista.html

http://www.technospot.net/blogs/how-to-move-users-folder-to-different-location-in-windows-vista/

http://www.howtogeek.com/howto/windows-vista/moving-your-personal-data-folders-in-windows-vista-the-easy-way/

mrTomahawk
источник
Как я уже сказал в своем ответе, вы не можете переместить C: \ Users на другой диск. Поскольку ваши ссылки повторяются, вы можете переместить некоторые из «специальных папок» внутри него, но перемещение C: \ Users невозможно.
2

Это немного поздно ...

Проблем с перемещением c: \ users на другой диск можно избежать, перемещая отдельные профили, а не весь каталог.

Если вы оставите соединение в c: \ users со ссылкой на новый каталог, все пути продолжат работать, как и в решении Jimmie Houts, однако я не перемещаю администратора, сетевой сервис, общедоступные и т. Д., Поэтому все обычные системные функции, такие как Обновление Windows, продолжайте работать как обычно.

Ян

Йен Мерфи
источник
0

Я долго исследовал одно и то же. Это не может быть сделано. Вы можете перемещать «специальные» папки («Документы», «Моя музыка» и т. Д.), Но не можете перемещать каталог « Пользователи» .


источник
1
Мне удалось переместить каталог пользователей.
Скотт
0

Большая часть этого скопирована с других, затем изменена и расширена настоящим автором tu servidor.

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

Сначала создайте точку восстановления, на всякий случай: 1. Откройте систему, нажав кнопку «Пуск», щелкнув правой кнопкой мыши «Компьютер» и затем выбрав «Свойства». 2. На левой панели щелкните Защита системы. Если вас попросят ввести пароль администратора или подтверждение, введите пароль или предоставьте подтверждение. 3. Перейдите на вкладку «Защита системы» и нажмите «Создать». 4. В диалоговом окне «Защита системы» введите описание и нажмите кнопку «Создать».

Затем перейдите в раздел «Восстановление системы» / «Командная строка»: загрузитесь с установочного DVD-диска Win7, выберите язык, валюту и клавиатуру и нажмите «Далее». На экране «Установить сейчас» выберите «Восстановить компьютер». Вам будет предложено выбрать «Восстановить и перезагрузить» с помощью параметров восстановления системы, выберите «Нет». Затем убедитесь, что Windows 7 указана как одна из установленных ОС, доступных для восстановления, и что она выбрана, и нажмите «Далее». Вам будет предоставлен список инструментов восстановления. Выберите «Командная строка».

Найдите ваш виртуальный диск Windows, загруженный с носителя Win7 (возможно, C или X), найдите ваш настоящий диск Windows / SSD (D или E) и найдите жесткий диск (обычный жесткий диск) (D или E).

В моей системе нормально, C = SSD с Windows на нем, D = жесткий диск с данными

Используя Win7 Update media, диски в режиме восстановления были настроены по-другому, поэтому: X: виртуальный / временный диск Windows, E: фактический диск Windows / SSD, D: жесткий диск, жесткий диск, который я хотел установить \ Users.

Некоторые сообщают, что режим восстановления системы настроит их диски следующим образом: C: виртуальный / временный диск Windows D: фактический диск Windows / SSD E: жесткий диск, который они хотят установить / Users.

В командной строке вы будете использовать Robocopy (НЕ xcopy!), Чтобы скопировать c: \ Users в d: \ Users, затем удалить старый c: \ Users, а затем создать символическую ссылку из c: \ Users в D: \ Users. Обратите внимание, что вы должны делать это по порядку, и у вас не должно быть объявления: \ Users dir, прежде чем вы это сделаете.

ПРИМЕЧАНИЕ: в окне командной строки восстановления системы ваши диски не совпадают с теми, которые будут после выхода из режима восстановления! Так что настройте команды ниже, чтобы узнать, как приводы находятся в режиме восстановления, и потом они получатся правильными.

Я использовал: robocopy / mir / xj E: \ Users D: \ Users

Для перемещения / Пользователи с Windows / SSD на HDD. / mir говорит robocopy зеркалировать каталоги, это скопирует все файлы и разрешения. / xj очень важен, это говорит робокопии не следовать точкам соединения. Если вы забудете это, у вас будет много проблем. Убедитесь, что ни один файл не удалось скопировать (FAILED column = 0).

Затем вы должны удалить старую папку Users с диска Windows / SSD (c :), прежде чем вы сможете создать символическую ссылку: Я использовал: rmdir / S / QE: \ Users

Создайте NTFS Junction / символическую ссылку, которая указывает на новую папку Users:

Я использовал: mklink / JE: \ Users D: \ Users

Используйте переключатель / J, чтобы создать соединение, которое является жесткой символической ссылкой. (Если вы используете ключ / D, вам также придется редактировать реестр, потому что это не будет жесткая ссылка.) Используя / J, когда Windows ищет каталог C: \ Users, он найдет его! Но это будет на HDD вместо SSD. Tricky!

Чтобы увидеть доказательство того, что вы создали, все еще в окне командной строки перейдите в реальный Windows / SSD и выполните команду «dir», и вы увидите: «Users [D: \ Users]»

Теперь перезагрузите компьютер, и вы увидите / Users на вашем жестком диске, и все. Никакой дальнейшей настройки или возиться не требуется. Все новые профили пользователей будут храниться на диске d: как и любые пользовательские данные. И это достижимо без каких-либо проблем в реестре, поиска и замены значений или необходимости возиться с новыми профилями. Полностью установить и забыть.


источник
1
Это похоже на более длинную версию ответа Джимми Р. Хаутса, но она не затрагивает ничего нового или проблем с его ответом (не копируя символические ссылки).
Джеймс МакМахон
0

Это не совсем то, что вам нужно, но если в Windows 7 действительно хорошая альтернатива, это изменить расположение библиотек. Этим способом вы сохраняете документы, изображения и т. Д., Но не весь профиль на диске D.

Прошлой ночью я создал инструмент, который может быть полезен для вас: Установить библиотеки .

Рикардо Поло
источник