Stop-ошибка Windows 0xC0000102 файл состояния поврежден

В этой статье описаны действия по устранению проблем, из-за которых операционная система Windows (ОС) сталкивается с stop-ошибкой 0xC0000102, которая препятствует загрузке виртуальной машины Azure.

Симптомы

При использовании диагностика загрузки для просмотра снимка экрана виртуальной машины на снимке экрана отображается сообщение о том, что ос обнаружила код ошибки 0xC0000102 во время запуска.

Снимок экрана: подробные сведения об ошибке 0xC0000102.

Ошибка 0xC0000102 на экране CMD.

Причина

Ошибка 0xC0000102 — это STATUS_FILE_CORRUPT_ERROR, что означает, что поврежденный файл препятствует правильному запуску виртуальной машины. Существует две возможные причины этого кода ошибки:

  • Файл, отображаемый в сообщении об ошибке, поврежден.
  • Структура диска стала поврежденной и нечитаемой.

Решение

Попробуйте восстановить виртуальную машину из резервной копии

Если у вас есть недавняя резервная копия виртуальной машины, вы можете попытаться восстановить виртуальную машину из резервной копии , чтобы устранить проблему запуска. Если восстановление виртуальной машины из резервной копии невозможно, выполните следующие действия.

  1. Создание виртуальной машины восстановления и доступ к ней
  2. Восстановление или замена поврежденного файла
  3. Включение последовательной консоли и сбора дампов памяти
  4. Перестроение виртуальной машины

Примечание.

При возникновении этой ошибки гостевая ОС не работает. Вы будете устранять неполадки в автономном режиме, чтобы устранить эту проблему.

Шаг 1. Создание виртуальной машины для восстановления и доступ к ней

  1. Выполните шаги 1–3 из примера процесса восстановления виртуальной машины, чтобы подготовить виртуальную машину для восстановления.
  2. Используйте подключение к удаленному рабочему столу, подключитесь к виртуальной машине восстановления.

Шаг 2. Восстановление или замена поврежденного файла

  • Восстановление поврежденного файла

    Откройте запрос CMD с повышенными привилегиями и запустите chkdsk на диске:

    chkdsk <<DRIVE LETTER>: /F
    
  • Замена поврежденного файла

  1. Используйте диагностика загрузки, чтобы просмотреть снимок экрана виртуальной машины. Обратите внимание на файл, который отображается в ошибке.

  2. Чтобы заменить поврежденный двоичный файл, выполните следующие действия.

    1. Перейдите к расположению двоичного файла, отображаемого на снимке экрана.

    2. Обратите внимание на версию файла. (Щелкните правой кнопкой мыши свойства и выберите вкладку Сведения .)

      Снимок экрана: информация на вкладке Сведения. Выделена версия файла.

    3. Переименуйте файл в <FILENAME. EXT>. СТАРЫЙ. Например, файл, показанный на изображении выше, будет переименован с \windows\system32\drivers\cng.sys на \windows\system32\drivers\cng.sys.old.

  3. Восстановите этот файл из внутреннего репозитория.

    1. Запустите сеанс CMD и найдите том, в который находится каталог Windows.

    2. Перейдите в папку \windows\winsxs и найдите двоичный файл, отображаемый на снимках экрана:

      dir <<binary from the screenshot with extension>> /s
      
    3. Следующая команда выведет список всех различных версий указанного файла, который содержит виртуальная машина, и предоставит журнал путей для этого компонента. Следует выбрать самую последнюю версию из списка и скопировать этот файл в путь к папке, описанный на снимке экрана.

      copy
      
      <<drive>>:\Windows\WinSxS\<<directory_where_file_is>>\<<binary_with_extension>> <<drive>>:\Windows\System32\Drivers\ 
      

Шаг 3. Включение последовательной консоли и сбора дампов памяти

Перед перестроением виртуальной машины рекомендуется включить сбор дампов памяти и последовательную консоль. Для этого выполните следующий скрипт:

  1. Откройте сеанс командной строки с повышенными привилегиями (запуск от имени администратора).

  2. Выведите список данных хранилища BCD и определите идентификатор загрузчика, который будет использоваться на следующем шаге.

    1. Для виртуальной машины поколения 1 введите следующую команду и запишите указанный идентификатор:

      bcdedit /store <BOOT PARTITON>:\boot\bcd /enum
      

      В команде замените <BOOT PARTITON> буквой раздела на подключенном диске, который содержит загрузочную папку.

      Снимок экрана: выходные данные перечисления хранилища BCD на виртуальной машине поколения 1, в котором указан номер идентификатора в разделе Загрузчик Windows .

    2. Для виртуальной машины 2-го поколения введите следующую команду и запишите указанный идентификатор:

      BCDEDIT /store <LETTER OF THE EFI SYSTEM PARTITION>:EFI\Microsoft\boot\bcd /enum 
      
      • В команде замените <LETTER OF THE EFI SYSTEM PARTITION> буквой системного раздела EFI.
      • Может быть полезно запустить консоль управления дисками, чтобы определить соответствующий системный раздел, помеченный как системный раздел EFI.
      • Идентификатор может быть уникальным идентификатором GUID или начальной загрузкой по умолчанию.
  3. Чтобы включить последовательную консоль, выполните следующие команды:

    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> идентификатором, найденным на предыдущем шаге.
  4. Убедитесь, что свободное место на диске ОС превышает размер памяти (ОЗУ) на виртуальной машине.

    1. Если на диске ОС недостаточно места, необходимо изменить расположение, в котором будет создан файл дампа памяти. Вместо создания файла на диске ОС можно ссылаться на любой другой диск данных, подключенный к виртуальной машине с достаточным объемом свободного места. Чтобы изменить расположение, замените %SystemRoot% буквой диска (например , F:) диска данных в приведенных ниже командах.
    2. Введите приведенные ниже команды (рекомендуемая конфигурация дампа):

    Загрузите 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.