- Причины и исправление ошибки 0x0000006b
- process1-initialization-failed
- Признаки
- Исправление ошибки 0x0000006b
- Полезно знать
- STOP 0x0000006B
- Теория
- Второй параметр (BugCheckParameter2)
- Второй параметр =2
- Второй параметр =3
- Второй параметр =6
- Все параметры =0
- Первый параметр (BugCheckParameter1)
- Общие причины
- Общие варианты решения
- Сообщение об ошибке «Stop error code 0x0000006B PROCESS1_INITIALIZATION_FAILED» во время запуска компьютера, работающего под управлением Windows 7 или Windows Server 2008 R2
- Проблема
- Причина
- Решение
- Временное решение
- Статус
- Дополнительная информация
Причины и исправление ошибки 0x0000006b
process1-initialization-failed
Каждый пользователь ПК, хоть раз, но все-таки сталкивался с проблемой синего экрана смерти BSOD. Данная неполадка происходит не из-за того что продукт компании Майкрософт не качественный. Каждая операционная система имеет свои проблемы, поэтому мы видим, что ежегодно выходят все более новые версии Windows, и с каждой новой версией операционной системы, корпорация пытается устранить ту или иную проблему.
Признаки
В данной статье мы рассмотрим вопрос о причине появления ошибки 0x0000006b и более детально изучим способы ее устранения. Как правило, код 0x0000006b process1 initialization failed для windows 7 появляется после запуска ОС перед авторизацией пользователя. Данный код ошибки 0x0000006b появляется по причине повреждений файлов «Bootcat.cache» или же из-за того что размер данного файла был увеличен после предыдущего успешного запуска. Если говорить коротко, то перед тем как залогиниться в своей учетной записи пользователя , синий экран смерти 0x0000006b не дает вам этого сделать.
Следует знать «Файл Bootcat.cache расположен по адресу %SystemRoot%\system32\codeintegrity.»
Исправление ошибки 0x0000006b
Для того чтобы устранить данный код ошибки 0x0000006b для windows 7 при загрузке следует установить пакет обновлений для операционной системы «Пакет обновлений №1». Избавиться от stop 0x0000006b можно скачавши вышеуказанный пакет обновлений на официальном сайте компании Майкрософт.
Полезно знать
Есть также временное решение данной проблемы с bsod 0x0000006b для windows 7. Вы можете осуществить запуск ОС с помощью загрузочной флешки или жесткого диска, и после этого удалить поврежденный файл Bootcat.cache, далее вы перезапускаете компьютер, и ошибка 0x0000006b вас не будет беспокоить определенный промежуток времени.
Как и каждое устройство, компьютер требует соблюдать определенные условия при пользовании, и если выполнять все профилактические меры – то вероятность появления синего экрана смерти с кодом ошибки 0x0000006b станет намного меньше.
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-ошибки в круглых скобках.
Сообщение об ошибке «Stop error code 0x0000006B PROCESS1_INITIALIZATION_FAILED» во время запуска компьютера, работающего под управлением Windows 7 или Windows Server 2008 R2
Не уверены, что решение правильное? Мы добавили эту неполадку к нашей , которую можно провести.
Проблема
Ваш компьютер работает под управлением Windows 7 или Windows Server 2008 R2. Однако он аварийно завершает работу во время запуска перед запросом учетных данных пользователя. Кроме того, появляется такое сообщение о STOP-ошибке:
STOP: 0x0000006B ( Parameter1, Parameter2, Parameter3, Parameter4)
PROCESS1_INITIALIZATION_FAILED
Примечание. Названия четырех параметров в сообщении о STOP-ошибке могут зависеть от конфигурации компьютера.
Причина
Неполадка возникает из-за повреждения файла Bootcat.cache или вследствие изменения его размера после последнего успешного запуска.
Примечание. Файл Bootcat.cache расположен по адресу %SystemRoot%\system32\codeintegrity.
Решение
Чтобы решить эту проблему, установите пакет обновления 1 для Windows 7 и Windows Server 2008 R2. Майкрософт не предоставляет поддерживаемое исправление для этой проблемы. Чтобы получить дополнительные сведения об этом пакете обновления, щелкните номер следующей статьи в базе знаний Майкрософт:
Сведения о пакете обновления 1 для Windows 7 и Windows Server 2008 R2
Временное решение
Чтобы обойти эту неполадку, запустите компьютер с жесткого диска или USB-накопителя с помощью установочного носителя Windows. Удалите файл Bootcat.cache, и перезапустите компьютер.
Статус
Майкрософт подтвердила наличие этой проблемы в ее продуктах, перечисленных в разделе «Применимость».
Дополнительная информация
Чтобы получить дополнительные сведения о терминологии обновления программного обеспечения, щелкните номер следующей статьи в базе знаний Майкрософт:
Описание стандартной терминологии, используемой для описания обновлений программного обеспечения Майкрософт