Stop ошибка 0x0000006b как исправить синий экран
Безусловно, но большинство пользователей ПК панически боятся неожиданно оказаться без доступа к своему любимому устройству. Одним из вариантов такой ситуации является синий экран смерти 0x0000006b. Особенность заключается в том, что ошибка может быть вызвана, как программной, так и аппаратной средой. Учитывая этот факт, решение вопроса с stop 0x0000006b Windows 7 заключается в одновременном проведении целого комплекса лечебных процедур.
Причины возникновения
Итак, прежде чем приступить к исправлению, придется выяснить причину ее возникновения.
Обычно надписи «0x0000006b bsod» могут предшествовать следующие процессы:
- Выполнение загрузки каких-либо обновлений для операцинки.
- Физическое вмешательство в работу оборудования, входящего в состав ПК.
Причины выяснены, теперь необходимо понять, как исправить «process1 initialization failed 0x0000006b Windows 7».
Решение возникшей проблемы
Начнем лечение «process1 initialization failed 0x0000006b Windows 7» со второй причины возможного возникновения. Данная проблема легко может быть вызвана некорректной работой жестких дисков или повреждениями различных шлейфом, поэтому первый шаг – выполнить процесс визуальной проверки и, в случае возникновения сомнений, заменить необходимые элементы.
Следующий шаг – программное решение вопроса с 0x0000006b win 7. В этом пункте могут возникнуть затруднения, так как на официальном сайте компании Microsoft представлено якобы решение этой проблемы, но, как показала практика, оно не совсем эффективно. Реально справиться с ситуацией поможет сочетание предложенного лечения от разработчиков и помощь одного из пользователей, который лично столкнулся с подобной ошибкой, но смог самостоятельно выйти из положения. Итак, что требуется сделать?
Прежде всего, попытаться обновить драйверы всех возможных устройств. Дальше потребуется иметь загрузочный диск, который необходим для следующей процедуры:
- Найти на винчестере папку c:\windows\system32\catroot\
\, которую следует заменить на аналогичную, скачанную с диска. - Кроме того, выполнить поиск и замену файла bootcat.cache.
Чтобы не тратить время на поиск этих элементов в ручном режиме достаточно зайти через кнопку «Пуск» в меню «Поиск» и ввести нужную информацию. После чего – завершить необходимый процесс, перезагрузить операционку, и наслаждаться стабильной функциональностью системы.
STOP 0x0000006B
Статья дополняет серию материалов, освещающих методы устранения проблем, приводящих к возникновению критической системной ошибки (BSOD). В материалах раздела рассматриваются ситуации, с которыми я сталкивался лично (в своей практике) и с которыми мне удалось разобраться. STOP-ошибка (STOP error), контроль дефекта (BugCheck) или в простонародье BSOD — фатальный системный сбой операционной системы Windows, являющийся причиной полного прекращения функционирования основных компонентов ядра операционной системы, влекущий за собой потерю динамических не сохраненных пользовательских данных и приводящий к появлению на экране монитора синего экрана смерти (BSOD). Числовое обозначение STOP-ошибки — идентификатор, характеризующий «природу» фатальной системной ошибки, используется при диагностике причины возникшей неполадки. В данной статье речь пойдет о сбое с идентификатором STOP 0000006B.
Теория
STOP 0x0000006B имеет собственную специфику и возникает на ранних стадиях загрузки операционной системы. В момент возникновения сбоя пользователь наблюдает на экране следующее сообщение об фатальной системной ошибке:
В общем случае формат ошибки следующий:
Значение | Описание |
---|---|
0xAAAAAAAA | Первый параметр. Статус завершения операции. |
0xBBBBBBBB | Второй параметр. Неофициально — указатель на этап загрузки/инициализации. |
0xCCCCCCCC | Третий параметр. Зарезервировано. |
0xDDDDDDDD | Четвертый параметр. Зарезервировано. |
Вообще загрузка операционной системы представляет собой достаточно сложную процедуру, которая состоит из множества стадий. На одной из начальных стадий загружается непосредственно ядро операционной системы, которое начинает проходить этапы инициализации/создания собственных структур и создания/запуска основных системных процессов, составляющих исполнительную подсистему ядра. Символическое имя ошибки PROCESS1_INITIALIZATION_FAILED (ОШИБКА_ИНИЦИАЛИЗАЦИИ_ПРОЦЕССА1), по идее разработчиков, должно сообщать нам о том, что ошибка STOP 0000006B возникает в ситуации невозможности загрузки/инициализации некоего критичного для загрузки операционной системы модуля. Что означает имя PROCESS1 , это процесс, загружаемый на стадии 1 или процесс с номером (идентификатором) 1? И если следовать подобной логике, то зададимся вопросом: процесс №1 это случайно не процесс System ? Ведь если брать во внимание высказывание главного разработчика Microsoft Раймонда Чена (Raymond Chen):
..в то время как процесс System имеет PID =4, то получается, что PROCESS1 и есть System ? Далее, опираясь на данные, которые можно получить из исходных кодов ядра, можно утверждать, что на определенном этапе стартует Диспетчер процессов . Диспетчер процессов предназначается для управления процессами в ОС и одной из его задач является загрузка и подготовка (экспорт) функций DLL. На одном из ранних этапов загрузки, при подготовке процесса System, происходит связывание функции основных системных DLL ( ntdll.dll и других). Как раз на этом этапе работы и может появляться рассматриваемая нами ошибка: либо по причине повреждения одной из критичных системных DLL, либо из-за разных версий взаимосвязанных DLL, либо по причине несоответствие подписи (подделки) кода некоторых DLL (защита которых реализована в специальном коде ядра операционной системы).
Второй параметр (BugCheckParameter2)
Все найденные мной точки возникновения критической ошибки STOP 0000006B располагаются в коде ядра операционной системы, размещенного в файле ntoskrnl.exe (либо другом ntkr*.exe в зависимости от аппаратной конфигурации станции). Давайте попробуем разобрать каждую из них подробнее.
Второй параметр =2
Первый найденный фрагмент находится внутри функции PsLocateSystemDlls и выглядит он следующим образом:
Функция PsLocateSystemDll , судя по всему, открывает последовательно все версии библиотеки ntdll.dll (в 64-разрядных системах их несколько) и получает оттуда точки входа функций KiUserApcDispatcher , KiUserExceptionDispatcher , KiUserCallbackDispatcher , RtlRaiseException и некоторых других. Адреса данных процедур необходимы ядру для выполнения основных задач (например, для генерации исключения для процессов пользовательского режима, доставки APC и обратных вызовов графического пользовательского интерфейса win32k.sys ).
Второй параметр =3
Следующий фрагмент был найден внутри функции PspLocateSystemDll :
то есть второй параметр 3! Функция PspLocateSystemDll выполняет инициализацию (заполнение) полей структуры размещаемых в памяти ядра системных библиотек.
Второй параметр =6
Очередной блок размещается внутри функции PspInitializeSystemDlls :
то есть второй параметр 6! Похоже функция PspInitializeSystemDlls производит заполнение (инициализацию) полей структуры экспортируемых библиотекой ntdll.dll функций. Она берет базовый адрес образа ( ImageBase ) каждой доступной в системе версии ntdll.dll и производит разрешение всех экспортируемых функций, а так же производит ряд других манипуляций.
Все параметры =0
И наконец внутри функции Phase1InitializationDiscard имеется такой вот код:
Судя по приведенному блоку кода, непосредственно перед заталкиванием в стек кода ошибки (значение 6Bh ), подготовки четырех параметров перед вызовом функции KeBugCheck не производится. Скорее всего как раз по этой причине, в ряде сбоев, на результирующем синем экране все параметры равны нулю . Как видно из кода, перед возбуждением исключения STOP 0000006B производится проверка результата выполнения функции PsInitSystem . Сама функция фактически представляет собой диспетчер процессов и предназначена для создания структуры процесса, вызывается ядром в ходе инициализации в фазах 0 и 1. Сам останов в этой точке возникает как реакция на нештатное завершение функции PsInitSystem , внутри которой к возникновению ошибки могут приводить следующие события:
- ошибочное завершение ObCreateObjectTypeEx (Создание объекта в пространстве имен);
- ошибочное завершение SeRegisterObjectTypeMandatoryPolicy (Регистрация политики доступа к объекту);
- равенство значений переменных PsPAffinityUpdateLock (?) = PspCidTable (указатель на таблицу описателей, хранящей созданные объекты процессов и нитей);
- ошибочное завершение ExInitializeResourceLite (инициализация ресурса исполняемой подсистемы);
- ошибочное завершение PspCreateProcess (Создание процесса);
- ошибочное завершение ObReferenceObjectByHandle (Поиск объекта по описателю);
- неправильное значение поля PsInitialSystemProcess +1ECh (глобальная переменная, указатель на структуру EPROCESS для процесса System);
- ошибочное завершение PsCreateSystemThread (создание потока, запускающийся в режиме ядра, возврат описателя процесса).
Понятное дело, что глубже весь этот кодовый треш никто не собирается тут анализировать, я просто оставил это здесь для того, что бы вы могли проникнуться неопределенностью вместе со мной 🙂
Первый параметр (BugCheckParameter1)
Помимо приведенных выше указателей на этапы (второй параметр BugCheckParameter2 ), в процессе исполнения кода которых произошел сбой, более свободно ориентироваться в причинах проблемы помогает первый параметр. Напомню, что применительно к сбою STOP 0000006B, первый входной параметр ( BugCheckParameter1 ) дает нам статус завершения операции:
Значение первого параметра | Символическое имя | Описание |
---|---|---|
0xC0000034 | STATUS_OBJECT_NAME_NOT_FOUND | Имя объекта не найдено. Проблема часто возникает после сбоя в процессе установки системных обновлений и сообщает о рассинхронизации системных библиотек/драйверов ранних стадий загрузки, в случае когда часть связанных функционалом модулей осталась предыдущих версии, а часть обновилась до последней актуальной. Причиной являются ошибки, возникающие в процессе установки обновления, например пользователь мог жестко прервать процесс, вручную перезагрузившись/отключив питание, не дождавшись завершения установки. |
0xC0000020 | STATUS_INVALID_FILE_FOR_SECTION | Исполняемый образ модуля, участвующего в начальных стадиях загрузки ОС, поврежден, то есть имеет проблемы с одной из секций (в таблице секций). Ошибка может возникать после сбоя в процессе установки обновлений/драйверов в систему, что ведет к повреждению файлов (образов). Так же, ошибка может быть вызвана проблемами загрузки уже существующих драйверов этапа загрузки (BOOT) по множеству причин: поврежденная файловая система, аппаратные проблемы с диском, контроллером. |
0xC000012F | STATUS_INVALID_IMAGE_NOT_MZ | Загрузочный образ не соответствует требуемому формату исполняемых файлов, то есть не содержит сигнатуру MZ в заголовке. Ошибка может возникать после неудачной попытки установки обновлений/драйверов в систему, что влечет за собой повреждение данных. Так же, ошибка может быть вызвана проблемами загрузки уже существующих драйверов этапа загрузки (BOOT) по множеству причин: поврежденная файловая система, аппаратные проблемы с диском, контроллером. |
0xC0000102 | STATUS_FILE_CORRUPT_ERROR | Загрузочный образ поврежден. Ошибка может возникать в следствии ошибки в процессе установки обновлений/драйверов в систему. Так же, ошибка может быть вызвана проблемами загрузки уже существующих драйверов этапа загрузки (BOOT) по множеству причин: поврежденная файловая система, аппаратные проблемы с диском, контроллером. |
0xC0000428 | STATUS_INVALID_IMAGE_HASH | Ошибка контрольной суммы: исполняемый файл, критичный для загрузки ОС, был заменен, его хэш не совпадает с содержащимся в каталоге (.cat). Значение хэша открытого файла отсутствует в записи системного каталога, и файл может быть подделан/поврежден. Обычно это случается при подмене файла ci.dll , ntdll.dll и ряда других. |
Общие причины
- Ошибка обнаружения критичного для загрузки ОС объекта/модуля (драйвера/библиотеки) по причинам: ошибки файловой системы, повреждение носителя информации, .
- Ошибка инициализации критичного для загрузки ОС объекта/модуля (драйвера/библиотеки): ошибки структуры файла (повреждение данных файла), ошибки файловой системы, повреждение носителя информации, . ;
- Рассинхронизация (несоответствие) версий ядра (файл(ы) ntoskrnl.exe , ntkrnlmp.exe , ntkrnlpa.exe , ntkrpamp.exe ) и библиотеки ntdll.dll (обычно после обновлений).
- Иные ошибки, попадающие под общую категорию ошибок инициализации фаз ядра.
Общие варианты решения
В данном заголовке приводятся общие методы восстановления, которые применяются для всех подвидов ошибки STOP 0x0000006B вне зависимости от параметров ошибки ( BugCheckParameter1 , BugCheckParameter2 , BugCheckParameter3 , BugCheckParameter4 ), которые указаны после кода STOP-ошибки в круглых скобках.
0xc000006b windows 7 синий экран
Ошибка появляется во время запуска системы.
Решения взяты с форума oszone.ru — в моем случае, ни одно из предложенных решений не было действенным.
Пробовал восстанавливать реестр с папки repair (т.к. восстановление системы было отключено) — система начинает грузиться — но после перезагрузки вновь появляется эта ошибка.
Также проверял автозапуск с помошью программы autoruns — ничего подозрительного не обнаружил.
Пробовал сделать проверку диска
Т.к. система не была загружена никакими программами, я просто ее переставил заново предварительно отформатировав диск
Итак что же предлагают сделать в данном случае на форуме, приведу избранные цитаты:
Победил ошибку спустя 3 часа.
Симптомы: винда и сейфмод — не грузятся, средство восстановления — useless. PROCESS1_INITIALIZATION_FAILED. В доп параметрах стояли нули 0x6b (0x0, 0x0, 0x0, 0x0). Вынь7
Па с бубном: советы с сайта мелкософтовцев, анализ минидампа, проверка/замена памяти, проверка на битые сектора винта, проверка на вирусы.
Итог:
— Память не причём была.
— вирусов не обнаружено.
— В минидампе — ссылка на ntkrnlpa.exe. (Unable to load image \SystemRoot\system32\ntkrnlpa.exe, Win32 error 0n2
*** WARNING: Unable to verify timestamp for ntkrnlpa.exe)
— Совет мелкомягких — удалить bootcat.cache — не прошел. Соответственно, накатить рекомендуемое закрытое обновление не смог.
Начал подумывать о накате винды поверх… сложил лапки на пузе. Да, 0x06b — непобедим…
Решение: заменил bootcat.cache с рабочего компа. Винда стартанула. Ура! Всё работает! Контрольный перезапуск — ппц, всё не работает. Еще одна подмена файла. Думаю, что делать дальше… случайно вспоминаю про закрытый фикс. Накатываю из под винды, перезагрузка — всё работает. Вуаля.
P.S.: Знал бы где упаду — соломки бы подстелил. (соломка — windows updates). Хозяева соломку отключили: «а зачем оно нуна? оО»
P.P.S.: Очень порадовала консоль восстановления вынь7 с её горячим подключением юсб. Не знал, блин… Вообще от семёрки масса положительных эмоций.
На правах некропостинга для будущих поколений. Ну и для развеивания мифа о непобедимости.
Кстати я не нашел bootcat.cache на рабочей машине с Windows XP — у меня ошибка была не на семерке
Еще одно полезное сообщение
PS: нашёл решение на одном сайте американском:
1) запускаетесь с флешки с файловым менеджером на борту
2) подменяете boot.cache на аналогичный с любого живого аппарата
3) с того же живого аппарата копируете папку c:\windows\system32\catroot\\ с заменой файлов
пока полёт нормальный
Как видно неприятная ошибка — не хотелось бы ее еще раз встретить.
13 комментариев к записи “BSOD 0x0000006B PROCESS1_INITIALIZATION_FAILED”
Зачем затираешь комменты !! Я разве виноват, что ты пишешь так, что читать неприятно и неудобно !! Верни взад мой коммент !! И да, по теме, вчера мне помог, этот совет:
PS: нашёл решение на одном сайте американском:
1) запускаетесь с флешки с файловым менеджером на борту
2) подменяете boot.cache на аналогичный с любого живого аппарата
3) с того же живого аппарата копируете папку c:\windows\system32\catroot\\ с заменой файлов
пока полёт нормальный
Подтверждаю, замена с живого компа папки и файла, все работает, полёт нормальный !!
твой Коммент — Статья очень хреново написана, «ябыподредактировал» — не несет никакой информативной части для читателей, а адресовался именно мне, к тому же походит на спам.
Согласен, что статья не фонтан — принял к сведению но редактировать не собираюсь — уж что получилось))
За ненадобностью коммент и был удален — также как и коммент — Эй аффтар !! Где мой комментарий !!
И да, за информативный коммент — спасибо! Рад, что такое решение помогло.
Замечательная статья!
Единственное, что помогло после нескольких часов поисков в Интернете
(а именно: «PS: нашёл решение на одном сайте американском:… и т.д.»
Огромное спасибо автору!
Здравствуйте
не пойму что за boot.cache и где его взять
Спасибо, помогло. Вариант «PS: нашёл решение на одном сайте американском:»
Увы, в моем случае не помогло, думал уже все, но неожиданно отработал диск восстановления, что само по себе удивило.
СПАСИБО. МУЧИЛСЯ ЦЕЛЫЙ ДЕНЬ, ПОКА РЕЦЕПТ НЕ ПОПРОБОВАЛ — РАБОТАЕТ.
Поймал такой бе БСОД — применил все описанные здесь способы, пока не помогает!
Нормально написанная статья, в общем все доходчиво. Спас последний вариант. Признателен, ох уж как не хотелось Винду сносить.
А можно поподробнее процесс описать?))) как запуститься с флешки и какой файломенеджер взять?))) с остальным мож разберусь))) спасибо))
Live cd запишите на диск 700 мб и не будет проблем с флешками и внешними винтами
Win7x64, словил такой же BSOD, bootcat.cache в моей ситуации роли не сыграло.
Обнаружилось две папки:
c:\windows\system32\catroot\
и
c:\windows\system32\catroot2\
В результате танцев с бубном, выяснил, в первой папке некие базы с драйверами, во второй папке находился единственный файл (catdb), судя по названию это база со списком того, что лежит в первой папке. Мне повезло, что некоторое время назад переносил винду с hdd, на ssd и старый hdd с виндой остался в компе (просто я скрыл партицию со старой виндой).
В общем сравнил две папки (старую винду с новой на ssd), в первой папке не хватало двух файлов, я добавил их со старой винды. А также перезаписал файл во второй папке старым файлом (со старой винды) и вуаля, винда пусканулась. Правда Касперский антивирь написал, что базы повреждены (возможно это связано). Вылечил обновлением баз Каспера. Далее накатил все последние обновы на Win. И норм, полёт нормальный:)
Thank you very much for writing these wonderful tips! Very helpful.