Восстановление поврежденного реестра, когда Windows XP не загружается А теперь посмотрим, что нужно делать, когда из-за ошибок в реестре Windows XP не загружается.
Описываемая процедура не гарантирует полного восстановления системы к предыдущему состоянию, однако мы сможем восстановить наши данные.
Разрушенные файлы системного реестра могут вызывать ряд различных сообщений об ошибках.
Если у вас имеется копия системы, сделанная Automatic System Recovery (ASR), то используйте эту копию, прежде чем попробовать процедуру, описанную в данной главе. Попробуйте при загрузке Windows XP нажать F8 и выбрать вариант "Загрузка последней удачной конфигурации" (Boot Using Last Known Good Configuration). При этом восстанавливаются только данные в разделе реестра HKLM\ System\ CurrentControlSet. Любые изменения в других разделах реестра сохраняются. Загрузка последней удачной конфигурации позволяет восстановить реестр в случае неполадок, вызванных, например, новым, несовместимым с имеющимся оборудованием драйвером. Неполадки, возникшие вследствие повреждения или ошибочного удаления драйверов или файлов, не могут быть устранены таким образом.
Примечание: Вы должны будете заменить все 5 ульев системного реестра. Если вы заменяете только один улей или два, то это может вызывать проблемы, так как программное обеспечение и оборудование может иметь параметры настройки во многих местах в системном реестре.
Итак, при попытке запуска Windows XP вы получаете сообщение об ошибке, например, одно из указанных ниже:
Windows XP could not start because the following file is missing or corrupt: \ WINDOWS\ SYSTEM32\ CONFIG\ SYSTEM;
Windows XP could not start because the following file is missing or corrupt: \ WINDOWS\ SYSTEM32\ CONFIG\ SOFTWARE;
Stop: c0000218 {Registry File Failure} The registry cannot load the hive (file): \ SystemRoot\ System32\ Config\ SOFTWARE or its log or alternate.
Очень хорошо, теперь настала пора применить ваши знания на практике. Если вы когда-либо выполняли NTBACKUP и завершили системное копирование успешно, то вы можете сразу приступить к 4-му шагу.
Шаг 1
Загружаемся в Recovery Console, создаем временную папку, копируем туда существующие файлы системного реестра, удаляем файлы системного реестра и затем копируем файлы системного реестра из папки Repair в папку System32\ Config. Затем мы сможем загрузить Windows XP.
Системный реестр, находящийся в папке Repair, был создан и сохранен при начальной установке Windows XP, поэтому любые изменения, которые были проведены позже, будут утеряны.
Итак, выполняем следующие шаги:
1. Загружаем Recovery Console.
2. В командной строке выполняем следующие действия:
md tmp
copy c:\ windows\ system32\ config\ system c:\ windows\ tmp\ system.bak
copy c:\ windows\ system32\ config\ software c:\ windows\ tmp\ software.bak
copy c:\ windows\ system32\ config\ sam c:\ windows\ tmp\ sam.bak
copy c:\ windows\ system32\ config\ security c:\ windows\ tmp\ security.bak
copy c:\ windows\ system32\ config\ defa-ult c:\ windows\ tmp\ default.bak
delete c:\ windows\ system32\ config\ system
delete c:\ windows\ system32\ config\ software
delete c:\ windows\ system32\ config\ sam
delete c:\ windows\ system32\ config\ security
delete c:\ windows\ system32\ config\ default
copy c:\ windows\ repair\ system c:\ windows\ system32\ config\ system
copy c:\ windows\ repair\ software c:\ windows\ system32\ config\ software
copy c:\ windows\ repair\ sam c:\ windows\ system32\ config\ sam
copy c:\ windows\ repair\ security c:\ windows\ system32\ config\ security
copy c:\ windows\ repair\ default c:\ windows\ system32\ config\ default
Примечание: Здесь имеется в виду, что Windows XP установлена в папку C:\ Windows. Если это не так, то вам придется внести небольшие изменения.
Чтобы сэкономить время, вы можете оформить все вышеприведенные команды в отдельный файл, например, regcopy1.txt, набрав его на другом компьютере, и выполнить на вашем одной командой:
batch regcopy1.txt
Шаг 2
Чтобы выполнить процедуру, описанную в этом разделе, вы должны войти как администратор или как пользователь, приравненный к администратору. Т.е. пользователь, имеющий учетную запись в группе "Администраторы".
Если у вас Windows XP Home Edition, то вы сможете войти как административный пользователь. Но если вы хотите войти как администратор, то вы должны сначала запустить Windows XP Home Edition в безопасном режиме (Safe mode).
Также полагаем, что у вас файловая система — FAT32.
Выполняем следующие действия:
1. Перегрузите компьютер.
2. При загрузке Windows XP нажмите F8.
3. Выберите безопасный режим.
Если вы используете проводник в качестве файл-менеджера, то придется выполнить несколько действий, чтобы сделать папку System Restore видимой:
1. Запускаем "Проводник".
2. В меню "Сервис" выбираем "Свойства папки" и далее закладку "Вид".
3. Раскрываем опцию "Скрытые файлы и папки" и щелкаем на "Показывать скрытые файлы и папки".
4. Далее щелкаем на "Применить" и "ОК".
Теперь:
1. Открываем раздел жесткого диска где установлена Windows XP, и находим папку System Volume Information. Примечание: Это скрытая системная папка. Она содержит одну или более папок с именами вида _restore {GUID}, например, _restore{87BD3667-3246- 476B-923F-F86E30B3E7F8}.
2. Откройте папку, которая была создана НЕ в текущее время. Это может быть одна или больше папок, имена которых начинаются с RP. Это — точки восстановления.
3. Откройте выбранную папку и затем папку с именем Snapshot. Например,
c:\ System Volume Information\ _restore {DBB3294C-F5C9-43A9 -9010-A75010CD2631} \ RP2\ snapshot\ Repository.
4. Из папки Snapshot в папку C:\ Windows\ Tmp, уже созданную на первом этапе, скопируйте следующие файлы:
— _REGISTRY_USER_.DEFAULT
— _REGISTRY_MACHINE_SECURITY
— _REGISTRY_MACHINE_SOFTWARE
— _REGISTRY_MACHINE_SYSTEM
— _REGISTRY_MACHINE_SAM
Эти файлы созданы службой восстановления системы — System Restore. Так как на предыдущем шаге мы использовали файлы системного реестра, созданные при начальной установке Windows XP, то этот "новый" системный реестр не знает, что "старые" точки восстановления существуют и доступны. При загрузке Windows XP создана новая папка с новым GUID и с новым System Volume Information, и создана новая точка восстановления, которая включает копию файлов нового системного реестра. Вот почему важно не использовать самую новую папку, особенно если время ее создания — текущее время.
Таким образом, конфигурация существующей системы не знает о предыдущих точках восстановления. Нам нужна предыдущая, "старая" копия системного реестра от предыдущей, "старой" точки восстановления, чтобы сделать все предыдущие, "старые" точки восстановления доступными. Я надеюсь, что вы меня поняли.
Файлы системного реестра были скопированы из папки Snapshot в папку C:\ Windows\ Tmp, чтобы сделать их доступными, когда мы будем находиться в Recovery Console. Мы будем использовать эти файлы, чтобы заменить ими файлы текущего системного реестра в папке C:\ Windows\ System32\ Config. Дело в том, что в Recovery Console папка с System Volume Information в общем случае недоступна. Если вам нужно иметь доступ ко всем папкам, то вам следует позаботиться об этом заранее: об этом я уже писал в разделе "Общие вопросы".
Шаг 3
В третьей части мы удалим существующие файлы системного реестра, а затем скопируем файлы системного реестра, созданные службой System Restore, в папку C:\ Windows\ System32\ Config:
1. Загружаемся в Recovery Console.
2. В командной строке Recovery Console выполняем следующие команды:
3.
4. del c:\ windows\ system32\ config\ sam
5. del c:\ windows\ system32\ config\ security
6. del c:\ windows\ system32\ config\ software
7. del c:\ windows\ system32\ config\ default
8. del c:\ windows\ system32\ config\ system
9.
10. copy c:\ windows\ tmp\ _registry_machi-ne_software c:\ windows\ system32\ config\ software
11. copy c:\ windows\ tmp\ _registry_machi-ne_system c:\ windows\ system32\ config\ system
12. copy c:\ windows\ tmp\ _registry_machi-ne_sam c:\ windows\ system32\ config\ sam
13. copy c:\ windows\ tmp\ _registry_machi-ne_security c:\ windows\ system32\ config\ security
14. copy c:\ windows\ tmp\ _registry_user_. default c:\ windows\ system32\ config\ default
Перегружаем компьютер.
Шаг 4
Теперь запускаем программу "Восстановление системы" (System Restore) или %SystemRoot%\ System32\ restore\ rstrui.exe и выбираем "Восстановление более раннего состояния компьютера"
Можно попробовать восстановить систему с загрузочного диска. Установить в биосе загрузку с CD. Ставишь диск с ХР и загружаешься. Выбираешь "Консоль восстановления". Набираешь команду "sfc.exe scannow". Испорченные файлы будут восстановлены.
Внимание! Будь уверен что все делаешь правильно, последствия необратимы.