Поддержание устойчивости и восстановление Windows 9x
Ты встань, поднимись, мой сердешный Windows…

…установил новые курсоры для мышки, и теперь при зависании компьютера появляются не песочные часы, отсчитывающие секунды простоя, а календарь с надписью «Система занята, пожалуйста, подождите…»

Кошмарный сон юзера

Нестабильность работы Windows 98 может любого довести до белого каления и заставить, плюнув на коллекцию любимых игрушек, искать спокойствия в работе с разными «линухами» и «полумухами». Конечно, бороться с этой вечной проблемой «Виндов» очень сложно из-за наличия главной причины многих зависаний — шестнадцатиразрядного кода в ядре системы. Да и неизвестно, какой процент «глюков» обусловлен ошибками программистов, создавших эту операционную систему и создающих для неё разнообразные приложения — эти ошибки вообще могут исправить только сами «творцы», осчастливливая нас всевозможными патчами, апдейтами и патчами к апдейтам. Даже драйвера вполне уважаемых производителей компьютерного оборудования, тем более нового, подчас грешат конфликтами друг с другом, с программами и с самой Windows :). К тому же, часть «глюков» возникает просто из-за недостатка ресурсов компьютера — работая одновременно с десятком нужных и ненужных программ и забыв, что в системной области панели задач находится ещё дюжина программ фоновых, поместив на рабочий стол обои километр-на-километр и донимая соседей какими-нибудь очередными «нанайцами» со сборника MP3-музыки, — мы ещё возмущаемся: почему же это «Мастдай» рушится каждые полчаса? Но не всё так грустно! Просто эта капризная операционная система требует небольшого ухода, благодаря которому довольно несложно не только исправить многие «глюки», но и (что гораздо важнее!!) избежать появления новых, особенно тех, которые возникают после установки написанных левой ногой программ. Чтобы не ставить на винчестер восемьсот мегабайт Windows'2000 и не ломать голову, переучиваясь на Linux, можно попытаться сократить до минимума хотя бы те «виндовые» проблемы, решение которых, всё-таки, под силу рядовому пользователю.

Главное правило при работе с «Вирус98» — беречь системные файлы! Не имея их сохранённых копий, чрезвычайно сложно не только восстановить «рухнувшие» Windows, но и устранить некоторые «глюки». В первую очередь, это относится, конечно, к файлам реестра System.dat и User.dat (если разрешены пользовательские профили, то для каждого пользователя существует ещё свой файл User.dat, который находится в папке C:\WINDOWS\Profiles\имя_пользователя). Поставив из любопытства маленькую, безобидную программку, можно получить огромный «ГЛЮК» из-за неграмотных изменений в реестре, замены программой какого-нибудь системного файла на его старую версию или вообще на самоделку доморощенных «кулхацкеров». Вряд ли кто-то станет спорить, что только что установленная Windows работает на порядок стабильнее, чем система с «навешанными» на неё десятками программ непонятного происхождения. Поэтому регулярно сохраняйте в специально отведенной папочке основные файлы User.dat, System.dat, User.ini, System.ini, Protocol.ini, Control.ini, Autoexec.bat, Config.sys и MSDOS.SYS и тогда вы сможете восстановить реестр и легко исправить фатальные изменения в конфигурационных файлах. А если вы ставите шароварную программу, к которой у вас нет «кряка», то, после того как она откажется работать, восстановите реестр из этих файлов таким, каким он был до её установки — этим вы вернете её работоспособность. Даже при экспериментах с настройками операционной системы обязательно надо иметь резервную копию реестра, чтобы в DOS был шанс его восстановить, иначе вам с высокой долей вероятности грозит полная, «по-голому», переустановка системы, ведь при при простой установке, поверх старой версии, многие настройки в реестре сохраняются, и вернуть всё назад, не зная что в нём изменилось, почти невозможно.

