NTLDR requiere, como mínimo, que los dos archivos siguientes estén en el volumen del sistema :
ntldr , el propio gestor de arranque principal
NTDETECT.COM , necesario para iniciar un sistema operativo basado en NT, detecta la información básica del hardware necesaria para un inicio exitoso
Un archivo adicional importante es boot.ini , que contiene la configuración de arranque (si falta, NTLDR usará de manera predeterminada \Windows en la primera partición del primer disco duro).
NTLDR se inicia mediante el registro de inicio del volumen de la partición del sistema, que normalmente se escribe en el disco mediante el comando FORMAT o SYS de Windows .
Historia
Windows NT fue diseñado originalmente para plataformas compatibles con ARC , confiando en su soporte de administrador de arranque y proporcionando sólo osloader.exe , un programa de carga que acepta argumentos de línea de comandos ordinarios que especifican la partición del directorio de Windows, la ubicación o los parámetros de arranque, que se inicia mediante plataformas compatibles con ARC. administrador de arranque cuando un usuario elige iniciar un sistema operativo Windows NT específico. Sin embargo, debido a que el x86 carecía de soporte ARC, se agregó una capa adicional específicamente para esa plataforma: código de administrador de arranque personalizado que presenta un menú de texto que permite al usuario elegir entre uno o más sistemas operativos y sus opciones configuradas en el archivo de configuración boot.ini. , precedido por un módulo de inicio especial que es responsable de algunos preparativos, como cambiar la CPU al modo protegido. Cuando un usuario elige un sistema operativo en el menú de inicio, los siguientes argumentos de la línea de comandos se pasan a la parte de osloader.exe común a todas las arquitecturas de procesador:
load osloader = <Ruta de Windows> \System32\NTLDR systempartition = <Partición de Windows> osloadpartition = <Partición de Windows> osloadoptions = <Parámetros de arranque de Windows> consolein =multi(0)key(0)keyboard(0) consoleout =multi(0) video(0)monitor(0) x86systempartition = <partición NTLDR>
En las versiones de Windows a partir de Windows Vista y Windows Server 2008 , NTLDR se ha dividido en sus partes del administrador de arranque y del cargador del sistema: el Administrador de arranque de Windows y winload.exe . La parte del administrador de arranque ha sido completamente reescrita; ya no utiliza boot.ini como archivo de configuración, aunque la utilidad bootcfg para modificar boot.ini sigue presente para el caso de configuraciones de arranque múltiple con versiones de Windows hasta Windows XP y Windows Server 2003 .
Interfaz de línea de comandos
El programa de utilidad bootsect.exe en las herramientas de Windows PE tiene las opciones /nt52 (NTLDR) y /nt60 (Vista y superiores) para almacenar un registro de inicio NTLDR o Vista en el primer sector de una partición especificada. [1] El comando se puede utilizar para sistemas de archivos basados en FAT y NTFS . Reemplaza las herramientas FixFAT y FixNTFS. [2]
Ejemplo
El siguiente ejemplo aplica el código de inicio maestro compatible con NTLDR al volumen D:: [2]
C:\> arranque/nt52 D:
Proceso de inicio
Cuando una PC está encendida, su BIOS sigue el orden de inicio configurado para encontrar un dispositivo de inicio. Puede ser un disco duro, un disquete, un CD/DVD, una conexión de red, un dispositivo USB, etc., dependiendo del BIOS. En el caso de un disquete, el BIOS interpreta su sector de arranque (primer sector) como código; para NTLDR, este podría ser un sector de arranque NTLDR que busca el ntldrarchivo en el disquete. Para un disco duro, el código en el Registro de arranque maestro (primer sector) determina la partición activa. El código en el sector de arranque de la partición activa podría ser nuevamente un sector de arranque NTLDR que se busca ntldren el directorio raíz de esta partición activa. En un escenario más complicado, la partición activa puede contener un sector de arranque de Vista para el administrador de arranque de Vista más nuevo con una entrada {ntldr} que apunta a otra partición con un sector de arranque NTLDR. [3]
Al arrancar, la parte del cargador de NTLDR hace lo siguiente en orden:
Accede al sistema de archivos en la unidad de arranque (ya sea FAT o New Technology File System, NTFS ).
Si Windows se puso en estado de hibernación, el contenido de hiberfil.sys se carga en la memoria y el sistema continúa donde lo dejó.
De lo contrario, lee boot.ini y solicita al usuario el menú de inicio correspondiente.
Si se selecciona un sistema operativo no basado en NT, NTLDR carga el archivo asociado que figura en boot.ini ( bootsect.dos si no se especifica ningún archivo o si el usuario está iniciando en un sistema operativo basado en DOS) y le otorga el control.
Si se selecciona un sistema operativo basado en NT, NTLDR ejecuta ntdetect.com , que recopila información sobre el hardware de la computadora. (Si ntdetect.com se bloquea durante la detección de hardware, existe una versión de depuración llamada ntdetect.chk que se puede encontrar en el soporte de Microsoft. [4] )
Inicia ntoskrnl.exe y le pasa la información devuelta por ntdetect.com . [5]
arranque.ini
La primera acción de NTLDR es leer el archivo boot.ini . [6] NTLDR permite al usuario elegir desde qué sistema operativo iniciar en el menú. Para los sistemas operativos NT y basados en NT, también permite al usuario pasar opciones preconfiguradas al kernel. Las opciones del menú se almacenan en boot.ini , que a su vez se encuentra en la raíz del mismo disco que NTLDR. Aunque NTLDR puede iniciar versiones de Windows DOS y no NT, boot.ini no puede configurar sus opciones de inicio.
Para los sistemas operativos basados en NT, la ubicación del sistema operativo se escribe como una ruta de Computación RISC Avanzada (ARC).
boot.ini está protegido de la configuración del usuario al tener los siguientes atributos de archivo : sistema, oculto, de solo lectura. Para editarlo manualmente, el usuario primero tendría que eliminar estos atributos. Una forma más segura de editar el archivo es utilizar el comando bootcfg desde una consola. bootcfg también volverá a bloquear el archivo (configurando el archivo nuevamente al sistema, oculto y de solo lectura). Además, el archivo se puede editar en Windows usando un editor de texto si la opción de vista de carpeta "Mostrar archivos y carpetas ocultos" está seleccionada, la opción de vista de carpeta "Ocultar archivos protegidos del sistema operativo" no está marcada y la opción "Solo lectura" está desmarcado en las propiedades del archivo.
bootsect.dos es el sector de arranque cargado por NTLDR para cargar DOS, o si no hay ningún archivo especificado al cargar un sistema operativo no basado en NT.
Ejemplo
Un ejemplo de un archivo boot.ini :
[cargador de arranque] tiempo de espera = 40 predeterminado = multi(0)disco(0)rdisco(0)partición(1)\WINDOWS [sistemas operativos] multi(0)disco(0)rdisco(0)partición(1)\WINDOWS = "Microsoft Windows XP Profesional" /fastdetect
Si la opción de tiempo de espera del cargador de arranque en boot.ini está configurada en 0, el menú de arranque NTLDR no aparece. Se debe tener extrema precaución al modificar el cargador de arranque, ya que la información errónea puede provocar que el sistema operativo no arranque.
Conmutadores de kernel NT
Menú de opciones avanzadas del gestor de arranque NTLDR
/3GB : obliga a los sistemas basados en x86 a aumentar el espacio de direcciones virtuales asignado para los programas de usuario a 3 GB y a disminuir a 1 GB asignado al kernel y a los componentes ejecutivos. Se utiliza para algunos programas que requieren más de los 2 GB estándar asignados a los programas del usuario y los 2 GB asignados al sistema. Algunas configuraciones de Windows Server 2003 que ejecutan aplicaciones con uso intensivo de memoria virtual , como servidores de bases de datos o Microsoft Exchange Server 2003, pueden requerir este modificador [7] o pueden beneficiarse de un rendimiento mejorado. [8] Activar esta opción puede interrumpir el vídeo VMR-9. [9] Activar esta opción también puede causar problemas de audio con las tarjetas de sonido de la serie Creative SB X-Fi con (X-Fi Gamer / X-Fi Titanium @ WINXP 32-bit 3/2012). Estos problemas pueden estar relacionados con la forma en que los controladores Creatives manejan la memoria de más de 2 GB.
/BASEVIDEO : fuerza al sistema al modo VGA estándar de 640 × 480 y 16 coloresmediante el uso de un controlador de dispositivo de video que sea compatible con cualquier adaptador de video . Si el sistema operativo no se carga debido a un controlador de video defectuoso o configurado incorrectamente, este interruptor permite que el sistema se cargue, por lo que el usuario puede eliminar, actualizar o revertir el controlador de video que causa el problema. El uso de este interruptor junto con el interruptor /SOS ayuda a determinar el controlador que está provocando una falla. [7]
/BAUDRATE= nnn : establece la velocidad en baudios del puerto de depuración que se utiliza para la depuración del kernel. El uso de este modificador habilita automáticamente el modificador /DEBUG . [7] Especifica una anulación de la velocidad en baudios predeterminada (19200) a la que se conectará un host depurador de kernel remoto. [8] Ejemplo: /BAUDRATE=115200 .
/BOOTLOG : activa el registro de inicio en un archivo llamado %SystemRoot% \Ntbtlog.txt . [7]
/BOOTLOGO : muestra un mapa de bits personalizado alternativo de 640 × 480 y 16 colores. El mapa de bits debe guardarse en el directorio \Windows con el nombre boot.bmp . Úselo con el interruptor /NOGUIBOOT . [8]
/BURNMEMORY= nnn : especifica la cantidad de memoria, en megabytes, que Windows no puede usar. Utilice este parámetro para confirmar un problema de rendimiento u otros problemas relacionados con el agotamiento de la RAM . [7]
/CHANNEL= nn : úselo con el modificador /DEBUG y el modificador /DEBUGPORT=1394 para seleccionar el canal de interfaz IEEE 1394 (numerado del 0 al 62) a través del cual fluirán las comunicaciones de depuración del kernel. [7]
/CRASHDEBUG : carga el depurador del kernel al iniciar el sistema operativo, pero permanece inactivo hasta que se produce un error de detención . Con este conmutador, el puerto COM se puede utilizar para operaciones normales mientras se ejecuta Windows. Si Windows falla, el conmutador convierte el puerto en un puerto de depuración. (Esta acción activa la depuración remota). [7]
/DEBUG : activa el depurador del kernel cuando se inicia Windows. A diferencia del modificador /CRASHDEBUG , /DEBUG usa el puerto COM ya sea que use la depuración o no. [7]
/DEBUGPORT=com x : especifica el puerto COM que se utilizará para el puerto de depuración. De forma predeterminada, /DEBUGPORT usa COM2 si existe. De lo contrario, el valor predeterminado es COM1. El uso de este modificador habilita automáticamente el modificador /DEBUG . [7]
/FASTDETECT[:com x [,com y ]] : desactiva la detección del mouse de bus y serie para los puertos especificados, o para todos los puertos si no se especifica ninguno. Utilice este interruptor cuando haya un componente que no sea un mouse conectado a un puerto serie durante el proceso de inicio. Los puertos se pueden separar con comas para desactivar más de un puerto. (Nota: en versiones anteriores de Windows, incluido Windows NT 4.0 , este modificador se denominaba /NOSERIALMICE ). [7]
/HAL= nombre de archivo : define la capa de abstracción de hardware que se carga al inicio. Este modificador es útil para probar un HAL diferente antes de cambiar el nombre del archivo a HAL.DLL . Este interruptor también es útil cuando desea intentar cambiar entre iniciar en modo multiprocesador e iniciar en modo de procesador único. Para hacer esto, use este interruptor con el interruptor /KERNEL . El nombre del archivo debe estar en el directorio System32. Puede ser un archivo simple, un enlace físico, pero no un enlace simbólico o un punto de unión. [7]
/KERNEL= nombre de archivo : define el kernel que se carga al inicio. Con este cambio, el usuario puede cambiar entre un kernel habilitado para depuración que está lleno de código de depuración y un kernel normal. Las mismas limitaciones para la ubicación y el tipo de nombre de archivo que para el modificador /HAL. [7]
/MAXMEM= nnn : especifica la cantidad máxima de RAM , en megabytes, que Windows puede usar. [7] Sin embargo, el modificador /MAXMEM no tiene en cuenta los agujeros de memoria. Por lo tanto, se recomienda utilizar el modificador /BURNMEMORY . [10]
/NODEBUG : desactiva la depuración. Este escenario puede provocar un error de detención si un programa tiene un punto de interrupción codificado de depuración en su software. [7]
/NOEXECUTE={OPTIN|OPTOUT|ALWAYSON|ALWAYSOFF } : esta opción solo está disponible en versiones de 32 bits de Windows cuando se ejecuta en procesadores que admiten Prevención de ejecución de datos (DEP). Habilita DEP, lo que hace que el administrador de memoria marque las páginas que contienen datos como no ejecutables para que no puedan ejecutarse como código. Esto puede resultar útil para evitar que código malicioso aproveche errores de desbordamiento del búfer con entradas inesperadas del programa para ejecutar código arbitrario. La protección sin ejecución siempre está habilitada en las versiones de 64 bits de Windows en procesadores que admiten la protección sin ejecución. Hay varias opciones que el usuario puede especificar con este interruptor: [8]
/NOEXECUTE=OPTIN : habilita DEP para las imágenes del sistema central y las especificadas en el cuadro de diálogo de configuración de DEP.
/NOEXECUTE=OPTOUT : habilita DEP para todas las imágenes excepto las especificadas en el cuadro de diálogo de configuración de DEP.
/NOEXECUTE=ALWAYSON : habilita DEP en todas las imágenes.
/NOEXECUTE=ALWAYSOFF – Desactiva DEP.
/NOGUIBOOT : muestra los nombres de los controladores de dispositivos mientras se cargan. Úselo con el interruptor /BASEVIDEO para determinar el controlador que está provocando una falla. [7]
/NOPAE : obliga a Ntldr a cargar la versión sin extensión de dirección física (PAE) del kernel de Windows, incluso si se detecta que el sistema admite PAE x86 y tiene más de 4 GB de memoria física. [8]
/NOSERIALMICE[=com x ] – (Obsoleto en todas las versiones posteriores a Windows NT 4.0 ) Reemplazado por la ausencia del modificador /FASTDETECT . Deshabilita la detección de mouse serie en los puertos COM especificados. El uso de /NOSERIALMICE sin especificar un puerto COM deshabilita la detección del mouse serie en todos los puertos COM. [8]
/NUMPROC= nnn : establece la cantidad de procesadores que Windows ejecutará al inicio. Con este modificador, el usuario puede forzar a un sistema multiprocesador a utilizar sólo la cantidad de procesadores (número) que usted especifique. Útil para solucionar problemas de rendimiento y CPU defectuosas. [7]
/ONECPU : equivalente a usar /NUMPROC=1 . Hace que Windows utilice sólo una CPU en un sistema multiprocesador. [8]
/SAFEBOOT:{MINIMAL|NETWORK|DSREPAIR}[(ALTERNATESHELL)] – Inicia Windows en modo seguro . Debe incluir los dos puntos más uno de los tres tipos enumerados anteriormente. Una opción adicional que el usuario puede agregar es (ALTERNATESHELL) , que le indica a Windows que use el programa especificado por el valor HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\AlternateShell como shell gráfico en lugar de usar el valor predeterminado, que es el Explorador de Windows. [8] El usuario también puede combinar otros parámetros de boot.ini con /SAFEBOOT: escriba . Los siguientes ejemplos ilustran los parámetros que están vigentes cuando selecciona una opción de Modo seguro en el menú de recuperación de inicio. (Nota: Los modificadores /SOS , /BOOTLOG y /NOGUIBOOT no son necesarios con ninguna de estas configuraciones, pero pueden ayudar con la resolución de problemas.) [7]
Modo seguro ( /SAFEBOOT:MINIMAL /SOS /BOOTLOG /NOGUIBOOT ): predeterminado: utiliza un conjunto mínimo de controladores de dispositivos y servicios para iniciar Windows. [11]
Modo seguro con funciones de red ( /SAFEBOOT:NETWORK /SOS /BOOTLOG /NOGUIBOOT ): modo predeterminado junto con los controladores necesarios para cargar la red. [11]
Modo seguro con símbolo del sistema ( /SAFEBOOT:MINIMAL(ALTERNATESHELL) /SOS /BOOTLOG /NOGUIBOOT ): modo predeterminado, excepto que se inicia Cmd.exe en lugar del Explorador de Windows . [11]
Windows en modo de restauración de servicios de directorio ( /SAFEBOOT:DSREPAIR /SOS ): (este modo es válido solo para controladores de dominio basados en Windows). Realiza una reparación del servicio de directorio. [11]
/SOS : desactiva la pantalla de inicio gráfica y utiliza el inicio de texto estilo NT4, enumerando el número de compilación de Windows, el número de versión, etc. En Windows 2000 y XP, el texto se representa dentro del mapa de bits CHKDSK (y con una barra de progreso en 2000). ).
/USEPMTIMER : especifica que Windows utiliza la configuración del temporizador del temporizador de administración de energía (PM_TIMER) en lugar de la configuración del temporizador del contador de marca de tiempo (TSC) si el procesador admite la configuración de PM_TIMER. [7] De forma predeterminada, Windows Server 2003 Service Pack 2 (SP2) utiliza el temporizador PM para todos los APIC o ACPI HAL multiprocesador . Si no está ejecutando Windows Server 2003 SP2, debe forzar al equipo a utilizar el temporizador PM mediante el modificador /USEPMTIMER . [12]
/USERVA= nnn : personaliza la cantidad de memoria, en megabytes, que se asigna a los procesos cuando se utiliza el modificador /3GB . Este cambio permite más memoria del kernel de entrada de tablas de páginas pero aún mantiene casi 3 GB de espacio de memoria de proceso. [11]
/WIN95 : indica a Ntldr que inicie el sector de arranque de Windows almacenado en bootsect.w40 . [8]
/WIN95DOS : indica a Ntldr que inicie el sector de inicio de MS-DOS almacenado en bootsect.dos . [8]
/AÑO= yyyy : indica a la función de tiempo central de Windows que ignore el año que informa el reloj en tiempo real de la computadora y, en su lugar, use el indicado. Ejemplo: /AÑO=2001 . (Este cambio fue creado para ayudar en las pruebas del año 2000 ). [8]
^ "Opciones de línea de comandos de Bootsect". Windows Vista: referencia técnica . Microsoft Technet. 2009 . Consultado el 3 de julio de 2011 .
^ ab "Comando de arranque de línea de comandos de MS-DOS y Windows".
^ "Preguntas frecuentes sobre el editor de datos de configuración de arranque". Servidor de windows . Microsoft aprende . 2007 . Consultado el 4 de enero de 2024 .
^ "Ntdetect.com (Installd.cmd)". Microsoft . Archivado desde el original el 6 de febrero de 2006.
^ Microsoft (2000). Kit de recursos de Windows 2000 Professional (1ª ed.). Redmond, WA: Microsoft Press. ISBN1-57231-808-2.
^ Rick Maybury (2009). "Problemas de inicio y apagado, parte 1". Campo de entrenamiento . Archivado desde el original el 11 de julio de 2012 . Consultado el 25 de abril de 2012 .{{cite web}}: Mantenimiento CS1: URL no apta ( enlace )
^ abcdefghijklmnopqrstu Microsoft (28 de noviembre de 2007). "Opciones de cambio disponibles para los archivos Boot.ini de Windows XP y Windows Server 2003" . Consultado el 4 de enero de 2024 .
^ abcdefghijkl Russinovich, Mark (1 de noviembre de 2006). "Referencia de opciones de arranque INI". Microsoft aprende . Microsoft . Consultado el 4 de enero de 2023 .
^ "Pérdida de DirectDraw Overlay y VMR9 después de la actualización". Foro de vídeoayuda . Julio de 2008.
^ "/burnmemory (controladores de Windows". Referencia de parámetros de arranque Boot.ini . Microsoft. Archivado desde el original el 10 de enero de 2013.
^ abcde "Una descripción de las opciones de arranque en modo seguro en Windows XP". Soporte de Microsoft . Archivado desde el original el 19 de febrero de 2015.
^ "Los programas que utilizan la función QueryPerformanceCounter pueden funcionar mal". Soporte de Microsoft . 23 de febrero de 2023.
enlaces externos
Cómo editar el archivo Boot.ini en Windows XP
Convenciones y uso de nombres de rutas de BOOT.INI y ARC
Ayuda de MS Knowledge Base sobre el mensaje de error "Falta NTLDR" en Windows 2000 y Windows XP (también [1], [2], [3] Archivado el 16 de julio de 2007 en Wayback Machine , [4])