9 лет назад 10 июля 2009 в 22:04 81

Технология выявления причин сбоев

Cергей Трошин

В свое время мы уже подробно рассматривали технологию самостоятельного поиска причин сбоев в Windows 9x и Windows XP. Настало время разобраться с Windows Vista – несмотря на вполне приличную надежность, глюки встречаются и в этой системе. Общие принципы их устранения сохранились, но за последнее время появился целый ряд программ, которые облегчают поиск причин неполадок, кроме того, из-за особенностей самой “Висты” во всем этом деле имеется ряд важных нюансов. И наконец, не стоит забывать, что грядущая Windows 7 – это та же самая “Виста”, так что большинство наших советов вполне можно будет применять и к ней.

САМОЕ ПРОСТОЕ

Конечно, самый простой способ реанимации ОС – ее полная переустановка, но он не годится, если в системе установлено и настроено много важных программ, переустановка которых невозможна или обойдется слишком дорогой ценой.

Иногда ситуация облегчается уже известными способами лечения типичных глюков – надо лишь найти их в интернете, но это скорее исключение, и для устранения большинства проблем все же невозможно выработать какой-то универсальный метод лечения – выяснить причину проблемы удается только препарируя программные внутренности конкретного компьютера.

Наконец, если сбой не сопровождает ОС прямо с момента ее инсталляции, а появился в какой-то определенный момент (после установки очередной программы или драйвера, изменения настроек Windows, сбоя питания), то избавиться от него проще всего, если удалить проблемное приложение либо восстановить реестр или даже все содержимое жесткого диска из резервной копии. Помогут в этом не только стандартная служба восстановления системы (для системного диска мы ее крайне не рекомендуем отключать – нынешние компьютеры это вполне позволяют), но и более интересные программы, например Paragon Drive Backup, Ashampoo Uninstaller 3, WinRescue Vista. Разумеется, это возможно, если пользователь регулярно пользовался подобными программами.

Если же нет возможности ни восстановить систему малой кровью, ни полностью ее переустановить, то придется самостоятельно искать причину сбоя. Для достижения успеха рекомендуем следовать такой технологии.

ПРЕДВАРИТЕЛЬНЫЙ ЭТАП

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

– Удалите все временные файлы, очистите кэш браузера, Корзину, Журнал, очистите папку Program Files\Internet Explorer\Plugins с плагинами IE (для их восстановления сделайте резервные копии). Отключите все надстройки Internet Explorer: “Сервис” – “Надстройки”. Очистите папки, из которых производится автозапуск скриптов MS-Office (запустите поиск по диску папок с именами типа Xlstart, Startup, для Office 2007 обычно это Users\user name\AppData\Microsoft\Word\STARTUP, Program Files\Microsoft Office\Office12\STARTUP, Program Files\Microsoft Office\Office12\XLSTART), удалите шаблон normal.dot, используемый MS-Office. Очистите папки Windows\Downloaded Program Files, Users\user name\AppData\Roaming\Microsoft\Windows\Network Shortcuts, Users\user name\AppData\Roaming\Microsoft\Windows\Printer Shortcuts, Users\user name\AppData\Roaming\Microsoft\Windows\Recent. Удалите скрытые файлы autorun.inf со всех локальных дисков.

– Проверьте систему несколькими свежими антивирусами и программами Ad-Aware и SpyBot, просканируйте жесткий диск утилитами типа ScanDisk, Norton DiskDoctor (с обязательным включением тестирования записи). Проверьте системные файлы с помощью утилиты System File Checker (команда SFC /SCANNOW, вводить ее надо в консоли, запущенной от имени администратора) и восстановите поврежденные библиотеки из дистрибутива Windows или Service Pack.

– Обновите систему: помимо последнего сервис-пака (если он уже установлен, переустановите) установите все свежие “заплатки” на сайте Windows Update (учтите только, что некоторые патчи сами могут быть источником проблем). Обновите (переустановите) Internet Explorer 8, временно удалите или переустановите виртуальную машину JAVA. В случае проблем с установкой JAVA VM от Microsoft попробуйте сначала удалить следы ее предыдущей установки с помощью Microsoft JVM Removal Tool. (К сожалению, корректно переустановить DirectX 10 пока нельзя.)

ПОИСК ГОТОВОГО РЕШЕНИЯ