Для регулярного резервирования системных файлов и реестра можно использовать стандартную утилиту «Microsoft Backup» с диска Windows 98 — в ней вы по своему усмотрению зададите список системных папок и файлов, подлежащих резервному копированию. Однако восстановление реестра из такого архива с помощью Microsoft Backup возможно только в среде Windows, поэтому такой способ вряд ли можно назвать надёжным. В приципе, «Винды98» и сами ежедневно (при первой удачной загрузке) сохраняют свой реестр и некоторые другие критичные файлы в компрессированном виде для возможности его автоматического восстановления — это файлы C:\WINDOWS\SYSBCKUP\rb00x.cab. С помощью WinZip (правда, Windows и без него поддерживает этот тип архива) легко посмотреть их содержание и использовать в случае легкой неполадки, когда «Винды» ещё работают. В режиме MS-DOS реестр из этих файлов восстанавливается путём ввода команды «SCANREG /RESTORE», после чего вы получите возможность выбрать, из какой резервной копии следует восстановить реестр. По умолчанию Windows 98 сохраняет копии реестра за последние пять дней, увеличить же их количество можно, изменив параметр «MaxBackupCopies» в файле конфигурации программы сканирования и восстановления реестра SCANREG.EXE — C:\WINDOWS\SCANREG.INI (можно даже изменить настройку так, чтобы сохранялись и другие, выбранные вами файлы в этом же архиве — строки «Files=»). Если же «MustDie» действительно умер и даже не хочет нормально загрузиться, то, в конце концов, будет проще в режиме MS-DOS просто скопировать отдельно сохранённые и заведомо рабочие файлы реестра в папку Windows вместо испорченных. Но при этом переместите все файлы C:\WINDOWS\SYSBCKUP\rb00x.cab в другое место, иначе система сама попытается восстановить реестр из этих архивов (обычно берётся последний по времени создания файл), и нет гарантии, что она не возьмёт для этого вариант с таким же «глюком». Разумеется, для нормальной работы в MS-DOS надо иметь под рукой системный загрузочный компакт-диск или дискету с какой-нибудь оболочкой типа Волков Коммандер.

Ещё один простой и самый грамотный из всех перечисленных, способ зарезервировать реестр, заключается в создании его текстовой копии с помощью команды «REGEDIT /E REGTXT.REG», введённой в строке «Выполнить» кнопки «Пуск». После выполнения этой команды, вы получите на рабочем столе файл REGTXT.REG, который и будет этой самой резервной копией. Регулярно проводя такую операцию (лучше каждый день :)), и имея, на всякий случай, три-четыре таких файла с заведомо «безглючным» реестром (только задавайте им разные названия, например REGTXT1.REG, REGTXT2.REG), вы сможете не только вернуть все сбитые настройки «Виндов» в исходное, рабочее, состояние, но и уменьшить размер файлов реестра. Для этого надо загрузить режим эмуляции MS-DOS и набрать в командной строке «REGEDIT /C REGTXT.REG». Учтите, что если в этом режиме у вас не будет загружен DOS-драйвер кэширования диска SMARTDRIVE, то этот процесс может занять несколько часов! Для использования этого драйвера пропишите в файле C:\WINDOWS\DOSSTART.BAT строку «LH C:\WINDOWS\SMARTDRV.EXE /V». Единственный недостаток возвращения реестра в состояние, на несколько дней предшествующее появлению «глюков», заключается в том, что потеряются настройки и других программ, которые вы успели установить за это время. В этом случае, вероятно, придётся их переустановить, что вряд ли будет большой потерей при возвращении работоспособности всей системы.

