Часть 3
С прошлого раза у нас остались нетронутыми такие интересные темы из раздела "Манипулирование реестром Windows XP"как:
— Структура .reg-файла. REGEDIT — опции командной строки.
— Удаление разделов и ключей реестра при помощи .reg-файла.
— Восстановление поврежденного реестра, когда Windows XP не загружается.
Структура .reg-файла. REGEDIT — опции командной строки
Знание реестра Windows XP будет неполным без умения написать reg-файл.
REG-файл — это файл, имеющий определенную структуру и содержащий информацию, которая импортируется в реестр.
Для чего нужно это знать и уметь? Например, если была заблокирована
работа с редактором реестра, а это можно сделать с помощью изменения
ключей реестра, то наиболее легким способом исправить установки в
реестре будет создание и импортирование reg-файла.
Первая строка reg-файла для Windows XP обязательно должна быть такой:
Windows Registry Editor Version 5.00
однако REGEDIT от Windows XP понимает и такое:
REGEDIT4
сохраняя тем самым совместимость снизу вверх. Обратите внимание на
регистр букв. Кроме этого, в первой строке ничего быть не должно. После
текста обязательно должна быть пустая строка.
Затем указывается раздел реестра, в котором надо прописать или изменить
какие-то параметры. Название раздела должно быть заключено в квадратные
скобки. Затем ниже прописываются параметры и значения по одному
параметру в строке. Когда вы закончили описание параметров и их
значений, то оставьте пустую строку и либо закончите файл, либо, если
нужно, начинайте описание для следующего раздела.
Вот пример reg-файла:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\Setup]
"SetupType"=dword:0
"SystemSetupInProgress"=dword:0
"CmdLine"=""
"SystemPrefix"=hex:cc,1b,00,00,00,40,3d,68
"SystemPartition"="\\Device\\HarddiskVo-lume1"
"OsLoaderPath"="\\"
"uniqueid"="C:\\WINDOWS\\LPM"
[HKEY_LOCAL_MACHINE\SYSTEM\Setup\ AllowStart]
{...описание параметров...}
Последнюю строку в файле сделайте пустой.
Как видим, строковые параметры заключаются в кавычки. Перед числами
ставятся указатели на их тип. Например, dword — указывает на тип этого
параметра, буквы должны быть обязательно маленькие. После двоеточия
следует значение из восьми цифр в шестнадцатеричном формате. Однако
большинство параметров dword имеют значение либо 0, либо 1. Пробелы в
строке не допускаются.
В реестре существуют параметры "По умолчанию" (Default). Чтобы
присвоить им какое-то значение через REG-файл, надо добавить такую
строку:
@="какое-либо значение"
Regedit имеет некоторое множество опций командной строки, чтобы
автоматизировать его использование в пакетных файлах. Ниже указаны
некоторые из вариантов.
regedit.exe [options] [filename]
filename — импортируемый в реестр.reg файл
/s — подавлять запрос на подтверждение при импорте файла
/e — экспорт раздела реестра в файл.
Пример:
regedit /e file.reg HKEY_CURRENT_USER\ Software\ Microsoft
Довольно убого, не так ли? Но не все так плохо. Наберите в командной строке:
REG /?
и изучайте "Программу редактирования системного реестра из командной строки, версия 3.0". Я думаю, она вам понравится.
Удаление разделов и ключей реестра при помощи .reg-файла
Вы
можете удалять разделы реестра и значения в разделах, не используя
REGEDIT. Для удаления раздела используйте тот же самый формат
reg-файла, только перед наименованием раздела поставьте знак "минус"
("-"). Например:
REGEDIT5
[-HKEY_LOCAL_MACHINE\SYSTEM\Test]
Этот же формат используйте для удаления отдельных параметров в
выбранных разделах, поставив знак "минус" ("-") после знака "равно"
("="):
REGEDIT5
[HKEY_LOCAL_MACHINE\SYSTEM\Test]
"TestValue" =-
Помните, что прежде, чем проводить какие-либо манипуляции с реестром вручную, рекомендуется сделать резервную копию.
Восстановление поврежденного реестра, когда Windows XP не загружается
А теперь посмотрим, что нужно делать, когда из-за ошибок в реестре Windows XP не загружается.
Описываемая процедура не гарантирует полного восстановления системы к
предыдущему состоянию, однако мы сможем восстановить наши данные.
Разрушенные файлы системного реестра могут вызывать ряд различных сообщений об ошибках.
Эта глава предполагает, что с помощью стандартных методов
восстановления, описанных выше, вернуть Windows XP к жизни не удалось,
и доступа к системе нет, кроме использования Recovery Console.
Если у вас имеется копия системы, сделанная 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-му шагу.
Рекомендации по установке и загрузке Recovery Console расположены в разделе "Общие вопросы".
Шаг 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 и выбираем "Восстановление
более раннего состояния компьютера".
(c)2002 mr.Tim
Продолжение следует...
Источник: http://www.nestor.minsk.by/kg |