Stop-ошибка Windows 0xC0000102 файл состояния поврежден
В этой статье описаны действия по устранению проблем, из-за которых операционная система Windows (ОС) сталкивается с stop-ошибкой 0xC0000102, которая препятствует загрузке виртуальной машины Azure.
Симптомы
При использовании диагностика загрузки для просмотра снимка экрана виртуальной машины на снимке экрана отображается сообщение о том, что ос обнаружила код ошибки 0xC0000102 во время запуска.
Причина
Ошибка 0xC0000102 — это STATUS_FILE_CORRUPT_ERROR, что означает, что поврежденный файл препятствует правильному запуску виртуальной машины. Существует две возможные причины этого кода ошибки:
- Файл, отображаемый в сообщении об ошибке, поврежден.
- Структура диска стала поврежденной и нечитаемой.
Решение
Попробуйте восстановить виртуальную машину из резервной копии
Если у вас есть недавняя резервная копия виртуальной машины, вы можете попытаться восстановить виртуальную машину из резервной копии , чтобы устранить проблему запуска. Если восстановление виртуальной машины из резервной копии невозможно, выполните следующие действия.
- Создание виртуальной машины восстановления и доступ к ней
- Восстановление или замена поврежденного файла
- Включение последовательной консоли и сбора дампов памяти
- Перестроение виртуальной машины
Примечание.
При возникновении этой ошибки гостевая ОС не работает. Вы будете устранять неполадки в автономном режиме, чтобы устранить эту проблему.
Шаг 1. Создание виртуальной машины для восстановления и доступ к ней
- Выполните шаги 1–3 из примера процесса восстановления виртуальной машины, чтобы подготовить виртуальную машину для восстановления.
- Используйте подключение к удаленному рабочему столу, подключитесь к виртуальной машине восстановления.
Шаг 2. Восстановление или замена поврежденного файла
Восстановление поврежденного файла
Откройте запрос CMD с повышенными привилегиями и запустите chkdsk на диске:
chkdsk <<DRIVE LETTER>: /F
Замена поврежденного файла
Используйте диагностика загрузки, чтобы просмотреть снимок экрана виртуальной машины. Обратите внимание на файл, который отображается в ошибке.
Чтобы заменить поврежденный двоичный файл, выполните следующие действия.
Перейдите к расположению двоичного файла, отображаемого на снимке экрана.
Обратите внимание на версию файла. (Щелкните правой кнопкой мыши свойства и выберите вкладку Сведения .)
Переименуйте файл в <FILENAME. EXT>. СТАРЫЙ. Например, файл, показанный на изображении выше, будет переименован с \windows\system32\drivers\cng.sys на \windows\system32\drivers\cng.sys.old.
Восстановите этот файл из внутреннего репозитория.
Запустите сеанс CMD и найдите том, в который находится каталог Windows.
Перейдите в папку \windows\winsxs и найдите двоичный файл, отображаемый на снимках экрана:
dir <<binary from the screenshot with extension>> /s
Следующая команда выведет список всех различных версий указанного файла, который содержит виртуальная машина, и предоставит журнал путей для этого компонента. Следует выбрать самую последнюю версию из списка и скопировать этот файл в путь к папке, описанный на снимке экрана.
copy <<drive>>:\Windows\WinSxS\<<directory_where_file_is>>\<<binary_with_extension>> <<drive>>:\Windows\System32\Drivers\
Шаг 3. Включение последовательной консоли и сбора дампов памяти
Перед перестроением виртуальной машины рекомендуется включить сбор дампов памяти и последовательную консоль. Для этого выполните следующий скрипт:
Откройте сеанс командной строки с повышенными привилегиями (запуск от имени администратора).
Выведите список данных хранилища BCD и определите идентификатор загрузчика, который будет использоваться на следующем шаге.
Для виртуальной машины поколения 1 введите следующую команду и запишите указанный идентификатор:
bcdedit /store <BOOT PARTITON>:\boot\bcd /enum
В команде замените
<BOOT PARTITON>
буквой раздела на подключенном диске, который содержит загрузочную папку.Для виртуальной машины 2-го поколения введите следующую команду и запишите указанный идентификатор:
BCDEDIT /store <LETTER OF THE EFI SYSTEM PARTITION>:EFI\Microsoft\boot\bcd /enum
- В команде замените
<LETTER OF THE EFI SYSTEM PARTITION>
буквой системного раздела EFI. - Может быть полезно запустить консоль управления дисками, чтобы определить соответствующий системный раздел, помеченный как системный раздел EFI.
- Идентификатор может быть уникальным идентификатором GUID или начальной загрузкой по умолчанию.
- В команде замените
Чтобы включить последовательную консоль, выполните следующие команды:
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
- В команде замените
<VOLUME LETTER WHERE THE BCD FOLDER IS>
буквой папки BCD. - В команде замените
<BOOT LOADER IDENTIFIER>
идентификатором, найденным на предыдущем шаге.
- В команде замените
Убедитесь, что свободное место на диске ОС превышает размер памяти (ОЗУ) на виртуальной машине.
- Если на диске ОС недостаточно места, необходимо изменить расположение, в котором будет создан файл дампа памяти. Вместо создания файла на диске ОС можно ссылаться на любой другой диск данных, подключенный к виртуальной машине с достаточным объемом свободного места. Чтобы изменить расположение, замените %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
Шаг 4. Перестроение виртуальной машины
Выполните шаг 5 команд восстановления виртуальной машины , чтобы перестроить виртуальную машину.
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по