Но полное восстановление реестра требуется только в самых тяжёлых случаях (хотя, наверно, это самый лёгкий способ вернуть систему к жизни), иногда можно исправить «глюк», просто удалив недавно установленную программу или исправив ошибки в реестре, вызванные её инсталляцией. К сожалению, не все программы способны полностью и корректно себя удалять и возвращать изменённые настройки в реестре в первоначальный вид. Для этих целей существует множество так называемых «анинсталлеров» (деинсталляторов, говоря по-русски) и программ, отслеживающих изменения в системном реестре и на диске. Всегда полезно контролировать всё происходящее во время установки программы, чтобы понять, что привело к новым «глюкам» и исправить это. Одна из таких утилит, простая, наглядная, небольшая и очень удобная — Ashampoo 99 Deluxe [1]. Запустив её перед инсталляцией новой программы и следуя инструкциям её мастера установки программ, вы, нажав всего пару кнопок, получите подробнейший отчёт обо всех изменениях на дисках, в реестре и в конфигурационных файлах. Этот отчёт будет сохранён в специальном файле, и вы сможете в любой момент удалить из системы абсолютно все следы новой программы и вернуть все настройки в исходное состояние, при этом под вашим контролем будет буквально каждый шаг Ashampoo 99.

Не только изменения в реестре могут привести к печальным последствиям. Очень часто система начинает «взбрыкивать» из-за подмены, порчи или потери каких-нибудь других системных файлов. Некоторые программы при инсталляции не сравнивают версии имеющихся файлов общего пользования с вновь устанавливаемыми, в результате чего, при записи на диск более старого варианта файла, возникает конфликт версий. Некоторые программы умудряются даже заменять файлы шрифтов на их нерусифицированные версии, из за чего становится невозможно читать русскоязычные тексты. Проследить за изменениями всех файлов в системных папках поможет стандартная программа из комплекта Windows 98 «System File Checker» («Проверка системных файлов») — SFC.EXE, находящаяся в папке C:\Windows\System. Эта утилита, просканировав все папки, покажет испорченные (такое часто случается, если начинают «сыпаться» кластеры на винчестере, при этом иногда загрузить «Винды», бывает, не удаётся даже в режиме защиты от сбоев), удалённые и измененные файлы и предложит восстановить их «родные» версии с дистрибутива «Виндов». Но не забудьте включить в её опциях функции проверки измененных и удалённых файлов! По умолчанию они почему-то отключены — происки БГ.

Максимальную надёжность, правда, даст регулярное копирование вообще всех файлов из системной директории C:\Windows\System в специально отведённую папочку на другом диске, из которой потом и будут восстанавливаться утерянные файлы, независимо от того, сумели ли вы загрузить Windows, или только DOS. Возможно, это граничит с паранойей, зато вы не зависите от дистрибутива на CD-ROMе — ведь испорченного файла на нём может не оказаться, если он относится к какой-нибудь программе типа Word97 или Visual Studio, или сам привод «отрубится» (кстати, поэтому при установке «Виндов» лучше скопировать дистрибутив на винчестер и ставить с него, а не с CD-ROMа). Заархивировать полностью системную папку поможет все тот же Ashampoo 99 (или Microsoft Backup), обладающий и ещё несколькими весьма полезными «фичами», такими, например, как очистка диска от временных файлов или поиск продублированных файлов. Даже случайно удалённые файлы в ряде случаев несложно восстановить, если сделать это до того, как на их место запишутся новые, с помощью программ Directory Snoop [2] — из-под Windows и EasyRecovery, она же бывшая Tiramisu [3], — из-под DOSа, когда из-за пропавшего файла система не грузится. Tiramisu, кстати, вообще уникальная программа, она восстанавливает информацию на дисках, повреждённых вирусами, отформатированных, или перекомпонованных утилитой FDISK. Если же вы, всё-таки, не смогли найти пропавший файл, то спасёт вас только его поиск в Интернете или на компьютере приятеля.

Ещё больший уровень безопасности при установке новых программ вы получите, если воспользуетесь параллельно с Ashampoo 99 ещё и утилитой, предотвращающей какие бы то ни было изменения на дисках, но при этом позволяющей вам устанавливать и тестировать любую, самую недоделанную, программу, вплоть до некоторых вирусов. Такого не бывает? Попробуйте поработать с новой утилитой 9Lives [4] — с её помощью, в отличие от обычных «анинсталлеров», вы полностью восстановите данные на диске, если какая-то программа при установке попытается что-то на него дописать, изменить или удалить. Дело в том, что, выбрав при инсталляции подозрительной программы в меню 9Lives, постоянно находящейся в памяти компьютера, режим «Protected Mode», вы создадите как бы виртуальный диск, на котором и будут происходить все изменения. И только после того, как вы будете уверены, что установленная программа не являлась вирусом, и что она ничего страшного с системой не сделала, можете разрешить 9Lives на самом деле записать все изменения на диск, либо, в случае каких-то неприятностей, отменить всё, что натворила новая программа.

