Внимание!!! Предупреждаю сразу - сначала внимательно читаем, потом только делаем. Лучше распечатать на бумагу если нет другого компа с подключенным инетом под рукой.
Дано : Компьютер в домене Active Directory.
Диски (скрин после переноса папки WinSxS):
Состояние после переноса WinSxS
Делал по материалам сайтов (не спешите сразу делать как там описано, дочитайте до конца):
http://aspoc.net/archives/2007/12/05...tory-in-vista/
http://technet.microsoft.com/ru-ru/s.../bb897556.aspx
http://www.vistax64.com/tutorials/67...ship-file.html
Процедура
Как рекомендует Мэт Вэйд (Matt Wade)
почти Дарт Вейдер
Вам понадобится две утилиты:
PendMoves and MoveFile. Поместите их в \Windows\System32 директорию для быстрого доступа.
(Хотя они вряд ли вообще понадобятся, не рекомендую)
1. Если вы в домене то войдите в компьютер под учеткой ЛОКАЛЬНОГО Администратора.
2. С помощью Windows Explorer найдите папку \Windows\WinSXS. Клик правой кнопкой мыши на папке, в быстром меню выбираем "Свойства" (Properties). Выберите вкладку "Безопасность" (Security)для просмотра разрешений на папку. Меняем владельца с TrustedInstaller на Администратора и даем полный доступ группе Администраторов на всю папку и вложенные файлы WinSxS.
!!! на этом советы Мэта можно больше не слушать поэтому переводить не буду. Копирнул As Is. Кому интересно почитайте но не повторяйте моих ошибок. Переходим к пункту 3.
Open an administrator command prompt, and create a dummy directory. Execute “mkdir c:\windows\winsxs.moved“
Next, create a junction (like a Symbolic link for Vista). Execute “mklink /J c:\windows\winsxs.link winsxs.moved“
Now delete the winsxs.moved directory. Execute “rmdir c:\windows\winsxs.moved“
Now we will use MoveFile to schedule renaming of the WinSXS directory at reboot. This is the magic that will give us control over the directory.
From the administrator command prompt, execute “movefile c:\windows\winsxs c:\windows\winsxs.moved“. As you can see, this is renaming the WinSxS directory before Vista can get a lock.
From the command prompt, run “movefile c:\windows\winsxs.link c:\windows\winsxs“. This puts a winsxs directory back (as far as Vista is concerned), so everything doesn’t collapse in a heap.
From the command prompt, run “pendmoves“. It will show the two pending moves you’ve entered above, with NO ERRORS. If it all looks good, REBOOT!
(На этом моменте при стандартной загрузке Vista грузиться отказалась напрочь, в безопасном режиме только BSOD )
On reboot the critical renames/moves will execute, and the WinSxS directory will be unlocked and able to be moved in the next steps.
Open an administrator command prompt, and execute “dir c:\windows\winsxs*“. If you performed the previous steps correctly, you’ll see a WinSxS.moved directory and the WinSxS junction. If it did not work, repeat the above steps. Our next step is to relocate the WinSXS directory and amend the junction.
Using Windows Explorer, COPY the entire WinSxS.moved directory to a \Windows directory on another partition or drive.
When the copy is finished, rename the new directory from WinSxS.moved to WinSxS.
Go to an administrator command prompt and execute “rmdir c:\windows\winsxs“.
Then, execute “mklink /J c:\windows\winsxs d:\windows\winsxs“.
To be sure everything is happy, in Windows Explorer browse to c:\windows\winsxs. You will see all of the files. (Even though they are actually on your other partition or drive)
Reboot
After reboot, you should be able to delete c:\windows\winsxs.moved and FINALLY liberate all that disk space. Whew! Now take a bow.
This process can also be applied to the Windows Updates directory. When you download Windows Updates etc., the files get placed into C:\Windows\SoftwareDistribution, and this will quickly become huge. It is easier though… stop the Automatic Update service, move directory, create junction, restart service, DONE!
Ага, DONE! Щассс...
3. Загрузитесь с установочного диска Vista.
4. После выбора языка установки на следующем окне есть кнопка "Установить", не нажимать, в самом внизу ссылка на восстановление системы, идем туда. Пройдет поиск установленных систем, если диски в рэйде можно там же подгрузить драйвера если потребуется.
5. После того как пройдет попытка автоматического восстановления выбрать "Выбор вариантов восстановления" , внизу будет "Командная строка". Выбираем запускаем консоль CMD.
6. Копируем полностью папку WinSxS на d:\windows\winsxs или другой раздел следующей командой: (внимание!!! если у вас много разделов и много винтов то проверьте буквы дисков, остались они прежними или поменялись, как было у меня- диск D при установке стал E и наоборот, т.е. папку winsxs я копировал на Е диск, потом они вернутся на свои места)
xcopy c:\windows\winsxs\* d:\windows\winsxs /h/i/c/k/e/y/x
У меня копирнулось что то около 79000 файлов, процедура достаточно долгая, минут 20-30.
7. Запускаем “rmdir /s/q c:\windows\winsxs” и линкуем “mklink /J c:\windows\winsxs d:\windows\winsxs”
8. Выполним “dir c:\windows\winsxs*” и проверим связь папки winsxs к d:\windows\winsxs.
9. Вводим exit и перегружаемся.
После перегрузки, если все прошло нормально проверяем свободное место на дисках. У меня освободилось гигов 5. Почему так - не знаю. Ведь папка занимает места почти 12 гиг.
Теперь вкратце опишу мои попытки и методы:
После того как система перестала грузиться, выдавать BSOD даже в безопасном режиме, у меня ушло много времени на борьбу с утилитой movefile. Загрузившись с дистрибутива Висты в командной консоли запускаем c:\windows\regedit там уже выделяем ветвь HCLM - далее меню файл - загрузить куст- И ВОТ ОН ! Проводник! Куст не грузим а пользуемся окном выбора как проводником. Только Total Commander привычней, удобней и безопасней. Ищем на дисках папку с любимым тоталом, Правой кнопкой - Запуск от имени Администратор на екзешнике. Все! Диски и файлы в нашем распоряжении.
Проблема была в том, как выяснилось, что утилита movefile, предназначенная для переноса системных файлов и папок на этапе загрузки системы и до применения параметров безопасности, исправно шедулила при каждом запуске мой линк c:\windows\winsxs изменяя его в c:\windows\winsxs.moved .
Естественно оставляя винду без папки winsxs. Утилита movefile прописывает задания в ветку реестра HKLM\System\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations .
Загрузившись с дистрибутива Висты в командной консоли запускаем c:\windows\regedit там выделяем ветвь HCLM - далее меню файл - загрузить куст- выбираем на диске c:\Windows\System32\config\SYSTEM , тот который без расширения и побольше размером, сохраняем куст под любым именем и лезем в HCLM\(имя загруженного куста)\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations .
Два раза кликаем на параметре PendingFileRenameOperations и видим наши назначенные задания внизу списка. Удаляем, закрываем, выгружаем куст. Перегружаемся. Все работает.
Будут вопросы пишите, отвечу.
После переноса система работает уже сутки , весь софт носится нормально. Глюков нет.