– Тщательно изучите документацию к сбойной программе или устройству, быть может, в ней имеются какие-то специальные указания. Посетите также сайт разработчика – возможно, служба техподдержки производителя знает о проблеме и предлагает загрузить какой-нибудь патч.

– Если сбой сопровождается сообщениями об ошибках (например, ошибками STOP на синем экране), то запишите их точное содержание и зайдите на сайт технической поддержки Microsoft, только учтите, что русскоязычная база гораздо меньшего объема. На основе сообщения об ошибке необходимо сформулировать запрос для поисковой системы (для максимальной эффективности поиска попробуйте формулировать запрос несколькими разными способами).

Если в базе Microsoft нет сведений о вашем сбое, то с помощью обычных поисковиков попытайтесь найти в Сети (и даже в технических конференциях UseNet) материалы по схожим проблемам.

Учтите только, что если в вашей системе включен режим автоматической перезагрузки при сбоях, то сообщение “синего экрана смерти” отображаться не будет. Поэтому в меню Control Panel – System – Advanced System Settings – Advanced – Startup and Recovery – Settings заранее снимите флаг Automatically restart.

Для получения максимальной информации о произошедшем сбое обратитесь также к системному журналу ошибок – Event Log (Computer Management – Event Viewer). Документация по большинству кодов событий Event ID присутствует на сайте eventid.net. Кое-что можно выжать из информации системного дебаггера, присутствующей в окне программы System Information – раздел Software Environment – Windows Error Reporting.

– Включите режим отправки сообщений об ошибках в Microsoft: Control Panel – Problem Reports and Solutions. Не исключено, что получите ответ с конкретным решением проблемы.

– Загляните на сайты, посвященные борьбе со сбоями Windows, например на aumha.org – здесь вы найдете патчи для устранения многих распространенных сбоев.

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

ПРОВЕРКА НАСТРОЕК

– В Панели управления проверьте все настройки системы и оборудования – установите все параметры в положение “По умолчанию”. В частности, отмените ограничения размера файла подкачки, проверьте, достаточно ли места на диске, а в настройках переменных окружения временно укажите более короткий путь к папке TEMP (например, C:\TEMP). Проконтролируйте также все установки в опциях используемых приложений.

– Верните в исходное состояние настройки в реестре и в конфигурационных файлах win.ini, user.ini, system.ini (эти рудименты еще сохранились для 16-битных приложений), сделанные с помощью утилит-твикеров. Проверьте установки в файлах autoexec.nt, config.nt, _default.pif (аналогично могут требоваться только древним программам). Запустите поиск в реестре по слову “Policies” и удалите параметры, ограничивающие права пользователя, в разделах, отвечающих за политики безопасности – возможно, сбой всего лишь следствие ограничения прав пользователя. Либо тщательно проверьте текущие настройки политик безопасности в редакторе групповых политик Group Policy Editor (GPEDIT.MSC).

– Верните в исходное – Default – состояние настройки в BIOS, поэкспериментируйте с разными опциями CMOS Setup, отключите все интегрированные устройства. Обновите BIOS. И откажитесь от разгона.

СИСТЕМА И ПРОГРАММЫ

– Запустите утилиту msconfig.exe и отключите все программы из автозагрузки. (Наиболее продвинутым пользователям стоит изучить материалы sergeytroshin.ru/articles/ie-adware-removal и sergeytroshin.ru/articles/windows-autorun-secrets). С помощью msconfig удобно проверить и системные сервисы, например, сравнив список запущенных сервисов с другим ПК, на котором подобного сбоя не наблюдается. Хорошее описание назначения сервисов вы найдете по адресу blackviper.com. Попробуйте, в частности, отключить сервисы от сторонних разработчиков. На вкладке Boot отключите все “левые” настройки.

– Попытайтесь вспомнить, после каких действий появился сбой. Удалите несколько программ и драйверов, которые устанавливались последними – возможно, какая-то из них вызывает сбой системы или конфликтует с другими программами и оборудованием. Удалите все программы, которые были созданы более двух лет назад и с тех пор не обновлялись. Удалите антивирусы и другой тесно интегрирующийся с системой софт. При переустановке программ и драйверов попробуйте не только самую свежую версию, но и более старую – нередко она оказывается более стабильной. Попробуйте переустановить сбойное приложение в другую директорию, с более коротким именем.