Бывает, возникает несовместимость драйверов некоторых устройств с программами, с другими устройствами, или возникает конфликт при распределении системных ресурсов между несколькими устройствами. Это обнаруживается по ярким жёлтым восклицательным знакам на вкладке «Устройства» диалога «Свойства Системы». В этом случае иногда помогает удаление конфликтующих устройств на этой вкладке и повторная их установка по всем правилам после перезагрузки компьютера. «Винды» при этом заново распределят ресурсы и устранят конфликты, либо придётся задавать прерывания, каналы DMA и т.п. вручную. Желательно также при этом иметь свежие драйвера, «скачанные» с сайта производителя в Интернете, в которых, возможно, исправлены все ошибки.

Конечно, предотвратить появление «глюков» гораздо проще, чем с ними бороться, но если деваться некуда, и с системой, всё-таки, начали происходить непонятные вещи, то попытайтесь от них избавиться или хотя бы определить причину их возникновения по такой приблизительной методике:

  1. Просканировать систему для выявления всевозможных ошибок программами:

    • Scan Disk или Norton Disc Doctor — поиск сбойных мест на винчестере и ошибок файловой системы, с обязательным включением тестирования записи. Если невозможно загрузить Windows даже в режиме Safe Mode, попробуйте «вылечить» посыпавшийся диск тем же Scan Disk из-под ДОСа.
    • System File Checker — поиск испорченных или подменённых системных файлов. При изменении файлов проверяйте, чтобы устанавливаемая версия была новее предыдущей. Чтобы иметь гарантию, что все испорченные файлы можно будет восстановить, независимо от наличия дистрибутивов установленных программ, надо регулярно резервировать всю системную папку.
    • Norton Win Doctor — поиск ошибок в реестре. Не доверяйте программе автоматически исправлять ошибки, постарайтесь сами определить лучший метод их устранения. Для этого надо попробовать выяснить, к какой программе относится запись в реестре, просмотрев самостоятельно ту ветвь, о которой сигнализирует WinDoctor — иногда по названиям файлов, по прописанным там путям, или названиям элементов ActiveX несложно установить приложение, породившее ошибку. Если эта программа удалена, то и запись в реестре можно стереть, если же нет, то надо выяснить причину ошибки и устранить её: чаще всего встречается просто неправильный путь к файлу.

    Попробуйте использовать и другие специализированные диагностические утилиты, например, такие как DirectX Diagnostic Tool (проверка файлов DirectX, драйверов, настроек некоторых устройств) или проверить систему мощнейшим информационным пакетом Sandra [5]. Некоторые «глюки» устраняет программа TweakUI, о которой мы уже рассказывали в одном из номеров журнала Upgrade.

  2. Проследить в моменты появления «глюков» за различными системными событиями, запросами и обращениями с помощью программ мониторинга, чтобы попытаться выявить системную ошибку или сбойную задачу. Так, анализируя обращения к реестру, можно определить, какие параметры из реестра запрашиваются в момент возникновения сбоя — возможно, какой-то из них отсутствует или имеет некорректное значение. А с помощью анализа обращений к файлам легко понять, в каких файлах находятся настройки сбойной программы, а какие файлы отсутствуют.

    • Registry Monitor [6] — анализ обращений к реестру,
    • File Monitor [6] — мониторинг обращений к файлам,
    • DllView [6] — информация о библиотеках, используемых текущими процессами,
    • OpenList [6] — сведения обо всех открытых файлах,
    • PortMon [6] — обращения к портам,
    • VxD Monitor [6] — анализ загруженных драйверов,
    • TCPView [6] — информация о соединениях по протоколу TCP,
    • Process Viewer [7] — отображение всех запущенных программ. Возможно, что причиной «глюка» является программа, о работе которой вы и не подозреваете.
  3. Если при загрузке в «Режиме защиты от сбоев» («Safe Mode») проблема пропадает, что чаще всего и бывает, то можно, отключая некоторые устройства, отменяя запуск фоновых программ, предотвращая загрузку потенциально «глючных» драйверов и используя драйвер стандарнтого VGA–видеоадаптера, постепенно при этом приближясь к Безопасному Режиму, в котором, благодаря использованию минимального набора надежных драйверов, и пропадает «глюк», попробовать таким методом исключения определить, в чём источник проблемы. Для этого сначала надо в стартовом меню (вызывается нажатием кнопки F8 при загрузке компьютера), выбрав режим пошаговой загрузки («Step-by-Step Confirmation»), обойти файлы конфигурации AUTOEXEC.BAT и CONFIG.SYS (часто неполадки возникают из-за менеджеров памяти или совершенно лишних DOS-драйверов, например, EMM386 приводит к зависанию Scan Disk при загрузке русской версии Windows), а также предотвратить автозапуск всех фоновых программ. Такие программы запускаются не только из меню «Автозагрузка», но и из реестра: ключи

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
    • HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices

    и из файла WIN.INI: строки «LOAD» и «RUN» раздела «WINDOWS». Не забудьте и про ещё один файл, из которого могут запускаться некоторые программы — Winstart.bat. Здесь опять помогут утилиты типа VxD Monitor и Process Viewer. Выбрать стандартный VGA-видеоадаптер надо на вкладке «Дополнительно» программы настройки конфигурации системы MSCONFIG.EXE (это делается в режиме защиты от сбоев, если система не хочет грузиться нормально).

    Как это всё выглядит не практике, если говорить немного проще? Например, вы регулярно получаете такой привет от «Виндов»:

    «Программа EXPLORER вызвала ошибку такую-то в модуле таком-то.DLL по адресу такому-то».

    Сразу же загрузите режим «Safe Mode» и повторите все операции, приводящие к такому «глюку». Если «глюк» не появился, то проблема вполне легко решается. Перезагружайте ПК, выбрав теперь режим пошаговой загрузки, и обходите файлы Autoexec.bat и Config.sys — опять повторяйте процедуру вызова сбоя, и если всё нормально, то ищите виновника всех проблем в этих файлах. Если же система по-прежнему выдаёт сообщение об ошибке, то вызывайте утилиту MSCONFIG.EXE и отменяйте автозагрузку всех модулей, прописанных в реестре, а заодно и уберите все ярлыки из папки «Автозагрузка», снова перезагружайте ПК и повторяйте всё ту же процедуру вызова «глюка». Следующий этап — отмена загрузки программ из Winstart.bat, Win.ini. Опять проверяем, не пропал ли сбой. Затем выставляете в том же MSCONFIG.EXE на закладке «Дополнительно» режим VGA — на тот случай, если конфликтует видеокарта. И, наконец, остаётся искать причину всех несчастий в драйверах виртуальных и не совсем виртуальных устройств. В пошаговом режиме отмените загрузку «виндовых» драйверов — это VXD-файлы, либо файлы с расширениями .386, .DRV, которые грузятся в самом конце. Пропал сбой — отменяйте «глючный» драйвер. В реестре вы найдете его в качестве параметра StaticVXD где-то в разделе

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD

    либо поищите вызов этого файла в System.ini. Программа конфигурирования системы MSCONFIG.EXE из состава Windows Me позволяет очень удобно отменять не только всю автозагрузку, но и показывает на одной из своих страниц все VXD-драйвера, в Win98, к сожалению, придётся полазать в реестре вручную.

    Необходимо также проверить ошибки, возникающие при загрузке ПК и инициализации драйверов по отчету в файле C:\BOOTLOG.TXT, для чего удобно воспользоваться программами RegRepair2000 [8] или Boot Log Analyser [9]. Некоторые проблемы загрузки (возникшие из-за воздействия вируса, например) устраняются, если заново сделать диск С: системным, загрузившись с компакт-диска Windows 98 и выполнив команду SYS C:.

  4. Попробовать вернуть в исходное — «Default» — состояние настройки в реестре, в конфигурационных файлах User.ini, System.ini и MSDOS.SYS, сделанные с помощью некоторых утилит — WinBoost, MTU Speed, например. Это можно сделать не только из самих программ, но и восстановив реестр и файлы конфигурации из их резервных копий. Проверить в Панели Управления другие настройки системы и проконтролировать установки в опциях используемых приложений. Некоторые «глюки» могут оказаться всего лишь неверными установками, сделанными в реестре программами администрирования системы, такими как System Policy Editor, и предназначенными для ограничения прав пользователя. Из-за таких ограничений вы запросто «потеряете» какой-нибудь диск или не сможете запускать некоторые приложения.
  5. На вкладке Perfomance — File System Properties — Troubleshooting (Быстродействие — Файловая Система — Неполадки) меню свойств системы можно, установив флажки, отключить некоторые функции, которые иногда бывают причиной неполадок. Аналогичная вкладка, предназначенная для устранения некоторых проблем, имеется в программе настройки системной конфигурации System Configuration Utility (C:\WINDOWS\SYSTEM\MSCONFIG.EXE): General — Advanced (Общие — Дополнительно). Если компьютер не загружается, то доступ к этим меню попытайтесь получить из режима защиты от сбоев «Safe Mode».
  6. Проверить настройки BIOS и попробовать использовать установки по умолчанию (Load Defaults).
  7. Проверить исправность оборудования, протестировать его с помощью таких утилит, как Memory Test [10], CPU Stability Test [11] и им подобных. Включить в файле CONFIG.SYS проверку памяти драйвером HIMEM:

    DEVICE=C:\WINDOWS\HIMEM.SYS /VERBOSE /TESTMEM:ON

  8. Обновить систему и поставить свежие «заплатки» на сайте Windows Update [12].
  9. Переустановить Windows 98. Помните, что при установке «Виндов» поверх предыдущей версии сохраняются установки в реестре, поэтому, если причина «глюка» заключается в неверных параметрах реестра, то такая переустановка, скорее всего, ничего не исправит.
  10. Полностью стерев «виндовые» папки C:\Windows, C:\Program Files и C:\RECYCLED и настроив конфигурацию MS-DOS, установить Windows «по-голому».
  11. Поставить модный Linux и забыть о «глюках» (и игрушках).

Природу многих «глюков» очень сложно сразу понять, а следовательно, и выработать правильное решение по их устранению, поэтому не забывайте не только регулярно удалять пыль из корпуса компьютера (да, как ни странно, из-за неё тоже бывают сбои), но и проверять систему на вирусы, отслеживать все изменения на дисках, в системных файлах, в реестре, периодически посещать сайт windowsupdate.microsoft.com [12] для обновления системы, устранения «багов», дыр в безопасности и загрузки новых компонентов. Помните, что предотвратить появление «глюка» гораздо проще, чем его устранить! Если совсем лень этим вручную заниматься, доверьте заботу о жизнеспособности Windows 98 программам, специально для этого предназначенным (вот где золотая жила для программистов!), например, WinRescue 98 [13], которая автоматизирует и серьёзно облегчает это неблагодарное занятие. И надейтесь, что рано или поздно какие-нибудь Windows2098 станут абсолютно «безглючными», ведь, хотя устранение одних ошибок «мелкософтом» и ведёт к появлению новых, теоретически их количество, всё-таки, должно уменьшаться, правда, с другой стороны, всё зависит от скорости выявления новых, ещё неизвестных «багов» в ваших любимых «форточках».




Темы