Устранение ошибки диспетчера загрузки Windows— 0xC0000225 "Состояние не найдено"
В этой статье описаны действия по устранению проблем, из-за которых код ошибки 0xC0000225 возникает на виртуальной машине Azure. Эта ошибка указывает, что состояние или объект не найдены.
Симптомы
При использовании диагностики загрузки для просмотра снимка экрана виртуальной машины вы увидите, что на снимке экрана отображается ошибка "Не удалось запустить Windows" с кодом состояния 0xc0000225.
Файл, связанный с этим кодом ошибки, сообщит вам, какие действия следует предпринять для устранения проблемы. Найдите текст раздела Файл: , чтобы определить соответствующий курс действий.
Драйверы, связанные с ОС или сторонние
Если файл присутствует, но ссылается на драйвер (как показано) или связан с ОС или сторонним поставщиком, выполните действия в разделе Восстановление системного файла.
На следующем рисунке диспетчер загрузки Windows говорит: "Не удалось запустить Windows. Причиной может быть недавнее изменение оборудования или программного обеспечения". На изображении также отображается состояние "0xc0000225", "Файл: как \windows\System32\drivers\atapi.sys
" и "Не удалось загрузить операционную систему, так как отсутствует критически важный системный драйвер или содержит ошибки".
Нет файла
Если отображается код состояния, но файл не отображается, выполните действия, описанные в разделе Добавление переменной OSDEVICE.
На следующем рисунке диспетчер загрузки Windows говорит: "Не удалось запустить Windows. Причиной может быть недавнее изменение оборудования или программного обеспечения". На изображении также отображается состояние "0xc0000225", а в поле Info: "Сбой выбора загрузки, так как необходимое устройство недоступно".
Файл реестра
Если он ссылается на любой из файлов реестра, например \windows\system32\config\system, выполните действия, описанные в разделе Создание запроса в службу поддержки.
На следующем рисунке диспетчер загрузки Windows говорит: "Не удалось запустить Windows. Причиной может быть недавнее изменение оборудования или программного обеспечения". На изображении также отображается состояние "0xc0000225", в поле Файл — \windows\System32\config\system
значение , а в поле Сведения: "Не удалось загрузить операционную систему, так как файл системного реестра отсутствует или содержит ошибки".
На следующем рисунке на экране восстановления отображается сообщение "Ваш компьютер или устройство необходимо восстановить. Не удалось загрузить операционную систему, так как файл системного реестра отсутствует или содержит ошибки". На изображении также показан код ошибки как "0xc0000225", а файл — как \windows\System32\config\system
.
Причины
Отсутствует двоичный файл
Возможно, в системном файле (.sys) отсутствует или поврежден двоичный файл.
Повреждение BCD или неправильная миграция VHD
В этом случае либо данные конфигурации загрузки (BCD) повреждены, либо виртуальный жесткий диск (VHD) был перенесен из локальной среды, но не был подготовлен должным образом. В результате переменная OSDEVICE отсутствует и ее необходимо добавить.
Повреждение Hive реестра
Повреждение куста реестра может быть вызвано следующими:
- Сбой Hive
- Hive подключается, но пуст
- Hive не был закрыт должным образом
Решение
Обзор процесса
Совет
Если у вас есть недавняя резервная копия виртуальной машины, попробуйте восстановить ее из резервной копии , чтобы устранить проблему с загрузкой.
- Создание виртуальной машины восстановления и доступ к ней.
- Выберите решение:
- Включите последовательную консоль и сбор дампов памяти.
- Перестройте виртуальную машину.
Создание виртуальной машины восстановления и доступ к ней
- Выполните шаги 1–3 команд восстановления виртуальной машины , чтобы подготовить виртуальную машину.
- С помощью подключения к удаленному рабочему столу подключитесь к виртуальной машине восстановления.
Выбор решения
- Откройте командную строку с повышенными привилегиями.
- В зависимости от симптома, который вы определили ранее, выполните действия в соответствующем решении. Вы можете пропустить шаги в других решениях, так как они не будут применяться к вашей проблеме:
Восстановление системного файла
Используя подключенный виртуальный жесткий диск, перейдите к расположению файла двоичного файла, показанного на снимке экрана виртуальной машины.
Щелкните файл правой кнопкой мыши, выберите Свойства, а затем перейдите на вкладку Сведения , чтобы просмотреть сведения о файле.
Обратите внимание на версию файла, как показано на рисунке ниже:
Переименуйте файл на< BINARY.SYS >.old, заменив < BINARY.SYS > именем файла.
Для изображения, приведенного на предыдущем шаге, файлcng.sys будет переименован в cng.sys.old
Примечание.
Если вы попытаетесь переименовать файл и получите сообщение "Файл поврежден и не читается", обратитесь за помощью в службу поддержки, так как это решение не будет работать.
Теперь, когда поврежденный файл переименован, исправьте файл, восстановив его из внутреннего репозитория.
Запустите сеанс CMD .
Перейдите в папку \windows\winsxs.
Найдите двоичный файл, расположенный в начале этого раздела, с помощью следующей команды:
dir <BINARY WITH ".SYS" EXTENSION> /s
Эта команда выводит список всех версий файла, который имеется на компьютере, предоставляя журнал путей для этого компонента.
Например, cng.sysdir будет переименован в dir cng.sys /s.
Выберите последнюю версию файла в списке (или предпочитаемую) и скопируйте файл в папку windows\system32 , используя предыдущий путь и следующую команду:
copy <drive>:\Windows\WinSxS\<DIRECTORY WHERE FILE IS>\<BINARY WITH ".SYS" EXTENSION> <DRIVE>:\Windows\System32\Drivers\
Примечание.
Если последний двоичный файл не работал, попробуйте версию до этой версии или любую версию, которая, как вы знаете, имеет стабильный файл, например версию перед исправлением.
Например, если двоичный файл, который вы ищете, являетсяcmimcext.sys, неисправным диском является диск F:, и вы только что выполнили поиск последней версии, вы увидите следующее изображение, где запрос в командной
dir cmim* /s
строке определяет последнюю версию файла cmimcext.sys.В приведенном выше примере изображения запрос был выполнен на C:, тогда как буква диска должна быть буквой неисправного диска F:, который является диском ОС, подключенным в качестве диска данных на виртуальной машине восстановления.
Результирующая команда для копирования файла будет:
copy F:\Windows\WinSxS\amd64_xxxxxx\cmimcext.sys F:\Windows\System32\Drivers
.
После завершения этой задачи перейдите к параметру Включить сбор дампов последовательной консоли и памяти.
Добавление переменной OSDEVICE
Соберите сведения о текущей настройке загрузки и запишите идентификатор активного раздела. Затем эти сведения будут использоваться для добавления переменной OSDEVICE , следуя указаниям для создания виртуальной машины.
Если в этом сборе данных возникает ошибка при отсутствии файла \boot\bcd , используйте инструкции в разделе Восстановление системного файла .
Для виртуальных машин поколения 1 откройте командную строку с повышенными привилегиями от имени администратора и введите следующую команду:
bcdedit /store <LETTER OF BOOT FOLDER>:\boot\bcd /enum
На этом рисунке показан загрузчик Windows на виртуальной машине поколения 1 с выделенным атрибутом идентификатора. Выделенный атрибут идентификатора содержит уникальную буквенно-цифровую строку.
Обратите внимание на идентификатор загрузчика Windows, путь которого \windows\system32\winload.exe.
Для виртуальных машин 2-го поколения убедитесь, что диск ОС подключен к сети и что ему назначены буквы дисков секций. После проверки соберите сведения о настройке загрузки.
- В поиске Windows введите Управление дисками и откройте консоль управления дисками. Используйте эту консоль для определения номера диска, подключенного к виртуальной машине восстановления, и раздела EFI, в котором хранится хранилище BCD.
На следующем образе диск 2 — это номер диска, подключенного к виртуальной машине восстановления. На изображении также показан системный раздел EFI на диске 2, размер которого составляет 100 МБ и не имеет назначенной буквы.
- Откройте командную строку с повышенными привилегиями от имени администратора и введите следующие команды:
Откройте СРЕДСТВО DISKPART с помощью команды
diskpart
.Выведите список всех дисков, а затем выберите подключенный диск, определенный на предыдущем шаге:
list disk sel disk <DISK #>
На следующем рисунке показаны результаты перечисления и выбора диска. Диск 0 (127 ГБ / в сети), диск 1 (32 ГБ / в сети) и диск 2 (127 ГБ / в сети) перечислены. Диск 2 выбирается с помощью команды
sel disk 2
.Выведите список секций и выберите системный раздел EFI, определенный на предыдущем шаге:
list partition sel partition <PARTITION #>
На следующем рисунке показаны результаты перечисления и выбора секции. Раздел 1 (зарезервированный / 16 МБ), раздел 2 (system / 100 МБ) и раздел 3 (основной / 126 ГБ) перечислены, а раздел 2 выбирается с помощью команды
sel part 2
.Назначьте букву секции EFI с помощью команды
assign
.На следующем рисунке
assign
команда и новый диск SYSTEM (F:) отображаются в проводник.Выведите список данных хранилища BCD с помощью следующей команды:
bcdedit /store <LETTER OF EFI SYSTEM PARTITION>:EFI\Microsoft\boot\bcd /enum
На следующем рисунке загрузчик Windows находится на виртуальной машине поколения 2 с выделенным атрибутом идентификатора. Выделенный атрибут идентификатора имеет значение {default}.
Обратите внимание на идентификатор загрузчика Windows, путь к которому : \windows\system32\winload.efi.
Обратите внимание, что переменная OSDEVICE в активной секции отсутствует:
На этом изображении атрибуты диспетчера загрузки Windows и загрузчика Windows перечислены в командной строке, но атрибут OSDEVICE отсутствует.
Добавьте переменную OSDEVICE на основе следующих сведений:
Для дисков ОС с одним разделом добавьте
BOOT
.Примечание.
Папка с возможностью загрузки будет находиться в том же разделе, что и папка Windows \windows.
- Загрузочная папка для виртуальных машин поколения 1 — (\boot\bcd folder).
- Загрузочная папка для виртуальных машин 2-го поколения — EFI\Майкрософт\boot\bcd.
Для виртуальных машин поколения 1 введите следующую команду:
bcdedit /store <LETTER OF BOOT FOLDER>:\boot\bcd /set {<IDENTIFIER>} OSDEVICE BOOT
Для виртуальных машин 2-го поколения введите следующую команду:
bcdedit /store <LETTER OF EFI FOLDER>:EFI\Microsoft\boot\bcd /set {<IDENTIFIER>} OSDEVICE BOOT
Для нескольких дисков ОС секционирования добавьте
PARTITION=<LETTER OF WINDOWS FOLDER>:
.Примечание.
Папка с возможностью загрузки, скорее всего, будет находиться в разделе, отличном от папки Windows \windows.
- Загрузочная папка для виртуальных машин поколения 1 — (\boot\bcd folder).
- Загрузочная папка для виртуальных машин 2-го поколения — EFI\Майкрософт\boot\bcd.
Для виртуальных машин поколения 1 введите следующую команду:
bcdedit /store <LETTER OF BOOT FOLDER>:\boot\bcd /set {<IDENTIFIER>} OSDEVICE partition=<LETTER OF WINDOWS FOLDER>:
Для виртуальных машин 2-го поколения введите следующую команду:
bcdedit /store <LETTER OF EFI FOLDER>:EFI\Microsoft\boot\bcd /set {< IDENTIFIER>} OSDEVICE partition=<LETTER OF WINDOWS FOLDER>:
После завершения этой задачи перейдите к параметру Включить сбор дампов последовательной консоли и памяти.
Обращение в службу поддержки
Ошибка файла реестра имеет решение, но вам потребуется создать запрос в службу поддержки для получения дополнительной помощи.
Включение последовательной консоли и сбора дампов памяти
Рекомендуется. Перед повторной сборкой виртуальной машины включите последовательную консоль и сбор дампов памяти, выполнив следующий скрипт:
Откройте сеанс командной строки с повышенными привилегиями от имени администратора.
Выполните следующие команды:
Включите последовательную консоль:
bcdedit /store <VOLUME LETTER WHERE THE BCD FOLDER IS>:\boot\bcd /ems {<BOOT LOADER IDENTIFIER>} ON bcdedit /store <VOLUME LETTER WHERE THE BCD FOLDER IS>:\boot\bcd /emssettings EMSPORT:1 EMSBAUDRATE:115200
Убедитесь, что свободное место на диске ОС больше, чем размер памяти (ОЗУ) на виртуальной машине.
Если на диске ОС недостаточно места, измените расположение, в котором будет создан файл дампа памяти, и укажите это расположение на любом диске данных, подключенном к виртуальной машине с достаточным объемом свободного места. Чтобы изменить расположение, замените %SystemRoot% буквой диска данных, например F:, в следующих командах.
Предлагаемая конфигурация для включения дампа ОС:
Загрузите Hive реестра с поврежденного диска ОС:
REG LOAD HKLM\BROKENSYSTEM <VOLUME LETTER OF BROKEN OS DISK>:\windows\system32\config\SYSTEM
Включить в ControlSet001:
REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f
Включите в ControlSet002:
REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f
Выгрузить неработающие диски ОС:
REG UNLOAD HKLM\BROKENSYSTEM
Перестроение виртуальной машины
Выполните шаг 5 команд восстановления виртуальной машины , чтобы перестроить виртуальную машину.
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в службу поддержки сообщества Azure.
Обратная связь
Отправить и просмотреть отзыв по