Solucionar el error de detección de Windows: error de inicialización del servicio de directorio

En este artículo se proporcionan pasos para resolver problemas en los que una máquina virtual (VM) de controlador de dominio (VM) de Active Directory en Azure está bloqueada en un bucle y se indica que debe reiniciarse.

Síntoma

Cuando usas diagnósticos de arranque para ver la captura de pantalla de la máquina virtual, la captura de pantalla muestra que la máquina virtual debe reiniciarse debido a un error, mostrando el código de detenerse 0xC00002E1 en Windows Server 2008 R2 o 0xC00002E2 en Windows Server 2012 o posterior.

Windows Server 2012 startup screen states "Your PC ran into a problem and needs to restart. Solo estamos recopilando información de error y, a continuación, reiniciaremos por ti".

Causa

El código de 0xC00002E2 representa STATUS_DS_INIT_FAILURE y el código de error 0xC00002E1 representa STATUS_DS_CANT_START. Ambos errores se producen cuando hay un problema con el servicio de directorio.

A medida que se inicia el sistema operativo, el servidor de autenticación de seguridad local (LSASS.exe), que autentica los inicios de sesión de usuario, lo obliga a reiniciarlo automáticamente. La autenticación no puede producirse cuando el sistema operativo de la máquina virtual es un controlador de dominio que no tiene acceso de lectura y escritura a su base de datos local de Active Directory. Debido a la falta de acceso a Active Directory (AD), LSASS.exe no se puede autenticar y se ve obligado a reiniciar el sistema operativo.

Este error puede deberse a cualquiera de las siguientes condiciones:

  • No hay acceso al disco que tiene la base de datos local de AD (NTDS). DIT).
  • Disco que tiene la base de datos de AD local (NTDS. DIT) se ha quedo sin espacio libre.
  • La base de datos de AD local (NTDS. Falta el archivo DIT).
  • La máquina virtual tiene varios discos y la directiva de red de área de almacenamiento (SAN) no está configurada correctamente. La directiva de SAN no está establecida en ONLINEALL y los discos que no son del sistema operativo se adjuntan en modo sin conexión en el administrador de discos.
  • La base de datos de AD local (NTDS. DIT) está dañado.

Solución

Introducción al proceso:

  1. Crear y obtener acceso a una máquina virtual de reparación.
  2. Espacio libre en disco.
  3. Comprueba que la unidad que contiene la base de datos de AD está adjunta.
  4. Habilitar el modo de restauración de servicios de directorio.
  5. Recomendado: antes de volver a generar la máquina virtual, habilite la recopilación de volcado de memoria y la consola serie.
  6. Recompile la máquina virtual.
  7. Vuelva a configurar la directiva de SAN.

Nota

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

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

  1. Siga los pasos del 1 al 3 de los comandos de reparación de vm para preparar una máquina virtual de reparación.
  2. Con conexión a Escritorio remoto, conéctese a la máquina virtual de reparación.

Liberar espacio en el disco

Como el disco ahora está conectado a una máquina virtual de reparación, compruebe que el disco que contiene la base de datos interna de Active Directory tiene suficiente espacio para realizar correctamente.

  1. Comprueba si el disco está lleno haciendo clic con el botón secundario en la unidad y seleccionando Propiedades.

  2. Si el disco tiene menos de 300 MB de espacio libre, expándalo a un máximo de 1 Tb con PowerShell.

  3. Si el disco ha alcanzado 1 tb de espacio usado, realiza una limpieza de disco.

    1. Usa PowerShell para separar el disco de datos de la máquina virtual rota.
    2. Una vez desasociada de la máquina virtual rota, adjunte el disco de datos a una máquina virtual en funcionamiento.
    3. Usa la herramienta Liberador de espacio en disco para liberar espacio adicional.
  4. Opcional: si se necesita más espacio, abra una instancia de CMD y escriba el comando para realizar una defrag <LETTER ASSIGNED TO THE OS DISK>: /u /x /g desfragmentación en la unidad:

  • En el comando, reemplaza por la letra del <LETTER ASSIGNED TO THE OS DISK> disco del sistema operativo. Por ejemplo, si la letra de disco es F: , el comando sería defrag F: /u /x /g .

  • Según el nivel de fragmentación, la desfragmentación podría tardar horas.

Si hay suficiente espacio en el disco, continúe con la siguiente tarea.

