Перейти к контенту ↓


Технология выявления причин сбоев 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 (неразумно отводить ОС весь объём диска).

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

Предварительный этап

  1. Перед началом диагностики сделайте резервную копию реестра, конфигура­ционных файлов или всей системы, чтобы не получить в результате экспериментов еще большие проблемы. Обязательно запоминайте все свои дальнейшие действия, чтобы в случае неполадок их можно было легко отменить.
  2. Удалите все временные файлы, очистите кэш браузера, Корзину, Журнал, очистите папку Program Files\Internet Explorer\Plugins с плагинами IE (для их восстановления сделайте резервные копии). Очистите папки, из которых производится авто­запуск скриптов MS-Office (типа 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 со всех локальных дисков.
  3. Проверьте систему несколькими свежими антивирусами и программой Ad-Aware [4], просканируйте жёсткий диск утилитами типа ScanDisk, Norton DiskDoctor (с обязательным включением тестирования записи). Проверьте системные файлы с помощью утилиты System File Checker (команда SFC /SCANNOW) и восстановите повреждённые библиотеки из дистрибутива Windows или Service Pack.
  4. Обновите систему: помимо последнего сервис-пака (если он уже установлен, пере­установите) установите все свежие «заплатки» на сайте Windows Update (windowsupdate.microsoft.com, учтите только, что некоторые патчи сами могут быть источником проблем). Обновите (пере­установите) Internet Explorer [5] и виртуальную машину JAVA [6] от Microsoft. Обновите DirectX, используя для этого redist-дистрибутив (объем около 25-30 мегабайт, а в названии файла присутствует слово REDIST: DX90b_Redist.exe). Иногда оказывается полезным сначала удалить Internet Explorer или DirectX, а потом поставить его заново — для этого можно использовать утилиту XPLite [7].

Поиск готового решения

  1. Тщательно изучите документацию к сбойной программе или плате расширения, быть может, в ней имеются какие-то специальные указания. Посетите также сайт разработчика сбойной программы или устройства — возможно, служба техподдержки производителя знает о проблеме и предлагает загрузить какой-нибудь патч.
  2. Если сбой сопровождается сообщениями об ошибках (например, ошибками STOP на синем экране), то запишите их точное содержание и зайдите на сайт технической поддержки [8] Microsoft. На основе сообщения об ошибке необходимо сформу­лировать запрос для поисковой системы (для макси­мальной эффективности поиска попробуйте форму­лировать запрос несколькими разными способами). Найти решение в базе данных Microsoft — самый быстрый способ устранения сбоя. Если в базе Microsoft нет сведений о вашем сбое, то запустите специали­зированную утилиту поиска в Интернете, например, Copernic [9] или Search Plus [10] и также попытайтесь найти в Сети и в технических конференциях UseNet материалы по схожим проблемам. Либо воспользуйтесь русскими и зарубежными поисковиками типа Yandex, Yahoo или Google.
  3. Учтите только, что если в вашей системе включён режим авто­мати­ческой пере­загрузки при сбоях, то сообщение «синего экрана смерти» отображаться не будет. Поэтому в меню «Control Panel» → «System» → «Startup and Recovery» → «Settings» заранее снимите флаг Automatically restart.
  4. Для получения макси­мальной информации о произошедшем сбое обратитесь также к системному журналу ошибок — Event Log («Computer Management» → «Event Viewer», «Управление компьютером» → «Просмотр событий»). Документация по большинству кодов событий Event ID присутствует на сайтах Microsoft Events and Errors Message Center [11] и www.eventid.net [12]. Кое-что можно выжать из системного дебаггера Dr.Watson, которого можно вызвать из окна программы System Information.
  5. Включите в Windows XP режим отправки сообщений об ошибках в Microsoft: «Control Panel» → «System» → «Advanced» → «Error reporting» → «Enable Error Reporting» («Панель управления» → «Система» → «Дополнительно» → «Отчет об ошибках» → «Включить отчет об ошибках). Вы будете смеяться, но отмечены случаи, когда после отправки разработчикам сведений о произошедшем сбое, пользователю приходил ответ с конкретным решением проблемы.
  6. Загляните на сайты, посвящённые всенародной борьбе со сбоями Windows, например на www.techadvice.com [13], www.jsiinc.com/reghack.htm [14], www.mdgx.com [15], www.aumha.org [16], labmice.techtarget.com/troubleshooting/generalguides.htm [17] — на них вы найдёте ссылки на статьи, посвящённые устранению многих распро­странённых сбоев.
  7. Посетите популярные веб-конференции и конференции UseNet, посвящённые операционным системам, программному обеспечению и компьютерному оборудованию. Предельно подробно сформулировав описание сбоя своей системы (и не забыв указать её версию!), указав точное содержание сообщения об ошибке и описав конфигурацию своей системы, попробуйте попросить помощи других пользователей — возможно, кто-то уже сталкивался с аналогичной проблемой и знает её решение либо может подсказать направление дальнейших поисков.

Проверка настроек

  1. В Панели Управления проверьте все настройки системы и оборудования — установите все параметры в положение «По умолчанию». В частности, отмените ограничения размера файла подкачки, проверьте, достаточно ли места на диске, а в настройках переменных окружения временно укажите более короткий путь к папке TEMP (например, C:\TEMP). Даже в настройках клавиатуры установите по умолчанию английский язык. Проконт­ролируйте также все установки в опциях используемых приложений.
  2. Верните в исходное состояние настройки в реестре и в конфигу­рационных файлах user.ini, system.ini, сделанные с помощью утилит-твикеров. Проверьте установки в файлах autoexec.nt, config.nt, _default.pif. Запустите поиск в реестре по слову «Policies» и удалите все параметры в найденных разделах (кроме отвечающих за политики электро­питания разделов PowerCfg, а также раздела HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\TemplatePolicies, содержащего шаблоны политик безопасности IE) — возможно, сбой — всего лишь следствие ограничения прав пользователя. Тщательно проверьте текущие настройки политик безопасности в Редакторе групповых политик Group Policy Editor (GPEDIT.MSC).
  3. Верните в исходное — Default — состояние настройки в BIOS, поэкспериментируйте с разными опциями CMOS Setup, например, отключите режим DMA для дисков, измените тайминги памяти, отключите все интегри­рованные устройства, включите «дыру» в районе 15 мегабайта памяти. Отключите в CMOS Setup всё, что касается управления питанием, в том числе ACPI. Либо наоборот — включите все эти опции, если они отключены. Аналогично поэкспери­ментируйте с параметрами «PnP OS Installed» и «USB Legacy Support». Обновите BIOS. И откажитесь от разгона: разгон — главный враг Windows XP!

Система и программы

  1. Запустите утилиту msconfig.exe и отключите все программы из авто­загрузки. Попробуйте также поэкспери­ментировать с режимом Selective Startup — возможно, некорректная запись затаилась в system.ini или win.ini, другом рудиментарном конфигу­рационном файле. С помощью msconfig удобно проверить и системные сервисы, например, сравнив список запущенных сервисов с другим ПК, на котором подобного сбоя не наблюдается. Хорошее описание назначения сервисов Windows XP, которое поможет узнать изначальный и рекомендованный статус их настройки в разных версиях Windows, вы найдёте по адресу www.blackviper.com [18]. Попробуйте отключить ненужные сервисы, например, WEB Client, а также проверьте зависимости сервисов, используя оснастку «Сервисы».
  2. Попытайтесь вспомнить, после каких действий появился сбой. Удалите несколько программ и драйверов, которые устанав­ливались последними — возможно, какая-то из них вызывает сбой системы или конфликтует с другими программами и оборудованием, вызывая их сбои. Удалите все программы, которые были созданы более двух лет назад и с тех пор не обновлялись. Удалите антивирусы и другой тесно интегри­рующийся с системой софт. Обязательно используйте специали­зированный деинсталлятор типа Ashampoo Uninstaller, причём и при установке и при удалении программ — только так можно полностью очистить систему от всех следов удаляемой программы или драйвера! Кроме того, анализ лога деинсталлятора позволяет узнать, какие файлы на диске и какие параметры в реестре изменялись при установке программы — нередко для устранения сбоя достаточно изменить неверно изменённый параметр в реестре. При пере­установке программ и драйверов попробуйте не только самую свежую версию (обратите внимание, что к некоторым программам регулярно выходят патчи-обновления), но и более старую — нередко она оказывается более стабильной. Попробуйте пере­установить сбойное приложение в другую директорию, с более коротким именем.
  3. Для устаревших программ попробуйте установить специальный режим совместимости. Для этого создайте ярлык к программе, войдите в его свойства и на вкладке «Совместимость» («Compatibility») в пункте «Запустить программу в режиме совместимости» («Run in emulation mode») выберите режим совместимости с другим типом Windows. Кроме того, используйте набор утилит Application Compatibility Toolkit [19], пред­наз­наченный для значительного расширения возможностей и ручной настройки этого режима.
  4. Попробуйте запустить сбойное приложение под учётной записью администратора. Если программа работает только под ней, то из-под учётной записи Администратора найдите в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE раздел с настройками нужной программы и щелкните на нем правой кнопкой мыши. Выберите в появившемся меню команду «Разрешения» («Permissions») и установите полный доступ на эту ветвь реестра для пользователя или группы пользователей, которым разрешается с ней работать. Найдите также в ветви HKEY_CURRENT_USER раздел, соответ­ствующий сбойной программе и сделайте его экспорт в REG-файл. Войдите теперь в систему под именем обычного пользователя и импортируйте этот REG-файл обратно в реестр. Иногда избавиться от подобного сбоя можно, если удалить свою учётную запись (и весь профиль пользователя) и затем создать её заново.
  5. Попробуйте найти и исправить ошибки в реестре с помощью программы типа Norton WinDoctor. Найденные ошибки следует исправлять только в ручном режиме, анализируя каждую из них. Для этого надо попробовать выяснить, к какой программе или системной настройке относится ошибочная запись в реестре, просмотрев в RegEdit ту ветвь, о которой сигнализирует WinDoctor — по названиям файлов, параметров или по прописанным путям несложно установить приложение, породившее ошибку. Попробуйте использовать и другие диагнос­тические утилиты, например, такие как DirectX Diagnostic Tool из состава Windows, она осуществит проверку файлов DirectX, драйверов, настроек некоторых устройств. Некоторые простые сбои устраняет программа Tweak UI [20], для этого в ней предусмотрена вкладка «Repair».
  6. Некоторые проблемы 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.
  7. Проследите в момент появления сбоя за различными системными событиями, запросами и обращениями к реестру с помощью специальных программ мониторинга. Анализируя обращения к реестру можно, например, определить, какие параметры из реестра запрашиваются программой непосредственно в момент возникновения сбоя — возможно, какой-то из них отсутствует или имеет некорректное значение. А с помощью анализа обращений к файлам легко понять, в каких файлах находятся настройки сбойной программы, а какие необходимые ей файлы отсутствуют. В этом помогут утилиты от компании SysInternals [22]: Registry Monitor — анализ обращений к реестру, File Monitor — мониторинг обращений к файлам, DllView — информация о библиотеках, используемых текущими процессами, OpenList — сведения обо всех открытых файлах, PortMon — обращения к портам, TCPView — информация о соединениях по протоколу TCP. Отображение информации о всех запущенных программах лучше всего удается программе TaskInfo [23]. Она же покажет, сколько ресурсов центрального процессора потребляет каждое приложение. А выяснить причину затора, возникающего при загрузке, можно с помощью известной диагностической утилиты BootVis [24] (однако Microsoft её более не распространяет, поэтому пользуйтесь поиском). Проверьте также систему комплексным диагностически-информационным пакетом SiSoft Sandra [25] или AIDA32 [26].
  8. Удалите лишние шрифты, отключите все счетчики производи­тельности, удостоверьтесь, что на диске отсутствуют папки и файлы с очень длинными именами или расширениями (220 знаков и более), не используйте в работе с программами очень длинные параметры командной строки (220 знаков и более).

Оборудование

  1. Обновите все драйверы всех устройств (или удалите и поставьте заново драйверы проблемного устройства, а также драйвер устройства, к которому оно подключено), в особенности — драйверы чипсета: Intel Chipset Software Installation Utility и Intel Application Accelerator [27] либо VIA-4-in-1 [28] (плюс прочие драйверы и патчи от VIA, такие как VIA IRQ Routing Miniport Driver, VIA IDE Miniport driver и другие, в зависимости от конфигурации системы). Проверьте наличие специальных патчей и обновлений на сайтах производителей оборудования, а главное — материнской платы.
  2. Проверьте исправность оборудования, правильность установки пере­мычек на нём, протестируйте его с помощью таких утилит, как Memory Test, CPU Stability Test и им подобных. Проверьте всё, вплоть до батарейки, напряжения блока питания и качества крепления материнской платы — никаких спонтанных замыканий или ненадёжных контактов нигде не должно быть!
  3. Временно замените все модули памяти — именно она является тем устройством, которое сбоит чаще всего. Если это невозможно, то попробуйте ограничить её объем, например, первыми 64 мегабайтами. В Windows XP для этого удобно использовать утилиту MSCONFIG.EXE: параметр MAXMEM в файле boot.ini. Попробуйте более мощный блок питания, как ни странно, нехватка мощности очень часто является причиной сбоев Windows.
  4. Проверьте температуру и работо­способность устройств охлаждения всех компонентов системы, даже чипсета (на радиатор чипсета можно даже установить специальный вентилятор). Заземлите ПК, установите сетевой фильтр или источник бес­пере­бойного питания. Проверьте качество телефонного кабеля, сетевого кабеля, электрической разводки.
  5. Удалите все дополни­тельные устройства из ПК (кроме жёсткого диска и видео­карты, хотя, иногда помогает и замена видео­карты), даже внутренний динамик-пищалку, после чего в режиме защиты от сбоев, используя диалог «Свойства системы» («System Properties») удалите их драйвера и посмотрите — не пропал ли сбой. Если пропал, то по очереди устанавливайте устройства обратно, каждый раз повторяя процедуру, обычно приводящую к появлению сообщения об ошибке — возможно, имеет место какой-то аппаратный конфликт и таким способом вы либо выявите его источник, либо система заново распределит ресурсы и сама его устранит.
  6. Установите проблемное устройство в другой PCI-слот, в свойствах системы и утилите System Information (Program Files\Common Files\Microsoft Shared\MSInfo\msinfo32.exe) проверьте отсутствие конфликтов. Очень хороша для получения сведений о системе программа SiSoftware Sandra [25]. Если ACPI отключен, попробуйте пере­на­значить вручную конфликтующие прерывания (или еще и другие ресурсы, например, каналы DMA или диапазоны I/O). Попробуйте заменить проблемное устройство на точно такое же, либо на устройство другой марки — возможно, просто виноват бракованный экземпляр или смена производителя платы расширения устранит конфликт. Для дисков попробуйте другой шлейф, вместо 80-жильного шлейфа попробуйте 40-жильный и наоборот, проверьте правильность установки пере­мычек Master/Slave, пере­ставьте диск на другой шлейф, установите для него в CMOS Setup либо режим авто­опре­деления, либо задайте его параметры явным образом, либо установите для него «NONE». Не подключайте на один шлейф с проблемным диском другие устройства.
  7. Загляните в свойства проблемного устройства — возможно, там имеются настройки, использование которых устранит сбой, например, для диска отключите или включите режим DMA. Если компьютер не загружается, то доступ к этим меню попытайтесь получить из Режима защиты от сбоев (Safe Mode).
  8. В случае проблем с драйверами загрузите ПК в режиме защиты от сбоев, в Диспетчере устройств удалите проблемное устройство (а также все несущест­вующие в реальности принтеры и устройства, даже джойстики) и после загрузки ОС в обычном режиме установите самый свежий драйвер. Впрочем, иногда более старый драйвер оказывается и более стабильным, попробуйте разные версии. Учтите, что устранению сбоя иногда способствует использование вместо пере­загрузки полного выключения ПК и последующего его включения через несколько минут обесточенного простоя. Если сбой имеет какое-то отношение к сети, то в свойствах Сети удалите все сетевые компоненты и после пере­загрузки поставьте все необходимое заново. Удалите все принтеры, если с ними есть проблемы, и тоже после пере­загрузки пере­установите их драйвера. Удалите все драйверы, не сертифи­цированные для Windows XP, проверить подписи системных файлов поможет утилита File Signature Verification, вызываемая из окна программы System Information. Если драйвер установился неудачно, то используйте либо загрузку последней удачной конфигурации (вызывается в загрузочном меню Windows), либо в свойствах системы сделайте откат к предыдущей версии драйвера.

Дело плохо

  1. Пере­установите Windows поверх предыдущей инсталляции, все файлы при этом восстановят свои исходные версии, однако при этом сохраняются основные установки в реестре, поэтому, если причина сбоя в неверных параметрах реестра, то такая пере­установка, возможно, ничего не исправит. В ряде случаев можно непосредственно перед установкой из режима защиты от сбоев в диалоге «Свойства системы» («System Properties») удалить всё оборудование, чтобы Windows заново пере­установила все драйвера. Попробуйте также разные диски с дистрибутивом ОС — возможно, исходный диск повреждён.
  2. Полностью стерев папки Windows, Program Files, System Volume Information и Recycler (либо пере­разбив и отформатировав диск), установите Windows «по-голому». Возможно, более работо­способной окажется Windows 2000 или Windows 98. Иногда требуется отформатировать диск специальной утилитой от производителя винчестера для полного его обнуления. В ряде случаев, например, после некорректной работы программ типа Partition Magic, для устранения сбоя необходимо разбить диск заново с помощью стандартного Fdisk.

Финиш

Обратитесь к специалистам или… попытайте счастья с Linux…




Темы