NTLDR requiere que, como mínimo, los dos archivos siguientes estén en el volumen del sistema :
ntldr , el cargador de arranque principal en sí
NTDETECT.COM , necesario para iniciar un sistema operativo basado en NT, detecta información básica del hardware necesaria para un arranque exitoso
Un archivo importante adicional es boot.ini , que contiene la configuración de arranque (si falta, NTLDR tomará como valor predeterminado \Windows en la primera partición del primer disco duro).
NTLDR se inicia mediante el registro de arranque 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 , basándose en el soporte de su gestor de arranque y proporcionando únicamente 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 es lanzado por el gestor de arranque compatible con ARC cuando un usuario elige iniciar un sistema operativo Windows NT específico. Sin embargo, debido a que el x86 carecía de todo el soporte de ARC, se agregó la capa adicional específicamente para esa plataforma: código de gestor 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 especial StartUp que es responsable de algunas preparaciones como cambiar la CPU al modo protegido. Cuando un usuario elige un sistema operativo desde el menú de arranque, los siguientes argumentos de 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 de gestor de arranque y cargador de sistema: Windows Boot Manager y winload.exe . La parte del gestor de arranque se ha reescrito por completo; ya no utiliza boot.ini como archivo de configuración, aunque la utilidad bootcfg para modificar boot.ini sigue estando presente en 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 de las herramientas de Windows PE tiene las opciones /nt52 (NTLDR) y /nt60 (Vista y versiones posteriores) para almacenar un registro de arranque 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 arranque maestro compatible con NTLDR al volumen D: [2]
C:\> bootsect/nt52 D:
Proceso de puesta en marcha
Cuando se enciende un PC, su BIOS sigue el orden de arranque configurado para encontrar un dispositivo de arranque. Puede ser un disco duro, un disquete, un CD/DVD, una conexión de red, un dispositivo USB, etc., según la BIOS. En el caso de un disquete, la BIOS interpreta su sector de arranque (primer sector) como código; en el caso de NTLDR, podría tratarse de un sector de arranque NTLDR que busca el ntldrarchivo en el disquete. En el caso de un disco duro, el código del Registro de arranque maestro (primer sector) determina la partición activa. El código del sector de arranque de la partición activa podría ser, a su vez, un sector de arranque NTLDR que busca ntldrel directorio raíz de esta partición activa. En un escenario más complejo, la partición activa puede contener un sector de arranque de Vista para el nuevo gestor de arranque de Vista 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 pone en estado de hibernación, el contenido de hiberfil.sys se carga en la memoria y el sistema se reanuda donde lo dejó.
De lo contrario, lee boot.ini y le solicita al usuario el menú de arranque correspondiente.
Si se selecciona un sistema operativo que no está basado en NT, NTLDR carga el archivo asociado que aparece en boot.ini ( bootsect.dos si no se especifica ningún archivo o si el usuario está iniciando 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 técnico 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 el menú desde qué sistema operativo arrancar. Para los sistemas operativos NT y basados en NT, también permite al usuario pasar opciones preconfiguradas al núcleo. 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 arrancar versiones de Windows DOS y no NT, boot.ini no puede configurar sus opciones de arranque.
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, solo lectura. Para editarlo manualmente, el usuario primero tendría que eliminar estos atributos. Una forma más segura de editar el archivo es usar el comando bootcfg desde una consola. bootcfg también volverá a bloquear el archivo (estableciendo el archivo nuevamente en sistema, oculto y solo lectura). Además, el archivo se puede editar dentro de 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" está desmarcada y la opción "Solo lectura" está desmarcada 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)disk(0)rdisk(0)partition(1)\WINDOWS [sistemas operativos] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS = "Microsoft Windows XP Professional" /fastdetect
Si la opción de tiempo de espera del cargador de arranque en boot.ini está establecida en 0, el menú de arranque NTLDR no aparece. Se debe tener mucho cuidado al modificar el cargador de arranque, ya que la información errónea puede provocar que el sistema operativo no arranque.
Conmutadores de kernel de NT
/3GB – Fuerza 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 el asignado al núcleo y a los componentes ejecutivos. Se utiliza para algunos programas que requieren más de los 2 GB estándar asignados a los programas de usuario y los 2 GB asignados al sistema. Algunas configuraciones de Windows Server 2003 que ejecutan aplicaciones que hacen un uso intensivo de la 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] La activación de esta opción puede interrumpir el vídeo VMR-9. [9] La activación de 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 de Creative manejan la memoria de más de 2 GB.
/BASEVIDEO – Fuerza al sistema a usar el modo VGA estándar de 16 colores y 640 × 480 mediante un controlador de dispositivo de video 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, de modo que el usuario pueda 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 núcleo. 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 de depuración del núcleo remoto. [8] Ejemplo: /BAUDRATE=115200 .
/BOOTLOG – Activa el registro de arranque en un archivo llamado %SystemRoot% \Ntbtlog.txt . [7]
/BOOTLOGO – Muestra un mapa de bits personalizado alternativo de 16 colores y 640 × 480.El mapa de bits debe guardarse en el directorio \Windows con el nombre boot.bmp . Utilícelo con el modificador /NOGUIBOOT . [8]
/BURNMEMORY= nnn – Especifica la cantidad de memoria, en megabytes, que Windows no puede utilizar. 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 conmutador /DEBUG y el conmutador /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 núcleo. [7]
/CRASHDEBUG – Carga el depurador del núcleo al iniciar el sistema operativo, pero permanece inactivo hasta que se produce un error de detención . Con este modificador, el puerto COM se puede utilizar para operaciones normales mientras Windows se está ejecutando. Si Windows falla, el modificador convierte el puerto en un puerto de depuración. (Esta acción activa la depuración remota). [7]
/DEBUG – Activa el depurador del núcleo cuando se inicia Windows. A diferencia del parámetro /CRASHDEBUG , /DEBUG utiliza el puerto COM independientemente de si se utiliza la depuración o no. [7]
/DEBUGPORT=com x – Especifica el puerto COM que se utilizará para el puerto de depuración. De manera predeterminada, /DEBUGPORT utiliza 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 de mouse serial y bus para los puertos especificados, o para todos los puertos si no se especifica ninguno. Utilice este modificador cuando haya un componente que no sea un mouse conectado a un puerto serial 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= filename – Define la capa de abstracción de hardware que se carga al iniciar. Este modificador es útil para probar una HAL diferente antes de cambiar el nombre del archivo a HAL.DLL . Este modificador también es útil cuando desea intentar cambiar entre iniciar en modo multiprocesador e iniciar en modo de procesador único. Para ello, utilice este modificador con el modificador /KERNEL . filename debe estar en el directorio System32. Puede ser un archivo simple, un enlace físico, pero no un enlace simbólico ni un punto de unión. [7]
/KERNEL= nombre_archivo – Define el núcleo que se carga al iniciar. Con este modificador, el usuario puede cambiar entre un núcleo habilitado para depuración que está lleno de código de depuración y un núcleo 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 huecos de memoria. Por lo tanto, se recomienda utilizar el modificador /BURNMEMORY en su lugar. [10]
/NODEBUG – Desactiva la depuración. Este escenario puede provocar un error de detención si un programa tiene un punto de interrupción de depuración codificado 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 la Prevención de ejecución de datos (DEP). Habilita la DEP, lo que hace que el administrador de memoria marque las páginas que contienen datos como no ejecutables para que no se puedan ejecutar como código. Esto puede ser útil para evitar que el código malicioso aproveche errores de desbordamiento de búfer con entradas de programa inesperadas para ejecutar código arbitrario. La protección contra no ejecución siempre está habilitada en versiones de 64 bits de Windows en procesadores que admiten la protección contra no ejecución. Hay varias opciones que el usuario puede especificar con este modificador: [8]
/NOEXECUTE=OPTIN – Habilita DEP para las imágenes del sistema principal y aquellas especificadas en el cuadro de diálogo de configuración de DEP.
/NOEXECUTE=OPTOUT – Habilita DEP para todas las imágenes excepto aquellas 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. Utilícelo con el modificador /BASEVIDEO para determinar el controlador que está provocando una falla. [7]
/NOPAE – Fuerza a Ntldr a cargar la versión que no es de 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 . Desactiva la detección del ratón serial en los puertos COM especificados. El uso de /NOSERIALMICE sin especificar un puerto COM desactiva la detección del ratón serial en todos los puertos COM. [8]
/NUMPROC= nnn – Establece la cantidad de procesadores que Windows ejecutará al iniciarse. Con este parámetro, el usuario puede obligar a un sistema multiprocesador a utilizar solo la cantidad de procesadores (número) que especifique. Resulta útil para solucionar problemas de rendimiento y CPU defectuosas. [7]
/ONECPU – Equivale a utilizar /NUMPROC=1 . Hace que Windows utilice solo 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 el 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 boot.ini con el tipo /SAFEBOOT: . Los siguientes ejemplos ilustran los parámetros que están en efecto cuando selecciona una opción de Modo seguro en el menú de recuperación de inicio. (Nota: los parámetros /SOS , /BOOTLOG y /NOGUIBOOT no son necesarios con ninguna de estas configuraciones, pero los parámetros 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 Cmd.exe se inicia 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 únicamente para controladores de dominio basados en Windows). Realiza una reparación del servicio de directorio. [11]
/SOS – Desactiva la pantalla de arranque gráfico y utiliza el arranque 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 de administración de energía (PM_TIMER) en lugar de laconfiguración del temporizador del contador de sello de tiempo (TSC) si el procesador admite la configuración de PM_TIMER. [7] De manera predeterminada, Windows Server 2003 Service Pack 2 (SP2) utiliza el temporizador PM para todas las APIC o HAL ACPI de varios procesadores . 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 modificador permite más memoria de kernel para entradas de la tabla de páginas, pero aún mantiene casi 3 GB de espacio de memoria de proceso. [11]
/WIN95 – Indica a Ntldr que arranque el sector de arranque de Windows almacenado en bootsect.w40 . [8]
/WIN95DOS – Indica a Ntldr que arranque el sector de arranque MS-DOS almacenado en bootsect.dos . [8]
/YEAR= yyyy – Indica a la función de tiempo central de Windows que ignore el año que informa el reloj de tiempo real de la computadora y que, en su lugar, utilice el indicado. Ejemplo: /YEAR=2001 . (Este modificador se creó para ayudar en las pruebas Y2K ). [8]
^ "Opciones de la línea de comandos de Bootsect". Windows Vista: referencia técnica . Microsoft Technet. 2009. Consultado el 3 de julio de 2011 .
^ ab "Comando bootsect de línea de comandos de MS-DOS y Windows".
^ "Preguntas frecuentes sobre el editor de datos de configuración de arranque". Windows Server . Microsoft Learn . 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.ª edición). Redmond, WA: Microsoft Press. ISBN1-57231-808-2.
^ Rick Maybury (2009). "Problemas de inicio y apagado, parte 1". Bootcamp . Archivado desde el original el 11 de julio de 2012. Consultado el 25 de abril de 2012 .{{cite web}}: CS1 maint: URL no apta ( enlace )
^ abcdefghijklmnopqrstu Microsoft (28 de noviembre de 2007). «Opciones de conmutación 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). "Boot INI Options Reference". Microsoft Learn . Microsoft . Consultado el 4 de enero de 2023 .
^ "Pérdida de la superposición de DirectDraw y VMR9 después de una actualización". Foro de VideoHelp . 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 "Descripción de las opciones de arranque en modo seguro en Windows XP". Soporte técnico de Microsoft . Archivado desde el original el 19 de febrero de 2015.
^ "Los programas que utilizan la función QueryPerformanceCounter pueden tener un rendimiento deficiente". Soporte técnico 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 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])