Comprobar que la unidad que contiene la base de datos de Active Directory está adjunta

  1. Abra una instancia de CMD con privilegios elevados y ejecute los siguientes comandos:

    1. Cargar el archivo del Registro:

      REG LOAD HKLM\BROKENSYSTEM f:\windows\system32\config\SYSTEM

      La f: designación supone que el disco es la F: unidad. Usa la letra de unidad que pertenece a la unidad que contiene el disco del sistema operativo.

    2. Determine la letra de unidad y la carpeta de NTDS. DIT:

      REG QUERY "HKLM\BROKENSYSTEM\ControlSet001\Services\NTDS\parameters" /v "DSA Working Directory"
      REG QUERY "HKLM\BROKENSYSTEM\ControlSet001\Services\NTDS\parameters" /v "DSA Database file"
      REG QUERY "HKLM\BROKENSYSTEM\ControlSet001\Services\NTDS\parameters" /v "Database backup path"
      REG QUERY "HKLM\BROKENSYSTEM\ControlSet001\Services\NTDS\parameters" /v "Database log files path"
      
    3. Descargue el archivo del Registro:

      REG UNLOAD HKLM\BROKENSYSTEM

  2. Con Azure Portal, compruebe que la unidad donde NTDS. DIT está configurado, se agrega a la máquina virtual.

  3. Con la consola de administración de discos del sistema operativo invitado, compruebe que el disco contiene NTDS. DIT está en línea.

    1. La herramienta Administración de discos se puede encontrar en Herramientas administrativas > Administración de equipos > Almacenamiento, o se puede tener acceso a la herramienta mediante el comando en diskmgmt.msc una instancia de CMD.
  4. Si el disco no está conectado a la máquina virtual, vuelva a adjuntar el disco de datos para solucionar el problema.

    Si el disco se ha conectado normalmente, continúa con la siguiente tarea.

Habilitar el modo de restauración de servicios de directorio

Configura la máquina virtual para que arranque en el modo de restauración de servicios de directorio (DSRM) para omitir la comprobación de la existencia de NTDS. Archivo DIT durante el arranque.

  1. Antes de continuar, comprueba que has completado las tareas anteriores para adjuntar el disco a una máquina virtual de reparación y has determinado qué disco ntds. El archivo DIT se encuentra en.

  2. Con una instancia de CMD con privilegios elevados, enumera la información de partición de arranque en ese almacén para encontrar el identificador de la partición activa:

    bcdedit /store <Drive Letter>:\boot\bcd /enum

    Reemplace < Drive Letter > por la letra determinada en los pasos anteriores.

    La captura de pantalla muestra una instancia de CMD con privilegios elevados después de escribir el comando "bcdedit /store :\boot\bcd /enum", que muestra el Administrador de arranque de Windows con el identificador.

  3. Habilita la safeboot DsRepair marca en la partición de arranque:

    bcdedit /store <Drive Letter>:\boot\bcd /set {<Identifier>} safeboot dsrepair

    Reemplace < Drive Letter > y con los valores < Identifier > determinados en los pasos anteriores.

  4. Vuelve a consultar las opciones de arranque para asegurarte de que el cambio se estableció correctamente.

    La captura de pantalla muestra una instancia de CMD con privilegios elevados después de habilitar la marca DsRepair de arranque seguro.

Para habilitar la recopilación de volcado de memoria y la consola en serie, ejecute el siguiente script abriendo una sesión de símbolo del sistema con privilegios elevados (Ejecutar como administrador) y ejecute los siguientes comandos.

  1. Habilita 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
  1. Comprueba que el espacio libre en el disco del sistema operativo sea al menos igual al tamaño de memoria (RAM) de la máquina virtual.

  2. Si no hay suficiente espacio en el disco del sistema operativo, cambia la ubicación donde se creará el archivo de volcado de memoria y remítalo a cualquier disco de datos conectado a la máquina virtual que tenga suficiente espacio libre.

    Para cambiar la ubicación, reemplace con la letra de unidad (por ejemplo, ) del disco %SystemRoot% de datos en los siguientes F: comandos.

Se recomienda la siguiente configuración para habilitar el volcado de sistema operativo:

Cargar 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

Recompilar la máquina virtual

  1. Usa el paso 5 de los comandos de reparación de vm para volver a ensamblar la máquina virtual.

Reconfigurar la directiva de red de área de almacenamiento

  1. Al arrancar en modo DSRM, el único usuario disponible para iniciar sesión es el administrador de recuperación, que se usaba cuando la máquina virtual se promocionaba a un controlador de dominio. Todos los demás usuarios mostrarán un error de autenticación.

    1. Si no hay ningún otro DC disponible, debe iniciar sesión localmente con o con la contraseña .\administrator machinename\administrator de DSRM.
  2. Configure la directiva de SAN para que todos los discos estén en línea.

    1. Abra una instancia de CMD con privilegios elevados y escriba DISKPART .

    2. Consulta la lista de los discos.

      DISKPART> list disk

    3. Escriba los siguientes comandos para seleccionar el disco que debe entrando en línea y cambiar la directiva de SAN:

      DISKPART> select disk 1
      Disk 1 is now the selected disk.
      
      DISKPART> attributes disk clear readonly
      Disk attributes cleared successfully.
      
      DISKPART> attributes disk
      Current Read-only State : No
      Read-only : No
      Boot Disk : No
      Pagefile Disk : No
      Hibernation File Disk : No
      Crashdump Disk : No
      Clustered Disk : No
      
      DISKPART> online disk
      DiskPart successfully onlined the selected disk.
      
      DISKPART> san
      SAN Policy : Online All
      
  3. Una vez corregido el problema, asegúrese de que se DsRepair safeboot quita la marca:

    bcdedit /deletevalue {default} safeboot dsrepair

  4. Reinicie la máquina virtual.

    Nota

    Si la máquina virtual se acaba de migrar desde local y desea migrar más controladores de dominio de local a Azure, debe considerar seguir los pasos del artículo siguiente para evitar que este problema ocurra en futuras migraciones:

    Cómo cargar controladores de dominio de Hyper-V locales existentes en Azure con Azure PowerShell