[an error occurred while processing this directive]
[an error occurred while processing this directive]


Некоторые методы восстановления Windows 98
после краха системы

Александр Захарченко

Хотя частичная или полная потеря работоспособности (system crash) Windows 98 - обычное явление, в политику Microsoft не входит предоставление пользователям подробного анализа происходящих сбоев. Возможно причина такого отношения в переходном статусе Win9x и в будущих версиях Whistle изменится концепция живучести операционной системы и появятся полноценные диагностические и восстановительные утилиты. Ну а пока самые популярные рецепты: ошибка - переустановите приложение, систему или вызывайте разработчика. В условиях такого дефицита информации определить реальные причины развала системы часто невозможно и через некоторое время ситуация повторяется.

Составить более или менее исчерпывающий список причин крахов вряд ли кому-нибудь удастся. Помимо ошибочного удаления или перемещения системных файлов (а их в отличие от DOS теперь тысячи), развалить систему может неудачная установка какой-либо программы, установка несовместимого между собой программного обеспечения или грубые ошибки в используемых программах. В этих ситуациях проблемы проявляются сразу и способы их устранения очевидны.

Гораздо хуже, когда происходит "ползучий распад" системы: случайные ошибки приложений, изредка случающиеся немотивированные отказы нормальной загрузки (Normal Mode). Иногда даже выскакивают "синие экраны" (blue screen), предупреждающие об ошибках в драйверах и службах (service) с загадочными номерами. Такие симптомы указывают на нестабильную работу Windows, но факторы нестабильности остаются в тени. В некоторых случаях могут помочь профилактические меры, перечисленные далее, в других - необходимо использовать пакеты обновления (service pack) для устранения известных ошибок ПО.

В конце концов приходит момент, когда Win98 отказывается загружаться в любом варианте, оставляя пользователю только командную строку (в WinMe - загрузку с системной дискеты). Предоставляемый с дистрибутивом Windows набор утилит для ликвидации таких кризисов более чем скромен: SCANDISK - для диагностики диска и файловой системы и SCANREG - для диагностики базы данных системной информации Registry. И если SCANDISK дает хоть какие-то объяснения своих действий, то SCANREG обходится "без комментариев". Но все же в комплексе с системой резервирования Registry эти утилиты позволяют восстановить работоспособность операционной системы.

При отсутствии проблем с железом (hardware) или системными областями винчестера (master boot record, dos boot record, FAT) неудачная загрузка практически всегда связана с повреждениями Registry или важнейших системных модулей. Registry или Реестр - это хранилище информации, необходимой для нормальной загрузки и работы Windows. В него включаются параметры настройки для всех аппаратных средств, программ и пользователей. Основная часть Реестра храниться в файле WINDOWS\system.dat, а некоторые пользовательские настройки в файле WINDOWS\user.dat. Проверка их правильности обычно происходит незаметно для пользователя.

Один раз в сутки, при удачном запуске системы, файлы Registry автоматически резервируются в сжатый файл WINDOWS\SYSBCKUP\rbxxx.cab. (Вместо xxx номера: 001, 002 и т.д., которые не согласуются с датами сохранения. Свежесть копии определяется по дате и времени создания файла.) Число резервных копий регулируется параметром MaxBackupCopies в файле настроек WINDOWS\scanreg.ini и может достигать 99. Кроме того, копии Registry можно сохранять вручную при помощи утилит SCANREG (в режиме DOS) и SCANREGW (режим Windows). (Windows Me имеет еще дополнительную систему восстановления/резервирования Реестра - System Restore.)

При обнаружении системой серьезных ошибок производится запуск утилиты восстановления SCANREG. Она сохраняет дефектный Реестр в файле WINDOWS\SYSBCKUP\rbbad.cab и применяет для восстановления самый свежий архив.

Надо отметить, что концепция Registry оказалась не самым лучшим нововведением Microsoft. Собрать в одном месте критические системные данные и позволить любой программе вписывать туда же любой мусор, как-то результаты Lines или Марьяжа, выглядит нелогично. Неизбежные накладки и ошибки программирования разрушают системную информацию и Windows внезапно отказывается работать, рекомендуя переустановку.

Спешить, тем не менее, не стоит, поскольку далеко не всегда Windows правильно определяет причины ошибок. Безусловным показанием к переустановке является удаление системных каталогов или форматирование диска. В остальных случаях до запуска Setup надо выполнить дополнительные исследования, чтобы проблема была действительно решена без ущерба для пользовательской информации.

По возможности систему стоит реанимировать, даже если затем будет производиться ее полная переустановка. 16-разрядный доступ к дисковым накопителям в режиме MS-DOS значительно медленнее, чем 32-разрядный доступ Windows, и установка, соответственно, продолжается гораздо дольше.

Итак, если Windows после 2-х - 3-х попыток не может загрузиться даже в безопасном режиме (Safe Mode) нужно перейти в режим командной строки (Command Prompt), проверить scandisk'ом состояние винчестера и выполнить команду scanreg /fix. При отсутствии масштабных повреждений SCANREG с большой вероятностью исправляет ошибки, и работоспособность системы восстанавливается. В этом случае все же вероятна потеря какой-то информации и сбои в работе отдельных приложений и устройств. Их придется переустанавливать по мере проявления таких ошибок.

Поскольку возможности SCANREG ограничены, а причина краха может лежать и за пределами Реестра, то в случае неудачи есть несколько вариантов дальнейших действий, чтобы добиться загрузки хотя бы в безопасном режиме.