– Для устаревших программ попробуйте установить специальный режим совместимости. Для этого создайте ярлык к программе, войдите в его свойства и на вкладке “Совместимость” (Compatibility) выберите режим совместимости с другим типом Windows.

– Попробуйте запустить сбойное приложение под учетной записью администратора. Если программа работает только под ней, то из-под учетной записи администратора найдите в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE раздел с настройками нужной программы и щелкните на нем правой кнопкой мыши. Выберите в появившемся меню команду “Разрешения” и установите полный доступ на эту ветвь реестра для пользователя или группы пользователей, которым разрешается с ней работать. Найдите также в ветви HKEY_CURRENT_USER раздел, соответствующий сбойной программе, и сделайте его экспорт в REG-файл. Войдите теперь в систему под именем обычного пользователя и импортируйте этот REG-файл обратно в реестр. Иногда избавиться от подобного сбоя можно, если удалить свою учетную запись (и весь профиль пользователя) и затем создать ее заново.

– Попробуйте найти и исправить ошибки в реестре с помощью программы типа Norton WinDoctor. Найденные ошибки следует исправлять только в ручном режиме, анализируя каждую из них. Для этого надо попробовать выяснить, к какой программе или системной настройке относится ошибочная запись в реестре, просмотрев в RegEdit ту ветвь, о которой сигнализирует WinDoctor – по названиям файлов, параметров или по прописанным путям несложно установить приложение, породившее ошибку. Попробуйте использовать и другие диагностические утилиты, например, такие как DirectX Diagnostic Tool из состава Windows (команда dxdiag) – она осуществит проверку файлов DirectX, драйверов, настроек некоторых устройств. Некоторые простые сбои устраняет программа Vista Manager. Проблемы с сетью может помочь устранить документ support.microsoft.com/kb/811259.

– Некоторые проблемы с загрузкой Windows легко устраняются с помощью программы EasyBCD. Она умеет “чинить” загрузчик в случае потери каких-то загрузочных файлов или некорректных записей в BCD – файле Boot Configuration Data с настройками системного загрузчика. В крайнем случае можно восстановить главную загрузочную запись жесткого диска (MBR) командой “fdisk /mbr” после запуска ПК с дискеты Windows 98, но после этого опять придется восстанавливать загрузчик Vista.

– Загрузите ПК в DOS с поддержкой NTFS, используя диск Hiren’s Boot CD, или загрузитесь с диска ERD Commander и удалите файл PAGEFILE.SYS. ERD Commander позволяет устранить множество проблем и получить доступ к настройкам ОС и System Restore, даже если сама Windows не загружается в режиме защиты от сбоев. Не стоит забывать и про загрузочный DVD самой Windows – встроенный механизм восстановления системы менее функционален, но всегда под рукой. Проверьте текущие права доступа к файлам и папкам: группа пользователей System и Administrators должна иметь полные права доступа к корневой директории системного диска и к файлу виртуальной памяти PAGEFILE.SYS.

– Проследите в момент появления сбоя за различными системными событиями, запросами и обращениями к реестру с помощью специальных программ мониторинга. Анализируя обращения к реестру можно, например, определить, какие параметры из реестра запрашиваются программой непосредственно в момент возникновения сбоя – возможно, какой-то из них отсутствует или имеет некорректное значение. А с помощью анализа обращений к файлам легко понять, в каких файлах находятся настройки сбойной программы, а какие необходимые ей файлы отсутствуют. В этом помогут утилиты от отошедшей к Microsoft компании SysInternals, в частности, Process Monitor – самая мощная комплексная программа, а также Registry Monitor, File Monitor, DllView, OpenList, PortMon, TCPView. Отличные примеры их использования можно найти в блоге Марка Руссиновича, их автора – blogs.technet.com/mark_russinovich. Отображение информации обо всех запущенных программах лучше всего удается программе TaskInfo. Она же покажет, сколько ресурсов потребляет каждое приложение. Проверьте также систему комплексным диагностически-информационным пакетом, например SiSoft Sandra.

– Удалите лишние шрифты, отключите все счетчики производительности, удостоверьтесь, что на диске отсутствуют папки и файлы с очень длинными именами или расширениями (220 знаков и более), не используйте в работе с программами очень длинные параметры командной строки (220 знаков и более).

ОБОРУДОВАНИЕ

