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

Я только что установил 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.

9 ответов

Решение

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

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

  1. Загрузитесь с установочного носителя и перейдите в командную строку ( нажмите Shift + F10 в диалоговом окне установки)
  2. Используйте Robocopy для копирования C:\Users в D:\Users: robocopy c:\Users d:\Users /mir /xj /copyall
    а. /mir говорит robocopy для зеркалирования каталогов, это скопирует все файлы
    б. /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. Правый клик -> свойства
  2. Вкладка "Местоположение"
  3. Заполните нужное место и нажмите "переместить"

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

Трудный путь намного сложнее и рискованнее:

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

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

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

Вот как я переместил местоположение своего профиля пользователя. Обратите внимание, что я хотел, чтобы все профили были перемещены, включая 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. Change the value of the Public key to the new user profile location (eg D:\Users\Public).
  7. Change the value of the ProfilesDirectory to the new user profile location (eg D:\Users).
  8. At this point, you need to restart and log back in as a different user that has never logged in before and therefore does not have a profile created. In my case, the Administrator user had never logged in before so I enabled it so that Administrator could log in and used that. You can enable Administrator login by loading Computer Management and then go to User Accounts, edit the properties for Administrator, and then uncheck Disable Login.
  9. After logging in for the first time with the new user account, you will see “Creating Desktop” and other things like that while Windows is creating your profile. Note that the new profile should be created in the new location.
    1. After logging in, try to close as many applications as possible. This will prevent most files from being locked so that you cannot copy them.
    2. Copy the entire original user profiles folder from the original location to the new location (eg C:\Users* to D:\Users). (See next step after copy starts).
    3. There are a few things to note during this copy. There were thousands of.TMP files that were locked and would not copy. I just skipped these files. I held down Alt-S so that I could see all of the skipped files and make sure that there were only.TMP files being skipped. Yes, this took a little while, but at least I was confident that I got all of my files copied. This process could probably be made easier using the command prompt or powershell.
    4. If, in your case, there are some files that will not copy, you can run procexp.exe, which is file provided by sysinternals. Then do a Find Handle and search for part of the filename. procexp will tell you which programs are locking the file. As long as you closed as many programs as you could, though, this should not happen.
    5. Find and download a program that will do a Search & Replace on the registry. I will not suggest one because I did not find one single program that worked perfectly. I ended up downloading a few different freeware applications and using all of them.
    6. Using the Registry Search & Replace program, do a search for the original user profile folder and replace it with the new user profile folder (eg search for “C:\Users” and replace with “D:\Users”. Note that some of the applications I used would only change values and not key names. However, the keys that needed to be chagned were all related to MuiCache. I do not know if these actually need to be updated. I did just to make sure.
    7. Выйти. Log back in with the same user. Repeat step 14 until there is nothing left to replace. The reason for this step is that on logout, some programs seem to update the registry using the old user profile path.
    8. Run regedit.exe and do a search for the original user profile path and make sure it does not exist. The reason for this step is because (as noted in step 13), I did not trust any of the Registry Search & Replace programs I used. I ended up needing to update about a dozen of the keys and values manually, since the search & replace missed them.
    9. So that you can easily find programs that do not use the registry and hard-coded profile paths, rename your original profile folder (eg rename C:\Users to C:\~Users).
    10. Выйти. Log back in as your usual user. Everything should be working correctly except for programs that use a “hardcoded” user profile location.
    11. Существует два простых метода, которые можно использовать для поиска программ, которые используют "жестко запрограммированное" местоположение профиля и по-прежнему ищут исходный путь к профилю пользователя. Вы можете использовать упомянутый выше трюк procxp.exe и искать дескрипторы в исходном местоположении профиля. Вы также можете отслеживать местоположение профиля oringal, чтобы увидеть, были ли созданы какие-либо новые папки или файлы. Например, в моем случае FolderShare создал несколько папок и файлов в каталоге C:\Users\MyUsername\AppData\Local\FolderShare. Поэтому я обновил настройки FolderShare, указав другой путь, а затем удалил каталог C: \ Users (обратите внимание, что C: \ ~ Users все еще существует в качестве резервной копии).
    12. Поскольку теперь вы уверены, что все ваши данные были перемещены (правильно??????), вы можете удалить резервную копию исходного расположения профиля пользователя (например, C: \ ~ Users).

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

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

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

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

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

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

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

Когда дело доходит до самого сценария автоматической установки, есть элемент с именем 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, которые указывают на старое расположение, которое необходимо исправить вручную (если возможный)).

"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/

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

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

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

Ян

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

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

Большая часть этого скопирована с других, затем изменена и расширена нынешним автором 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 диски в режиме восстановления были настроены по-другому, поэтому: 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 /Q E:\Users

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

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

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

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

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

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

Другие вопросы по тегам