Технология выявления причин сбоев Windows XP
Терапия Windows XP
Многие пользователи при появлении серьёзных сбоев в Windows XP предпочитают «ампутацию»: форматирование диска и полную переустановку ОС. Однако столь простой и радикальный хирургический метод не годится, если в системе установлено и настроено много важных программ, переустановка которых невозможна или обойдётся слишком дорогой ценой. В этом случае требуется глубокая диагностика Windows.
У каждого типа сбоя Windows XP своя собственная причина, а потому, хоть и известны вполне однозначные рецепты избавления от самых распространённых проблем, для устранения большинства «глюков» невозможно выработать какой-то универсальный метод «лечения». Конфигурация каждой операционной системы, программного обеспечения, драйверов и оборудования уникальна, и чаще всего выяснить причину возникшей проблемы возможно, только тщательно препарируя железные и программные внутренности конкретного компьютера.
Если сбой не сопровождает ОС прямо с момента её установки, а появился в какой-то определённый момент (после установки очередной программы или драйвера, изменения настроек Windows, сбоя питания), то избавиться от него легко, достаточно удалить проблемное приложение, либо восстановить реестр или даже все содержимое жёсткого диска из резервной копии. Помогут в этом не только стандартная System Restore, но и более интересные программы, например, Norton Ghost [1], Ashampoo Uninstaller [2], WinRescue XP [3]. Разумеется, это возможно, если пользователь не брезговал профилактикой и регулярно пользовался подобными программами, что совсем не сложно, кстати говоря. Например, полный бекап системного NTFS-раздела объёмом 10 ГБ в Norton Ghost занимает всего минут 10 (неразумно отводить ОС весь объём диска).
Если же нет возможности ни восстановить систему «малой кровью», ни полностью её переустановить, то придётся самостоятельно искать причину сбоя. Для достижения успеха в столь неблагодарном и нудном деле рекомендуется следовать такой технологии:
Предварительный этап
- Перед началом диагностики сделайте резервную копию реестра, конфигурационных файлов или всей системы, чтобы не получить в результате экспериментов еще большие проблемы. Обязательно запоминайте все свои дальнейшие действия, чтобы в случае неполадок их можно было легко отменить.
- Удалите все временные файлы, очистите кэш браузера, Корзину, Журнал, очистите папку
Program Files\
с плагинами IE (для их восстановления сделайте резервные копии). Очистите папки, из которых производится автозапуск скриптов MS-Office (типаInternet Explorer\ Plugins Documents and Settings\
,ПОЛЬЗОВАТЕЛЬ\ Application Data\ Microsoft\ Excel\ Xlstart Documents and Settings\
), удалите шаблонПОЛЬЗОВАТЕЛЬ\ Application Data\ Microsoft\ Word\ Startup normal.dot
, используемый MS-Office. Очистите папкиWindows\
,Downloaded Program Files Documents and Settings\
,ПОЛЬЗОВАТЕЛЬ\ NetHood Documents and Settings\
,ПОЛЬЗОВАТЕЛЬ\ PrintHood Documents and Settings\
. Удалите файлыПОЛЬЗОВАТЕЛЬ\ Recent autorun.inf
со всех локальных дисков. - Проверьте систему несколькими свежими антивирусами и программой Ad-Aware [4], просканируйте жёсткий диск утилитами типа ScanDisk, Norton DiskDoctor (с обязательным включением тестирования записи). Проверьте системные файлы с помощью утилиты System File Checker (команда
SFC /SCANNOW
) и восстановите повреждённые библиотеки из дистрибутива Windows или Service Pack. - Обновите систему: помимо последнего сервис-пака (если он уже установлен, переустановите) установите все свежие «заплатки» на сайте Windows Update (windowsupdate
.microsoft.com, учтите только, что некоторые патчи сами могут быть источником проблем). Обновите (переустановите) Internet Explorer [5] и виртуальную машину JAVA [6] от Microsoft. Обновите DirectX, используя для этого redist-дистрибутив (объем около 25-30 мегабайт, а в названии файла присутствует слово REDIST
:DX90b_Redist.exe
). Иногда оказывается полезным сначала удалить Internet Explorer или DirectX, а потом поставить его заново — для этого можно использовать утилиту XPLite [7].
Поиск готового решения
- Тщательно изучите документацию к сбойной программе или плате расширения, быть может, в ней имеются какие-то специальные указания. Посетите также сайт разработчика сбойной программы или устройства — возможно, служба техподдержки производителя знает о проблеме и предлагает загрузить какой-нибудь патч.
- Если сбой сопровождается сообщениями об ошибках (например, ошибками STOP на синем экране), то запишите их точное содержание и зайдите на сайт технической поддержки [8] Microsoft. На основе сообщения об ошибке необходимо сформулировать запрос для поисковой системы (для максимальной эффективности поиска попробуйте формулировать запрос несколькими разными способами). Найти решение в базе данных Microsoft — самый быстрый способ устранения сбоя. Если в базе Microsoft нет сведений о вашем сбое, то запустите специализированную утилиту поиска в Интернете, например, Copernic [9] или Search Plus [10] и также попытайтесь найти в Сети и в технических конференциях UseNet материалы по схожим проблемам. Либо воспользуйтесь русскими и зарубежными поисковиками типа Yandex, Yahoo или Google.
- Учтите только, что если в вашей системе включён режим автоматической перезагрузки при сбоях, то сообщение «синего экрана смерти» отображаться не будет. Поэтому в меню «Control Panel» → «System» → «Startup and Recovery» → «Settings» заранее снимите флаг Automatically restart.
- Для получения максимальной информации о произошедшем сбое обратитесь также к системному журналу ошибок — Event Log («Computer Management» → «Event Viewer», «Управление компьютером» → «Просмотр событий»). Документация по большинству кодов событий Event ID присутствует на сайтах Microsoft Events and Errors Message Center [11] и www.eventid.net [12]. Кое-что можно выжать из системного дебаггера Dr.Watson, которого можно вызвать из окна программы System Information.
- Включите в Windows XP режим отправки сообщений об ошибках в Microsoft: «Control Panel» → «System» → «Advanced» → «Error reporting» → «Enable Error Reporting» («Панель управления» → «Система» → «Дополнительно» → «Отчет об ошибках» → «Включить отчет об ошибках). Вы будете смеяться, но отмечены случаи, когда после отправки разработчикам сведений о произошедшем сбое, пользователю приходил ответ с конкретным решением проблемы.
- Загляните на сайты, посвящённые всенародной борьбе со сбоями Windows, например на www.techadvice.com [13], www.jsiinc.com/
reghack.htm [14], www.mdgx.com [15], www.aumha.org [16], labmice .techtarget.com/ troubleshooting/ general guides.htm [17] — на них вы найдёте ссылки на статьи, посвящённые устранению многих распространённых сбоев. - Посетите популярные веб-конференции и конференции UseNet, посвящённые операционным системам, программному обеспечению и компьютерному оборудованию. Предельно подробно сформулировав описание сбоя своей системы (и не забыв указать её версию!), указав точное содержание сообщения об ошибке и описав конфигурацию своей системы, попробуйте попросить помощи других пользователей — возможно, кто-то уже сталкивался с аналогичной проблемой и знает её решение либо может подсказать направление дальнейших поисков.
Проверка настроек
- В Панели Управления проверьте все настройки системы и оборудования — установите все параметры в положение «По умолчанию». В частности, отмените ограничения размера файла подкачки, проверьте, достаточно ли места на диске, а в настройках переменных окружения временно укажите более короткий путь к папке
TEMP
(например,C:\TEMP
). Даже в настройках клавиатуры установите по умолчанию английский язык. Проконтролируйте также все установки в опциях используемых приложений. - Верните в исходное состояние настройки в реестре и в конфигурационных файлах
user.ini
,system.ini
, сделанные с помощью утилит-твикеров. Проверьте установки в файлахautoexec.nt
,config.nt
,_default.pif
. Запустите поиск в реестре по слову «Policies» и удалите все параметры в найденных разделах (кроме отвечающих за политики электропитания разделовPowerCfg
, а также разделаHKEY_
, содержащего шаблоны политик безопасности IE) — возможно, сбой — всего лишь следствие ограничения прав пользователя. Тщательно проверьте текущие настройки политик безопасности в Редакторе групповых политик Group Policy Editor (LOCAL_ MACHINE\ SOFTWARE\ Microsoft\ Windows\ Current Version\ Internet Settings\ Template Policies GPEDIT.MSC
). - Верните в исходное — Default — состояние настройки в BIOS, поэкспериментируйте с разными опциями CMOS Setup, например, отключите режим DMA для дисков, измените тайминги памяти, отключите все интегрированные устройства, включите «дыру» в районе 15 мегабайта памяти. Отключите в CMOS Setup всё, что касается управления питанием, в том числе ACPI. Либо наоборот — включите все эти опции, если они отключены. Аналогично поэкспериментируйте с параметрами «PnP OS Installed» и «USB Legacy Support». Обновите BIOS. И откажитесь от разгона: разгон — главный враг Windows XP!
Система и программы
- Запустите утилиту
msconfig.exe
и отключите все программы из автозагрузки. Попробуйте также поэкспериментировать с режимом Selective Startup — возможно, некорректная запись затаилась вsystem.ini
илиwin.ini
, другом рудиментарном конфигурационном файле. С помощьюmsconfig
удобно проверить и системные сервисы, например, сравнив список запущенных сервисов с другим ПК, на котором подобного сбоя не наблюдается. Хорошее описание назначения сервисов Windows XP, которое поможет узнать изначальный и рекомендованный статус их настройки в разных версиях Windows, вы найдёте по адресу www.blackviper.com [18]. Попробуйте отключить ненужные сервисы, например, WEB Client, а также проверьте зависимости сервисов, используя оснастку «Сервисы». - Попытайтесь вспомнить, после каких действий появился сбой. Удалите несколько программ и драйверов, которые устанавливались последними — возможно, какая-то из них вызывает сбой системы или конфликтует с другими программами и оборудованием, вызывая их сбои. Удалите все программы, которые были созданы более двух лет назад и с тех пор не обновлялись. Удалите антивирусы и другой тесно интегрирующийся с системой софт. Обязательно используйте специализированный деинсталлятор типа Ashampoo Uninstaller, причём и при установке и при удалении программ — только так можно полностью очистить систему от всех следов удаляемой программы или драйвера! Кроме того, анализ лога деинсталлятора позволяет узнать, какие файлы на диске и какие параметры в реестре изменялись при установке программы — нередко для устранения сбоя достаточно изменить неверно изменённый параметр в реестре. При переустановке программ и драйверов попробуйте не только самую свежую версию (обратите внимание, что к некоторым программам регулярно выходят патчи-обновления), но и более старую — нередко она оказывается более стабильной. Попробуйте переустановить сбойное приложение в другую директорию, с более коротким именем.
- Для устаревших программ попробуйте установить специальный режим совместимости. Для этого создайте ярлык к программе, войдите в его свойства и на вкладке «Совместимость» («Compatibility») в пункте «Запустить программу в режиме совместимости» («Run in emulation mode») выберите режим совместимости с другим типом Windows. Кроме того, используйте набор утилит Application Compatibility Toolkit [19], предназначенный для значительного расширения возможностей и ручной настройки этого режима.
- Попробуйте запустить сбойное приложение под учётной записью администратора. Если программа работает только под ней, то из-под учётной записи Администратора найдите в ветви реестра
HKEY_
раздел с настройками нужной программы и щелкните на нем правой кнопкой мыши. Выберите в появившемся меню команду «Разрешения» («Permissions») и установите полный доступ на эту ветвь реестра для пользователя или группы пользователей, которым разрешается с ней работать. Найдите также в ветвиLOCAL_ MACHINE\ SOFTWARE HKEY_
раздел, соответствующий сбойной программе и сделайте его экспорт в REG-файл. Войдите теперь в систему под именем обычного пользователя и импортируйте этот REG-файл обратно в реестр. Иногда избавиться от подобного сбоя можно, если удалить свою учётную запись (и весь профиль пользователя) и затем создать её заново.CURRENT_ USER - Попробуйте найти и исправить ошибки в реестре с помощью программы типа Norton WinDoctor. Найденные ошибки следует исправлять только в ручном режиме, анализируя каждую из них. Для этого надо попробовать выяснить, к какой программе или системной настройке относится ошибочная запись в реестре, просмотрев в RegEdit ту ветвь, о которой сигнализирует WinDoctor — по названиям файлов, параметров или по прописанным путям несложно установить приложение, породившее ошибку. Попробуйте использовать и другие диагностические утилиты, например, такие как DirectX Diagnostic Tool из состава Windows, она осуществит проверку файлов DirectX, драйверов, настроек некоторых устройств. Некоторые простые сбои устраняет программа Tweak UI [20], для этого в ней предусмотрена вкладка «Repair».
- Некоторые проблемы Windows XP устраняются, если восстановить главную загрузочную запись жёсткого диска (MBR) командой
fdisk /mbr
после запуска ПК с дискеты Windows 98 (это нужно для последующей перезаписи идентификатора диска), либо используя команды консоли восстановленияfixboot
иfixmbr
. Загрузите ПК с дискеты Windows 98/Me с поддержкой NTFS (для этого используйте программу NTFS for DOS Pro) или диска ERD Commander [21] и удалите файлPAGEFILE.SYS
. ERD Commander, вообще говоря — прекрасная программа, являющаяся своего рода LiveCD для Windows XP. Она позволяет устранить множество проблем и получить доступ к настройкам ОС, даже если сама Windows не загружается в режиме защиты от сбоев. Проверьте наличие ошибок вboot.ini
и текущие права доступа к файлам и папкам: группа пользователей «System» и «Administrators» должна иметь полные права доступа к корневой директории системного диска и к файлу виртуальной памятиPAGEFILE.SYS
. - Проследите в момент появления сбоя за различными системными событиями, запросами и обращениями к реестру с помощью специальных программ мониторинга. Анализируя обращения к реестру можно, например, определить, какие параметры из реестра запрашиваются программой непосредственно в момент возникновения сбоя — возможно, какой-то из них отсутствует или имеет некорректное значение. А с помощью анализа обращений к файлам легко понять, в каких файлах находятся настройки сбойной программы, а какие необходимые ей файлы отсутствуют. В этом помогут утилиты от компании SysInternals [22]: Registry Monitor — анализ обращений к реестру, File Monitor — мониторинг обращений к файлам, DllView — информация о библиотеках, используемых текущими процессами, OpenList — сведения обо всех открытых файлах, PortMon — обращения к портам, TCPView — информация о соединениях по протоколу TCP. Отображение информации о всех запущенных программах лучше всего удается программе TaskInfo [23]. Она же покажет, сколько ресурсов центрального процессора потребляет каждое приложение. А выяснить причину затора, возникающего при загрузке, можно с помощью известной диагностической утилиты BootVis [24] (однако Microsoft её более не распространяет, поэтому пользуйтесь поиском). Проверьте также систему комплексным диагностически-информационным пакетом SiSoft Sandra [25] или AIDA32 [26].
- Удалите лишние шрифты, отключите все счетчики производительности, удостоверьтесь, что на диске отсутствуют папки и файлы с очень длинными именами или расширениями (220 знаков и более), не используйте в работе с программами очень длинные параметры командной строки (220 знаков и более).
Оборудование
- Обновите все драйверы всех устройств (или удалите и поставьте заново драйверы проблемного устройства, а также драйвер устройства, к которому оно подключено), в особенности — драйверы чипсета: Intel Chipset Software Installation Utility и Intel Application Accelerator [27] либо VIA-4-in-1 [28] (плюс прочие драйверы и патчи от VIA, такие как VIA IRQ Routing Miniport Driver, VIA IDE Miniport driver и другие, в зависимости от конфигурации системы). Проверьте наличие специальных патчей и обновлений на сайтах производителей оборудования, а главное — материнской платы.
- Проверьте исправность оборудования, правильность установки перемычек на нём, протестируйте его с помощью таких утилит, как Memory Test, CPU Stability Test и им подобных. Проверьте всё, вплоть до батарейки, напряжения блока питания и качества крепления материнской платы — никаких спонтанных замыканий или ненадёжных контактов нигде не должно быть!
- Временно замените все модули памяти — именно она является тем устройством, которое сбоит чаще всего. Если это невозможно, то попробуйте ограничить её объем, например, первыми 64 мегабайтами. В Windows XP для этого удобно использовать утилиту
MSCONFIG.EXE
: параметрMAXMEM
в файлеboot.ini
. Попробуйте более мощный блок питания, как ни странно, нехватка мощности очень часто является причиной сбоев Windows. - Проверьте температуру и работоспособность устройств охлаждения всех компонентов системы, даже чипсета (на радиатор чипсета можно даже установить специальный вентилятор). Заземлите ПК, установите сетевой фильтр или источник бесперебойного питания. Проверьте качество телефонного кабеля, сетевого кабеля, электрической разводки.
- Удалите все дополнительные устройства из ПК (кроме жёсткого диска и видеокарты, хотя, иногда помогает и замена видеокарты), даже внутренний динамик-пищалку, после чего в режиме защиты от сбоев, используя диалог «Свойства системы» («System Properties») удалите их драйвера и посмотрите — не пропал ли сбой. Если пропал, то по очереди устанавливайте устройства обратно, каждый раз повторяя процедуру, обычно приводящую к появлению сообщения об ошибке — возможно, имеет место какой-то аппаратный конфликт и таким способом вы либо выявите его источник, либо система заново распределит ресурсы и сама его устранит.
- Установите проблемное устройство в другой PCI-слот, в свойствах системы и утилите System Information (
Program Files\
) проверьте отсутствие конфликтов. Очень хороша для получения сведений о системе программа SiSoftware Sandra [25]. Если ACPI отключен, попробуйте переназначить вручную конфликтующие прерывания (или еще и другие ресурсы, например, каналы DMA или диапазоны I/O). Попробуйте заменить проблемное устройство на точно такое же, либо на устройство другой марки — возможно, просто виноват бракованный экземпляр или смена производителя платы расширения устранит конфликт. Для дисков попробуйте другой шлейф, вместо 80-жильного шлейфа попробуйте 40-жильный и наоборот, проверьте правильность установки перемычек Master/Common Files\ Microsoft Shared\ MSInfo\ msinfo32.exe Slave, переставьте диск на другой шлейф, установите для него в CMOS Setup либо режим автоопределения, либо задайте его параметры явным образом, либо установите для него «NONE». Не подключайте на один шлейф с проблемным диском другие устройства. - Загляните в свойства проблемного устройства — возможно, там имеются настройки, использование которых устранит сбой, например, для диска отключите или включите режим DMA. Если компьютер не загружается, то доступ к этим меню попытайтесь получить из Режима защиты от сбоев (Safe Mode).
- В случае проблем с драйверами загрузите ПК в режиме защиты от сбоев, в Диспетчере устройств удалите проблемное устройство (а также все несуществующие в реальности принтеры и устройства, даже джойстики) и после загрузки ОС в обычном режиме установите самый свежий драйвер. Впрочем, иногда более старый драйвер оказывается и более стабильным, попробуйте разные версии. Учтите, что устранению сбоя иногда способствует использование вместо перезагрузки полного выключения ПК и последующего его включения через несколько минут обесточенного простоя. Если сбой имеет какое-то отношение к сети, то в свойствах Сети удалите все сетевые компоненты и после перезагрузки поставьте все необходимое заново. Удалите все принтеры, если с ними есть проблемы, и тоже после перезагрузки переустановите их драйвера. Удалите все драйверы, не сертифицированные для Windows XP, проверить подписи системных файлов поможет утилита File Signature Verification, вызываемая из окна программы System Information. Если драйвер установился неудачно, то используйте либо загрузку последней удачной конфигурации (вызывается в загрузочном меню Windows), либо в свойствах системы сделайте откат к предыдущей версии драйвера.
Дело плохо
- Переустановите Windows поверх предыдущей инсталляции, все файлы при этом восстановят свои исходные версии, однако при этом сохраняются основные установки в реестре, поэтому, если причина сбоя в неверных параметрах реестра, то такая переустановка, возможно, ничего не исправит. В ряде случаев можно непосредственно перед установкой из режима защиты от сбоев в диалоге «Свойства системы» («System Properties») удалить всё оборудование, чтобы Windows заново переустановила все драйвера. Попробуйте также разные диски с дистрибутивом ОС — возможно, исходный диск повреждён.
- Полностью стерев папки
Windows
,Program Files
,System Volume Information
иRecycler
(либо переразбив и отформатировав диск), установите Windows «по-голому». Возможно, более работоспособной окажется Windows 2000 или Windows 98. Иногда требуется отформатировать диск специальной утилитой от производителя винчестера для полного его обнуления. В ряде случаев, например, после некорректной работы программ типа Partition Magic, для устранения сбоя необходимо разбить диск заново с помощью стандартного Fdisk.
Финиш
Обратитесь к специалистам или… попытайте счастья с Linux…