– Обновите все драйверы всех устройств (или удалите и поставьте заново драйверы проблемного устройства, а также драйвер устройства, к которому оно подключено), в особенности – драйверы чипсета. Проверьте наличие специальных патчей и обновлений на сайтах производителей оборудования, а главное – материнской платы.

– Проверьте исправность оборудования, правильность установки перемычек на нем, протестируйте его с помощью таких утилит, как Memory Test, CPU Stability Test и им подобных. Проверьте все, вплоть до батарейки, напряжения блока питания и качества крепления материнской платы – никаких спонтанных замыканий или ненадежных контактов нигде не должно быть!

Временно замените все модули памяти – именно она является тем устройством, которое сбоит чаще всего. Если это невозможно, то попробуйте ограничить ее объем, например, одним гигабайтом. Для этого удобно использовать утилиту MSCONFIG.EXE: параметр Maximum Memory в разделе Boot. Попробуйте более мощный блок питания.

– Проверьте температуру и работоспособность устройств охлаждения всех компонентов системы, даже чипсета (на радиатор чипсета можно даже установить специальный вентилятор). Заземлите ПК, установите сетевой фильтр или источник бесперебойного питания. Проверьте качество телефонного кабеля, сетевого кабеля, электрической разводки.

– Удалите все дополнительные устройства из ПК (кроме жесткого диска и видеокарты, хотя иногда помогает и замена видеокарты), даже внутренний динамик-пищалку, после чего в режиме защиты от сбоев, используя диалог “Свойства системы” (System Properties), удалите их драйверы и посмотрите, не пропал ли сбой. Если пропал, то по очереди устанавливайте устройства обратно, каждый раз повторяя процедуру, обычно приводящую к появлению сообщения об ошибке – возможно, имеет место какой-то аппаратный конфликт, и таким способом вы либо выявите его источник, либо система заново распределит ресурсы и сама его устранит.

– Установите проблемное устройство в другой слот, в свойствах системы и утилите System Information проверьте отсутствие конфликтов. Очень хороша для получения сведений о системе программа SiSoftware Sandra. Попробуйте заменить проблемное устройство на точно такое же либо на устройство другой марки – возможно, просто бракованный экземпляр. Для дисков попробуйте другой шлейф, проверьте правильность установки перемычек Master/Slave, переставьте диск на другой шлейф, поэкспериментируйте с настройками дискового контроллера в CMOS Setup. Не подключайте на один шлейф с проблемным диском другие устройства.

– Загляните в свойства проблемного устройства – возможно, там имеются настройки, использование которых устранит сбой. Например, для диска отключите или включите режим DMA. Если компьютер не загружается, то доступ к этим меню попытайтесь получить из режима защиты от сбоев (Safe Mode).

– В случае проблем с драйверами загрузите ПК в режиме защиты от сбоев, в Диспетчере устройств удалите проблемное устройство (а также все несуществующие в реальности принтеры и устройства, даже джойстики) и после загрузки ОС в обычном режиме установите самый свежий драйвер. Впрочем, иногда более старый драйвер оказывается и более стабильным, попробуйте разные версии. Учтите, что устранению сбоя иногда способствует использование вместо перезагрузки полного выключения ПК и последующего его включения через несколько минут обесточенного простоя. Если сбой имеет какое-то отношение к сети, то в Свойствах сети удалите все сетевые компоненты и после перезагрузки поставьте все необходимое заново. Удалите все принтеры, если с ними есть проблемы, и тоже после перезагрузки переустановите их драйверы. Удалите все драйверы, не сертифицированные для Windows Vista. Проверить подписи системных файлов поможет утилита File Signature Verification (команда sigverif). Если драйвер установился неудачно, то используйте либо загрузку последней удачной конфигурации (вызывается в загрузочном меню Windows), либо в свойствах системы сделайте откат к предыдущей версии драйвера.

ПОСЛЕДНИЙ ШАНС

– Переустановите Windows поверх предыдущей инсталляции. Попробуйте также разные диски с дистрибутивом ОС – возможно, исходный диск поврежден.

– Отформатировав диск, установите Windows заново. Иногда требуется отформатировать диск специальной утилитой от производителя винчестера для полного его обнуления. В ряде случаев, например после некорректной работы программ типа Partition Magic, для устранения сбоя необходимо разбить диск заново с помощью стандартного Fdisk.