Error de detenerse de Windows 0xC0000102 Status File Corrupt

En este artículo se proporcionan pasos para resolver problemas en los que el sistema operativo Windows (SO) encuentra el error de detenerse 0xC0000102, que impide que una máquina virtual (VM) de Azure arranque.

Síntomas

Cuando usa diagnósticos de arranque para ver la captura de pantalla de la máquina virtual, la captura de pantalla muestra el mensaje de que el sistema operativo encontró el código de error 0xC0000102 durante el inicio.

Error 0xC0000102.

Error 0xC0000102 en una pantalla CMD.

Causa

El error 0xC0000102 es un STATUS_FILE_CORRUPT_ERROR, lo que significa que un archivo dañado impide que la máquina virtual se inicie correctamente. Hay dos causas posibles para este código de error:

  • El archivo que se muestra en el mensaje de error está dañado.
  • La estructura del disco se ha dañado e ilegible.

Solución

Sugerencia

Si tienes una copia de seguridad reciente de la máquina virtual, puedes intentar restaurar la máquina virtual desde la copia de seguridad para solucionar el problema de arranque.

Para resolver este problema, siga estos pasos:

  1. Crear y obtener acceso a una máquina virtual de reparación
  2. Reparar o reemplazar el archivo dañado
  3. Habilitar la recopilación de volcado de memoria y la consola serie
  4. Recompilar la máquina virtual

Nota

Al encontrar este error, el sistema operativo invitado no está operativo. Tendrás que solucionar problemas en modo sin conexión para resolver este problema.

Paso 1: Crear y obtener acceso a una máquina virtual de reparación

  1. Siga los pasos del 1 al 3 de la introducción al proceso de reparación de vm para preparar una máquina virtual de reparación.
  2. Use conexión a Escritorio remoto para conectarse a la máquina virtual de reparación.

Paso 2: Reparar o reemplazar el archivo dañado

  • Reparar el archivo dañado

    Abre un símbolo del sistema cmd con privilegios elevados y ejecuta chkdsk en el disco:

    chkdsk <<DRIVE LETTER>: /F
    
  • Reemplazar el archivo dañado

    1. Usa diagnósticos de arranque para ver la captura de pantalla de la máquina virtual. Observe el archivo que se muestra en el error.

    2. Para reemplazar el binario dañado, siga estos pasos:

      1. Vaya a la ubicación del binario que se ha mostrado en la captura de pantalla.

      2. Tenga en cuenta la versión del archivo. (Haga clic con el botón secundario en Propiedades y seleccione la pestaña Detalles).

        Haga clic con el botón secundario en Propiedades y, a continuación, en la pestaña Detalles.

      3. Cambie el nombre del archivo como <FILENAME. EXT>. ANTIGUO. Por ejemplo, el archivo que se muestra en la imagen anterior cambiaría de \windows\system32\drivers\cng.sys _ __ a\windows\system32\drivers\cng.sys.old_*_.

    3. Restaure este archivo desde el repositorio interno.

      1. Inicia una sesión de CMD y busca el volumen que contiene el directorio de Windows.

      2. Vaya a _ \windows\winsxs* y busque el binario que se muestra en la captura de pantalla:

        dir <<binary from the screenshot with extension>> /s
        

        d. El siguiente comando enumerará todas las diferentes versiones del archivo especificado que contiene la máquina virtual y le dará el historial de rutas de acceso de ese componente. Debe elegir la versión más reciente de la misma versión de la lista y continuar con la copia de ese archivo en la ruta de acceso de carpeta descrita en la captura de pantalla.

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

Paso 3: Habilitar la consola serie y la colección de volcado de memoria

Antes de recompilar la máquina virtual, se recomienda habilitar la recopilación de volcados de memoria y la consola serie. Para ello, ejecute el siguiente script:

  1. Abra una sesión de símbolo del sistema con privilegios elevados (ejecutar como administrador).

  2. Enumera los datos del almacén BCD y determina el identificador del cargador de arranque, que usarás en el siguiente paso.

    1. Para una máquina virtual de generación 1, escriba el siguiente comando y anote el identificador enumerado:

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

      En el comando, reemplaza por la letra de la partición en <BOOT PARTITON> el disco adjunto que contiene la carpeta de arranque.

      La captura de pantalla muestra el resultado de enumerar el almacén BCD en una máquina virtual de generación 1, que enumera en Cargador de arranque de Windows el número de identificador.

    2. Para una máquina virtual de generación 2, escriba el siguiente comando y anote el identificador que aparece:

      BCDEDIT /store <LETTER OF THE EFI SYSTEM PARTITION>:EFI\Microsoft\boot\bcd /enum 
      
      • En el comando, reemplace <LETTER OF THE EFI SYSTEM PARTITION> por la letra de la partición del sistema EFI.
      • Puede resultar útil iniciar la consola de administración de discos para identificar la partición del sistema adecuada etiquetada como partición del sistema EFI.
      • El identificador puede ser un GUID único o puede ser el valor predeterminado de bootmgr.
  3. Ejecute los siguientes comandos para habilitar la Consola serie:

    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 
    
    
    • En el comando, reemplace <VOLUME LETTER WHERE THE BCD FOLDER IS> por la letra de la carpeta BCD.
    • En el comando, reemplace <BOOT LOADER IDENTIFIER> por el identificador que encontró en el paso anterior.
  4. Comprueba que el espacio libre en el disco del sistema operativo es mayor que el tamaño de memoria (RAM) de la máquina virtual.

    1. Si no hay suficiente espacio en el disco del sistema operativo, debes cambiar la ubicación donde se creará el archivo de volcado de memoria. En lugar de crear el archivo en el disco del sistema operativo, puedes hacer referencia a cualquier otro disco de datos conectado a la máquina virtual que tenga suficiente espacio libre. Para cambiar la ubicación, reemplace %SystemRoot% por la letra de unidad (por ejemplo, F:) del disco de datos en los comandos que se enumeran a continuación.
    2. Escriba los comandos siguientes (configuración de volcado sugerida):

    Cargar el subárbol del Registro desde el disco del sistema operativo roto:

    REG LOAD HKLM\BROKENSYSTEM <VOLUME LETTER OF BROKEN OS DISK>:\windows\system32\config\SYSTEM
    

    Habilitar en 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 
    

    Habilitar en 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 
    

    Descargar disco del sistema operativo roto:

    REG UNLOAD HKLM\BROKENSYSTEM
    

Paso 4: Recompilar la máquina virtual

Usa el paso 5 de los comandos de reparación de vm para recompilar la máquina virtual.