BSOD навеки (нет)
На этот раз я хочу поделиться историей о том, как в силу разных причин многие годы был вынужден уживаться с критической ошибкой Windows, приводящей к BSOD вскоре после включения компьютера. Вдумчивому читателю эта история поведает также о том, как на протяжении практически всего жизненного цикла Windows 10 сотрудники Microsoft так и не решили одну из критических ошибок этой операционной системы (ОС). Свой рассказ я поделю на две части. Первая часть — это дневник-отчет о моих попытках решить проблему, который я вел в 2017 году для своих студентов. Кое-что в этой части я буду пропускать и комментировать, используя угловые скобки: <…>. Эта часть не рекомендуется к прочтению тем, кто не любит изучать исторические свидетельства. Вторая часть — это сообщение о том, как все решилось. Итак, приступим.
Часть 1. BSOD навеки
23 июл 2017 в 12:02. Здесь попытаюсь доложить о перипетиях по установке 3ds max на Windows 10 в условиях использования видеокарты на чипсете от Nvidia и сложных взаимоотношениях этих трех и некоторых других компонентов системы.
23 июл 2017 в 12:03. Мне довелось стать счастливым обладателем современной <…> машины. Характеристики: процессор AMD Ryzen 7 1700 (8 ядер, 16 потоков), 32 gb памяти, материнская плата Gigabyte AB350-Gaming 3, БП 700 Вт стандарт 80 PLUS Bronze. Остальное не так важно <ссылку на мой топик форума Gigabyte с точной спецификацией машины см. ниже>. Около получаса я находился в счастливом заблуждении, что примерно через час после подсоединения проводов сбудется мечта и заработает беспрецедентный рендер на 16 потоков. Реальность оказалась не такой радужной. Уже более 10 дней я подвергаю систему разнообразным тестам, пытаясь выявить причину ошибок, не дающих нормально работать.
23 июл 2017 в 12:14. Начну с того, что на такое оборудование практически невозможно нормально установить Windows 7. Дело в том, что эта ОС не умеет устанавливаться с usb 3.0, а в современных материнских платах, судя по моему опыту, поддержка usb 2.0 - вещь достаточно условная. Даже после добавления драйверов usb 3.0 в дистрибутив Windows 7 последняя отказывается устанавливаться под различными предлогами. Один из них - отказ распознать устройство CD-RW. Так или иначе, став счастливым обладателем замечательной машины, я оказался несчастливым обладателем Windows 10.
23 июл 2017 в 12:21. Сама по себе Windows 10 устанавливается довольно бойко, показывает в завершение установки красивые картинки и даже поначалу неплохо работает. Радует новым интерфейсом. Немаловажно, что основные принципы настройки заимствованы из Windows XP, пожалуй, самой надежной ОС из семейства Windows. Сохранены все инструменты администрирования: управление дисками, политиками, настройка устройств, управление службами. Есть несколько новых функций настройки. <...>.
23 июл 2017 в 12:32. Проблемы начинаются после установки программ. Привыкнув к надежности Windows XP, сразу после сражения с Windows 7 и установки Windows 10 я установил все необходимое мне ПО. Это не так и много: Adobe Photoshop CS, 3ds max 7 и 9 и CorelDraw. Photoshop встал без проблем, 3ds max 9 устанавливаться отказался, а семерка напротив, установилась и заработала. С Corel были приключения, но не заслуживающие особенного внимания. Главное началось потом, на следующий день. Один за другим в гости стали приходить BSOD's, так называемые «синие экраны смерти» (blue screen of death). В Windows 10 они выглядят нетрадиционно: теперь они серо-голубые, а не синие, как раньше, и в левом верхнем углу нарисован огромный унылый смайл. Вот такой: :(.
23 июл 2017 в 12:43. Ошибки разнообразные, возникают в разных условиях, указывают либо на драйвер NVidia, либо носят общий характер (т. е. не указывают ни на что определенное). В такого рода ошибках это самое неприятное, поскольку не за что зацепиться. Однако указание на NVidia повторилось два раза. В обоих случаях это произошло при использовании браузера Microsoft Edge. Дополнительные неприятности доставляет то, что Windows 10 щепетильно следит за своей целостностью <…>. Механизмы защиты сильно затрудняют ручное вмешательство в настройки системы, препятствуют корректной установке и работе программ, запускают какие-то свои внутренние процессы, которые закрыты от пользователя и без его ведома вносят изменения в систему или откатывают изменения, произведенные пользователем или программой, которую он использовал. Это общее описание проблемы, ниже буду докладывать о частностях, которых уже оказалось довольно много. Вероятно, еще много и впереди, так как на данный момент система практически чиста <…>.
23 июл 2017 в 13:00. Уточню некоторые параметры: и ОС, и все приложения устанавливаются в 64-битном варианте, так как 32-битные ОС и приложения не умеют нормально использовать более 4 Gb оперативной памяти, и для обсуждаемой машины это не вариант. Справедливости ради надо сказать, что народные умельцы научились заставлять 32-битную ОС использовать память, находящуюся за пределом планки в 4 Gb. Для этого файл подкачки размещается в памяти, находящейся в сегменте > 4 Gb. Когда ОС не хватает оперативной памяти, она обращается к файлу подкачки, но поскольку он размещен на виртуальном диске, а виртуальный диск размещен в оперативной памяти, скорость отклика такого файла подкачки равна скорости обмена с оперативной памятью. Фактически, таким образом ОС использует всю оперативную память. Но это совсем другая история, ведь главная задача - использовать память напрямую. Для этого подходят только 64-битные приложения, ОС и драйвера. И именно с 64-битными версиями наблюдаются основные проблемы, если верить Интернету.
<Другими словами, до этого момента я еще рассматривал возможность работы с 32-битными версиями приложений и ОС как вариант решения проблемы.>
6 авг 2017 в 11:20. Собираю данные. Проблема пока не устранена. После очередного BSOD (система работала стабильно 6 дней) удалил 3ds max 2014 - посмотрим, что будет.
6 авг 2017 в 11:30. В ходе изучения проблемы узнал один очень существенный и совершенно незаметный нюанс, который может и должен приводить современный компьютер к зависаниям и перезагрузкам. Он настолько же незаметен, насколько легко исправляется. Современные процессоры и материнские платы поддерживают энергосберегающие стандарты С6 и С7. Чтобы система нормально работала в энергосберегающем режиме (сон (режим ожидания), гибернация), необходимо, чтобы блок ПИТАНИЯ <…> был способен поддерживать мощность 0,05А (да, именно 0,05А, а не 0,5А!!!) на линии +12в. Большинство современных блоков питания не могут работать на такой низкой мощности, и поддерживают минимум 0,5А, а то и больше. Если вы используете такой блок питания с процессором и материнской платой, использующей стандарт С6 или С7, гарантированы зависания, нестабильность работы и полное отключение компьютера в режимах простоя, невысоких нагрузок на систему, сна и гибернации, перехода в эти состояния и выхода из них. Как это лечится? Варианта два: 1. Купить блок питания с нужными характеристиками. 2. Если это невозможно или жаль денег, зайти во время загрузки в БИОС, найти настройку, отвечающую за режим процессора С6 mode (в разных БИОС может называться по-разному, но суть одна: энергосберегающий режим процессора) и просто отключить его. После этого материнская плата перестанет переводить процессор в состояние С6, с которым не справляется блок питания, и проблемы уйдут.
16 авг 2017 в 22:36. Никакие меры не помогают. Нет стабильности ни с Windows 10, ни с Windows 7. Не помогают переустановки драйверов, изменение настроек BIOS и операционной системы. Причина BSOD так и не выяснена. Все меры, не ведущие к потере гарантии, опробовал. Сдал по гарантии в сервисный центр. Там должны залезть в железо. Протестируют его боле жестко, не так, как могу я в домашних условиях без опасения утратить гарантию. Все же интересно, устранима ли проблема. Существует мнение, что процессоры Ryzen недостаточно стабильны при работе с оперативной памятью, вследствие чего их лучше просто не приобретать. Делать выводы рано, но похоже на правду. С другой стороны, в Интернет достаточно сообщений и о стабильно работающих сборках на Ryzen...
<Сервисный центр оказался бесполезен. Более того, они отрицали сам факт существования проблемы. И, разумеется, после того как я привез системный блок домой и включил его, меня унылым смайлом встретил очередной BSOD.>
19 сен 2017 в 19:14. Пробовал обсудить тему на сайте forum.gigabyte.ru. Полезные советы были, но <стало совершенно ясно, что я один на один с проблемой>. На данный момент удалось установить, что BSOD возникают только при включении компьютера и после его штатной перезагрузки. И то не всегда. Если возникла критическая ошибка, то после перезагрузки эта ошибка уже с гарантией не возникает. Если ошибка после загрузки / перезагрузки не возникла, то ее не будет до тех пор, пока опять не перезагрузишь. Поэтому на данный момент пришел к решению просто никогда не выключать компьютер - вместо этого перевожу его в спящий режим. При таких условиях стабильность есть и можно работать. Хотя, конечно, проблема где-то в системе, видимо, сидит, и со временем ее причину все равно надо определить.
<Кончился отпуск, нервов и энергии было потрачено много, времени на тесты и проверки больше не осталось, поэтому я решил остановиться на том паллиативе, к которому пришел. Однажды, в 2018 году, наступил момент, когда с одним из обновлений драйверов Nvidia ситуация как будто улучшилась. Как оказалось, это была только кажущаяся видимость.>
Часть 2. BSOD навеки
Шли месяцы и годы, обновлялись драйвера, обновлялась ОС, но ничего не менялось. Компьютер мог стабильно работать лишь после перезагрузки ОС. Более пяти лет я жил, почти не выключая его. Я настолько привык к этому, что даже сегодня, после решения проблемы, не вижу смысла вместо варианта «Спящий режим» выбирать «Завершение работы». Компьютер у меня бывает выключен только тогда, когда я уезжаю в длительный отпуск или внезапно отключается электричество. Поэтому время работы, измеряющееся неделями, для меня всего лишь начало рабочего сеанса.
Когда компьютер все же отключался, моя главная задача при его включении заключалась в том, чтобы как можно скорее его перезагрузить. Как вариант, можно было просто дождаться BSOD, после которого система перезапускалась сама. Бывало и так, что перезагрузить машину я просто не успевал… Пять лет — большой срок, а большие сроки влияют на то, как мы воспринимаем повторяющиеся события, поэтому для меня этот голубой экран сегодня выглядит примерно так.
Этот вариант я не люблю.
В разделе форума forum.gigabyte.ru - Для процессоров AMD Socket AM4 до сих пор моя тема на первом месте по количеству ответов и на третьем месте по количеству просмотров: forum.gigabyte.ru - GA-AB350-Gaming 3, причины BSOD в Windows 10. Обсуждение было весьма драматичным. Если у вас много свободного времени, если вам грустно и тоскливо, запаситесь кофе и печеньками на пару дней и приступайте к чтению топика — вам будет чем развлечь себя. А для тех, у кого на это времени и желания нет, сразу перейду к развязке.
Как я и говорил форумчанам изначально, проблема не была связана с оперативной памятью. В то же время, как и говорил один из форумчан (пользователь с ником Real), она оказалась связана с питанием. Конечно, любая критическая ошибка ОС является программно-аппаратной по своей природе, а форум по проблемам железа склонен видеть проблемы в железе. Но нельзя забывать, что важную роль играет не только согласованность компонентов аппаратной части, но и тщательность исполнения системных программ, управляющих ею. Сомнения по поводу аппаратной части, высказанные некоторыми форумчанами, не подтвердились. Предпосылкой такого исхода было то, что все компоненты системы тщательно подобраны и входят в списки совместимого оборудования, о чем я подробно на форуме докладывал. Кроме того, все проведенные мною тесты указывали на то, что ошибка кроется не в оперативной памяти, что она программная, а не аппаратная, причем возникает не на уровне базового (BIOS/UEFI), а на уровне системного программного обеспечения. Так и оказалось. Время самым неожиданным образом объединило мою позицию с позицией Real`a.
Выждав (не специально, конечно) пять с половиной лет и получив один из самых убедительных в моей жизни уроков долготерпения, я решил: пора избавиться от сомнений. С учетом результатов всех проведенных ранее тестов мне было совершенно ясно, что искать ошибку следует в компонентах ОС. Для их тестирования принято использовать процедуру поиска ошибок, основанную на методе половинного деления.
Суть процедуры заключается в следующем. Мы открываем окно «Конфигурация системы» («Панель управления» → «Все элементы панели управления» → «Администрирование» → «Конфигурация системы»), на нем находим закладку «Службы», отключаем половину из них и перезагружаем систему. Если ошибка осталась, значит, ее причиной является одна из включенных служб, если же ошибка исчезла, значит, ее причиной является одна из выключенных служб. Таким образом, мы сразу исключаем из списка подозреваемых половину служб, но все еще не знаем, какая конкретно служба вызывает проблему. Значит, надо повторить эксперимент, применив его к той половине служб, которая приводит к ошибке. И так следует действовать до тех пор, пока из списка подозреваемых не будут исключены все службы, кроме одной. На это требуется ограниченное число шагов, это наиболее быстрый метод поиска проблемного компонента системы. Эксперимент будет несколько сложнее, если проблемных служб несколько, но его суть от этого не меняется. Рано или поздно методом половинного деления мы исключаем службы, не вызывающие ошибки. Нужно только терпение и тщательное протоколирование (вручную) каждого шага, чтобы не запутаться.
И вот, 4 января 2023 года, в 14:10 я отключил службу «Питание» от Microsoft Corporation, которая и оказалась виновником сбоев. Только программисты Microsoft могут точно определить, в чем именно заключается причина нестабильной работы этой службы, и почему проблема проявляется не во всех сборках. Однако вполне ясно следующее: поскольку критическая ошибка в работе службы возникает после включения компьютера, но не после его перезагрузки, а процедуры загрузки и перезагрузки в ОС Windows различны, то ошибка кроется где-то в протоколах загрузки ОС, связанных с определением режимов управления питанием устройств при включении компьютера. На практике отключение этой службы ровным счетом ничего не меняет в работе компьютера. Материнская плата продолжает управлять питанием устройств, компьютер без проблем включается и выключается, уходит в спящий режим и пробуждается от него, устройства в нужный момент отключаются и включаются, продолжают функционировать профили производительности и прочее.
После выявления проблемной службы у меня не возникало желания проверить, исправлена ли она компанией Microsoft. Полагаю, пять лет — достаточно долгий срок, чтобы сделать в этом отношении определенные выводы. Хотя жизненный цикл Windows 10 еще не завершен, она — уже часть истории, это ОС, постепенно уходящая в прошлое. Не знаю, перекочевала ли ошибка в Windows 11, однако сопоставление всех названных фактов настораживает. Конечно, нельзя исключить и вероятность того, что мне просто феноменально не повезло в плане программно-аппаратной конфигурации (что вряд ли соответствует истине, если учесть все факты моей истории, а также количество сообщений о похожих проблемах, которые я наблюдал в 2017 году). Но даже этот вариант ничего не меняет в существе дела. И теперь, пользуясь случаем, я передаю привет всем форумчанам с forum.gigabyte.ru, которые мне помогали советом в далеком 2017 году, а также надеюсь, что читатель извлечет из моего рассказа полезные для себя уроки.
Всем доброго дня.