Итак, рассмотрим задачу переноса папки профилей пользователей на этапе, когда установка Windows уже произведена без учета корректировки расположения папки Users.
Аналогичная задача с разных сторон описана для ОС Windows XP (http://meteozond.habrahabr.ru/blog/50607/, http://support.microsoft.com/kb/236621/ru и т.п.), однако в ОС Windows начиная с Windows Vista появляются новые нюансы и связаны они в первую очередь с использованием таких особенностей NTFS, как junction points. Наверное Вы уже заметили наличие в свежеустановленной системе Windows Vista или Windows 7 папки с иконкой, подобной ярлыкам. Такими папками в Windows 7, например, являются C:\Documents and Settings, C:\Users\All Users и т.д. Опуская технические детали можно сказать, что эти папки представляют собой ссылки на прежние расположения папок пользователей (как то было в Windows XP) сделанные на уровне файловой системы NTFS и созданы они были именно для того, чтобы «смягчить» переход с Windows XP, сохраняя совместимость с устаревшими приложениями.
И всё бы ничего с их переносом, однако же, есть одно «но». Все разумные стандартные средства копирования/переноса файлов в одной половине своей при встрече такой папки создадут неизвестный объект NTFS с тем же именем, в другой же упадут в бесконечную рекурсию, копируя папки сами в себя. То есть существует очень мало средств, которые на самом деле понимают что такое junction point и уж тем более умеют корректно работать с ними.
Одним из средств умеющих корректно работать с junction points является утилита XXCOPY от издателя Pixelab. Она обладает обширным набором функций копирования, включающим в себя функции копирования прав доступа, резервного копирования, условного копирования и т.п. И конечно же функции для копирования junction points. Для того чтобы в полной мере воспользоваться возможностями XXCOPY необходимо использовать версию Pro. Досада здесь заключается в том, что она не является бесплатной, однако мы нисколько не нарушим лицензионного соглашения, если воспользуемся триальным периодом в 60 дней для наших целей.
Итак, всё готово для начала переноса папки Users и в этой статье мы будем рассматривать случай, когда операционная система уже установлена и ведется ее активная эксплуатация. В целом процесс переноса выглядит следующим образом:
Теперь немного подробнее:
1. Необходимо создать нового пользователя с именем типа TempUser, который будет использован для произведения операции переноса данных. Перезагрузимся, чтобы очистить блокировки на файлы профилей пользователей и входим от имени только что созданного временного пользователя.
2. Тут начинается самое интересное, поскольку количество ключей XXCOPY поражает воображение даже опытных линуксоводов. Не мудрствуя лукаво, сообщаю вам готовую команду, которую следует запустить в cmd для того, чтобы скопировать папку профилей пользователей на диск D:
xxcopy c:\Users d:\Users /E /H /K /SC /oE1
3. В реестре следует прописать пути к новому расположению папки профилей пользователей. В ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList следует изменить ключи Default, ProfilesDirectory и Public в нашем случае на «D:\Users\Default», «D:\Users» и «D:\Users\Public» соответственно. В ветке ProfileList также находятся ветки реестра хранящие параметры пользователей, зарегистрированных в системе и если мы хотим, чтобы профили существующих пользователей также были корректно перенесены, необходимо переписать ключ ProfileImagePath для каждой ветки пользователя.
4. Все готово к применению внесенных изменений, при этом обратите внимание, мы в действительности не переносили, а копировали данные, поэтому в случае ошибок можно будет легко вернуться назад. Перезагружаемся и входим в систему от имени учетной записи, являющейся администратором системы (полагаю это будет Ваша обычная учетная запись).
5. После того как мы убедимся, что система загрузилась корректно и профили теперь находятся не на системном диске, воспользуемся возможностями системы NTFS, которые нам так мешали, в своих целях. Создадим на системном диске символические ссылки на новое расположение папки профилей пользователей для повышения совместимости приложений. Поскольку, как было сказано выше, такие ссылки уже существуют на системном диске и junction points нельзя изменять, удалим существующие ссылки и, заодно, перенесенную папку пользователей:
rd "C:\Documents and Settings"
rd "C:\Users" /S
Затем создадим собственно сами ссылки:
mklink /D "C:\Documents and Settings" "D:\Users"
mklink /D "C:\Users" "D:\Users"
Если все прошло успешно, то Ваша система не только имеет папку профилей пользователей на выделенном диске, но и защиту от возможных ошибок за счет символических ссылок, указывающих на новое расположение.
Статья взята с сайта ru.intel.com.
Скачать xxcopy можно тут: http://pixelab.com/download/xxtp3116.zip
И так же тут: http://lexgallery.blogspot.ru/2013/06/xxcopy-3116.html
Аналогичная задача с разных сторон описана для ОС Windows XP (http://meteozond.habrahabr.ru/blog/50607/, http://support.microsoft.com/kb/236621/ru и т.п.), однако в ОС Windows начиная с Windows Vista появляются новые нюансы и связаны они в первую очередь с использованием таких особенностей NTFS, как junction points. Наверное Вы уже заметили наличие в свежеустановленной системе Windows Vista или Windows 7 папки с иконкой, подобной ярлыкам. Такими папками в Windows 7, например, являются C:\Documents and Settings, C:\Users\All Users и т.д. Опуская технические детали можно сказать, что эти папки представляют собой ссылки на прежние расположения папок пользователей (как то было в Windows XP) сделанные на уровне файловой системы NTFS и созданы они были именно для того, чтобы «смягчить» переход с Windows XP, сохраняя совместимость с устаревшими приложениями.
Одним из средств умеющих корректно работать с junction points является утилита XXCOPY от издателя Pixelab. Она обладает обширным набором функций копирования, включающим в себя функции копирования прав доступа, резервного копирования, условного копирования и т.п. И конечно же функции для копирования junction points. Для того чтобы в полной мере воспользоваться возможностями XXCOPY необходимо использовать версию Pro. Досада здесь заключается в том, что она не является бесплатной, однако мы нисколько не нарушим лицензионного соглашения, если воспользуемся триальным периодом в 60 дней для наших целей.
Итак, всё готово для начала переноса папки Users и в этой статье мы будем рассматривать случай, когда операционная система уже установлена и ведется ее активная эксплуатация. В целом процесс переноса выглядит следующим образом:
Теперь немного подробнее:
1. Необходимо создать нового пользователя с именем типа TempUser, который будет использован для произведения операции переноса данных. Перезагрузимся, чтобы очистить блокировки на файлы профилей пользователей и входим от имени только что созданного временного пользователя.
2. Тут начинается самое интересное, поскольку количество ключей XXCOPY поражает воображение даже опытных линуксоводов. Не мудрствуя лукаво, сообщаю вам готовую команду, которую следует запустить в cmd для того, чтобы скопировать папку профилей пользователей на диск D:
xxcopy c:\Users d:\Users /E /H /K /SC /oE1
3. В реестре следует прописать пути к новому расположению папки профилей пользователей. В ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList следует изменить ключи Default, ProfilesDirectory и Public в нашем случае на «D:\Users\Default», «D:\Users» и «D:\Users\Public» соответственно. В ветке ProfileList также находятся ветки реестра хранящие параметры пользователей, зарегистрированных в системе и если мы хотим, чтобы профили существующих пользователей также были корректно перенесены, необходимо переписать ключ ProfileImagePath для каждой ветки пользователя.
4. Все готово к применению внесенных изменений, при этом обратите внимание, мы в действительности не переносили, а копировали данные, поэтому в случае ошибок можно будет легко вернуться назад. Перезагружаемся и входим в систему от имени учетной записи, являющейся администратором системы (полагаю это будет Ваша обычная учетная запись).
5. После того как мы убедимся, что система загрузилась корректно и профили теперь находятся не на системном диске, воспользуемся возможностями системы NTFS, которые нам так мешали, в своих целях. Создадим на системном диске символические ссылки на новое расположение папки профилей пользователей для повышения совместимости приложений. Поскольку, как было сказано выше, такие ссылки уже существуют на системном диске и junction points нельзя изменять, удалим существующие ссылки и, заодно, перенесенную папку пользователей:
rd "C:\Documents and Settings"
rd "C:\Users" /S
Затем создадим собственно сами ссылки:
mklink /D "C:\Documents and Settings" "D:\Users"
mklink /D "C:\Users" "D:\Users"
Если все прошло успешно, то Ваша система не только имеет папку профилей пользователей на выделенном диске, но и защиту от возможных ошибок за счет символических ссылок, указывающих на новое расположение.
Статья взята с сайта ru.intel.com.
Скачать xxcopy можно тут: http://pixelab.com/download/xxtp3116.zip
И так же тут: http://lexgallery.blogspot.ru/2013/06/xxcopy-3116.html
Комментариев нет:
Отправить комментарий