Windows диагностирует ошибку в Registry, не может ее самостоятельно устранить и входит в цикл запуск scanreg-перезагрузка. - Испорчена текущая версия Registry и версия, используемая для восстановления.
Нужно загрузится в DOS-режиме и удалить из каталога WINDOWS файлы system.dat и user.dat. Лучше при этом пользоваться каким-нибудь Commander'ом (NC, VC и т.д.). Затем перейти в каталог WINDOWS\SYSBCKUP и удалить самый свежий (т.е. с самыми поздними датой и временем создания) файл rbxxx.cab. Далее - запустить SCANREG для восстановления Registry. Альтернативный способ - ручной выбор восстанавливаемой копии Реестра - команда scanreg /restore. Если ни одна из копий не поможет загрузить Windows, то ее придется переустановить. (Использовать файл system.dat из корневого каталога загрузочного диска желательно в самых крайних случаях. Он создается при установке системы и не содержит информации о последующих изменениях. Поэтому при его использовании придется переустанавливать все приложения. В случае же переустановки системы большая часть информации о приложениях сохранится.)

Windows не может загрузиться даже в безопасном режиме, диагностируя ошибку в VxD, DLL или EXE файле. - Поврежден или отсутствует критически важный системный файл.
Для восстановления понадобится дистрибутив Windows. Нужно загрузиться в режиме MS DOS. В каталоге WINDOWS\COMMAND или на установочном диске найти программу extract.exe (Cabinet Extraction Tool) и извлечь копию поврежденного файла из cab-архивов установочных дисков. Пример команды:
extract /A /L c:\windows\system drive_cd:\win98\win98_21.cab file_name.dll,
где - ключ /A позволяет просмотреть все архивы за один проход, drive_cd - буква, присвоенная CD-ROM, c:\windows\system - каталог, в котором нужно заменять файл; название cab-файла не имеет значения, лишь бы такой файл был в составе дистрибутива.
Возможно, операцию придется повторить для нескольких файлов. Если замена файла не помогла, то проблема может быть связана с файлом WINDOWS\SYSTEM\ddeml.dll.

Наихудший вариант - Windows зависает в процессе загрузки без выдачи диагностики. Тогда нужно выбирать из меню boot-менеджера вариант загрузки с созданием протокола (Logged) и анализировать файл BOOTLOG.TXT в корневом каталоге системного диска, чтобы определить какие модули повреждены, и попытаться их восстановить с дистрибутивов либо удалить. Если зависание происходит в случайные моменты, то проблема заключается в сбоях железа (перегрев, глюки, выход из строя и т.д.) и переустановка не поможет.

Вышеперечисленные меры могут не дать результатов, когда крах системы произошел в результате злого умысла (malicious intent) либо активации вируса. Это отдельная тема и уже большой удачей станет возврат какой-либо части пользовательских данных.

Вероятность аварийных ситуаций можно снизить периодической профилактикой системы. Одновременно она улучшает и производительность Windows. К числу необходимых действий относятся: антивирусный контроль, контроль состояния диска и файловой системы (SCANDISK или SCANDISKW) и проверка целостности системных файлов (SFC).

Программ для борьбы с вирусами и троянцами сейчас более чем достаточно: AVP Касперского, DrWeb Данилова, Norton AtniVirus и т.д. Есть из чего выбирать. Нужно только позаботиться о регулярном обновлении антивирусных баз. Без этого антивирусный монитор может наоборот способствовать распространению нераспознанных разрушительных кодов, создавая у пользователей ложное ощущение безопасности. Необходимо также задействовать средства безопасности Microsoft Office для обнаружения новых разновидностей макровирусов.

При контроле состояние диска производится анализ и коррекция системных областей диска, устранение потерянных кластеров - областей диска ошибочно отмеченных в FAT как занятые, проверка правильности занимаемого файлами и каталогами места, тест физического состояния поверхности носителя. При обнаружении ошибок, связанных с исполняемыми модулями (exe, vxd, dll), их для надежности лучше восстановить из архивных копий. Если проблемные файлы используются операционной системой, то придется переходить в режим DOS.

Утилита проверки системных файлов (SFC) находится в каталоге WINDOWS\SYSTEM. В ее задачи входит определение измененных и поврежденных системных файлов и восстановление по выбору пользователя. Такие изменения происходят при установке новых программ, при этом проверка на согласование версий заменяемых файлов не производится. В результате часть приложений может потерять работоспособность. SFC позволяет восстановить их без переустановки. Кроме того, этой программой можно воспользоваться для извлечения отдельных файлов из cab-архивов. (В Windows Me утилита SFC заменена автоматической подсистемой защиты критических файлов (SFP), предотвращающая произвольное изменение защищенных модулей.)

Стоит также периодически производить анализ системы с помощью утилиты типа Norton WinDoctor (NWD). Он производит поиск отсутствующих компонент программного обеспечения, определяет нарушения структуры Registry и позволяет очистить реестр от лишней информации, остающейся после удаления ненужных программ.

И последнее: при обслуживании дисков с ценной информацией лучше не использовать режим автоматического исправления ошибок - нестандартные ситуации в быстро меняющемся мире Windows загоняют различные программы в тупик, а расхлебать последствия будет крайне нелегко. (Пример нестандартной реакции Norton Disk Doctor в моей статье "Об умножении ошибок".)


[an error occurred while processing this directive]

[an error occurred while processing this directive]