Article de reference

NTLDR

NTLDR ( abréviation de NT loader ) est le chargeur de démarrage de toutes les versions du système d'exploitation Windows NT depuis 1993 avec la sortie de Windows NT 3.1 jusqu'à ...

NTLDR ( abréviation de NT loader ) est le chargeur de démarrage de toutes les versions du système d'exploitation Windows NT depuis 1993 avec la sortie de Windows NT 3.1 jusqu'à Windows XP et Windows Server 2003. À partir de Windows Vista , il a été remplacé par le chargeur de démarrage BOOTMGR . NTLDR est généralement exécuté à partir du périphérique de stockage principal , mais il peut également être exécuté à partir de périphériques de stockage portables tels qu'un CD-ROM , une clé USB ou une disquette. NTLDR peut également charger un système d'exploitation non basé sur NT en fonction du secteur de démarrage approprié dans un fichier.

NTLDR requiert, au minimum, que les deux fichiers suivants soient présents sur le volume système :

  • ntldr , le chargeur de démarrage principal lui-même
  • NTDETECT.COM , requis pour démarrer un système d'exploitation basé sur NT, détecte les informations matérielles de base nécessaires à un démarrage réussi

Un autre fichier important est boot.ini , qui contient la configuration de démarrage (s'il est manquant, NTLDR sera par défaut sur \Windows sur la première partition du premier disque dur).

NTLDR est lancé par l' enregistrement de démarrage du volume de la partition système, qui est généralement écrit sur le disque par la commande Windows FORMAT ou SYS .

Histoire

Windows NT a été conçu à l'origine pour les plates-formes compatibles ARC , en s'appuyant sur son gestionnaire de démarrage et en fournissant uniquement osloader.exe , un programme de chargement acceptant des arguments de ligne de commande ordinaires spécifiant la partition de répertoire Windows, l'emplacement ou les paramètres de démarrage, qui est lancé par le gestionnaire de démarrage compatible ARC lorsqu'un utilisateur choisit de démarrer un système d'exploitation Windows NT spécifique. Cependant, comme le x86 ne prenait pas en charge ARC, une couche supplémentaire a été ajoutée spécifiquement pour cette plate-forme : un code de gestionnaire de démarrage personnalisé présentant un menu texte permettant à l'utilisateur de choisir entre un ou plusieurs systèmes d'exploitation et ses options configurées dans le fichier de configuration boot.ini , précédé d'un module StartUp spécial qui est responsable de certaines préparations telles que le basculement du processeur en mode protégé. Lorsqu'un utilisateur choisit un système d'exploitation dans le menu de démarrage, les arguments de ligne de commande suivants sont ensuite passés à la partie de osloader.exe commune à toutes les architectures de processeur :

load 
osloader = <chemin Windows> \System32\NTLDR systempartition = <partition Windows> 
osloadpartition = <partition Windows> 
osloadoptions = <paramètres de démarrage Windows> 
consolein =multi(0)key(0)keyboard(0) consoleout =multi(0)video(0)monitor(0) x86systempartition = <partition NTLDR>

Dans les versions Windows à partir de Windows Vista et Windows Server 2008 , NTLDR a été séparé en ses parties gestionnaire de démarrage et chargeur système : le gestionnaire de démarrage Windows et winload.exe . La partie gestionnaire de démarrage a été complètement réécrite ; elle n'utilise plus boot.ini comme fichier de configuration, bien que l' utilitaire bootcfg pour modifier boot.ini soit toujours présent dans le cas de configurations multi-démarrage avec les versions Windows jusqu'à Windows XP et Windows Server 2003 .

Interface de ligne de commande

Le programme utilitaire bootsect.exe des outils Windows PE dispose des options /nt52 (NTLDR) et /nt60 (Vista et versions ultérieures) pour stocker un enregistrement de démarrage NTLDR ou Vista dans le premier secteur d'une partition spécifiée. La commande peut être utilisée pour les systèmes de fichiers basés sur FAT et NTFS . Elle remplace les outils FixFAT et FixNTFS.

Exemple

L'exemple suivant applique le code de démarrage principal compatible NTLDR au volume D:

C:\> bootsect /nt52 D: 

Processus de démarrage

Lorsqu'un PC est allumé, son BIOS suit l'ordre de démarrage configuré pour trouver un périphérique de démarrage. Il peut s'agir d'un disque dur, d'une disquette, d'un CD/DVD, d'une connexion réseau, d'un périphérique USB, etc. selon le BIOS. Dans le cas d'une disquette, le BIOS interprète son secteur de démarrage (premier secteur) comme un code. Pour NTLDR, il peut s'agir d'un secteur de démarrage NTLDR recherchant le ntldrfichier sur la disquette. Pour un disque dur, le code dans le Master Boot Record (premier secteur) détermine la partition active. Le code dans le secteur de démarrage de la partition active peut alors être à nouveau un secteur de démarrage NTLDR recherchant ntldrdans le répertoire racine de cette partition active. Dans un scénario plus complexe, la partition active peut contenir un secteur de démarrage Vista pour le nouveau gestionnaire de démarrage Vista avec une entrée {ntldr} pointant vers une autre partition avec un secteur de démarrage NTLDR.

Lors du démarrage, la partie chargeur de NTLDR effectue les opérations suivantes dans l'ordre :

  1. Accède au système de fichiers sur le lecteur de démarrage ( FAT ou New Technology File System, NTFS ).
  2. Si Windows a été mis en état d'hibernation, le contenu de hiberfil.sys est chargé en mémoire et le système reprend là où il s'est arrêté.
  3. Sinon, lit boot.ini et invite l'utilisateur à accéder au menu de démarrage en conséquence.
  4. Si un système d'exploitation non basé sur NT est sélectionné, NTLDR charge le fichier associé répertorié dans boot.ini ( bootsect.dos si aucun fichier n'est spécifié ou si l'utilisateur démarre sur un système d'exploitation basé sur DOS) et lui donne le contrôle.
  5. Si un système d'exploitation basé sur NT est sélectionné, NTLDR exécute ntdetect.com , qui collecte des informations sur le matériel de l'ordinateur. (Si ntdetect.com se bloque pendant la détection du matériel, il existe une version de débogage appelée ntdetect.chk qui peut être trouvée sur le support Microsoft. )
  6. Démarre ntoskrnl.exe en lui transmettant les informations renvoyées par ntdetect.com .

fichier boot.ini

La première action de NTLDR est de lire le fichier boot.ini . NTLDR permet à l'utilisateur de choisir le système d'exploitation à partir duquel démarrer dans le menu. Pour les systèmes d'exploitation NT et basés sur NT, il permet également à l'utilisateur de transmettre des options préconfigurées au noyau. Les options du menu sont stockées dans boot.ini , qui se trouve lui-même à la racine du même disque que NTLDR. Bien que NTLDR puisse démarrer DOS et les versions non NT de Windows, boot.ini ne peut pas configurer leurs options de démarrage.

Pour les systèmes d’exploitation basés sur NT, l’emplacement du système d’exploitation est écrit sous la forme d’un chemin Advanced RISC Computing (ARC).

Le fichier boot.ini est protégé de la configuration utilisateur par les attributs de fichier suivants : système, caché, lecture seule. Pour le modifier manuellement, l' utilisateur doit d'abord supprimer ces attributs. Une manière plus sûre de modifier le fichier consiste à utiliser la commande bootcfg depuis une console. bootcfg reverrouillera également le fichier (en le remettant sur système, caché et lecture seule). De plus, le fichier peut être modifié sous Windows à l'aide d'un éditeur de texte si l'option d'affichage des dossiers « Afficher les fichiers et dossiers cachés » est sélectionnée, l'option d'affichage des dossiers « Masquer les fichiers protégés du système d'exploitation » est décochée et l'option « Lecture seule » est décochée dans les propriétés du fichier.

bootsect.dos est le secteur de démarrage chargé par NTLDR pour charger DOS, ou s'il n'y a pas de fichier spécifié lors du chargement d'un système d'exploitation non basé sur NT.

Exemple

Un exemple de fichier boot.ini :

[chargeur de démarrage] 
délai d'expiration = 40 
par défaut = multi(0)disk(0)rdisk(0)partition(1)\WINDOWS 
[systèmes d'exploitation] 
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS = "Microsoft Windows XP Professionnel" /fastdetect

Si l'option de délai d'expiration du chargeur de démarrage dans boot.ini est définie sur 0, le menu de démarrage NTLDR n'apparaît pas. Une extrême prudence doit être observée lors de la modification du chargeur de démarrage, car des informations erronées peuvent entraîner l'échec du démarrage du système d'exploitation.

Commutateurs du noyau NT

Menu d'options avancées du chargeur de démarrage NTLDR
  • /3GB – Force les systèmes x86 à augmenter l'espace d'adressage virtuel alloué aux programmes utilisateur à 3 Go et à le réduire à 1 Go alloué au noyau et aux composants exécutifs. Utilisé pour certains programmes qui nécessitent plus que les 2 Go standard alloués aux programmes utilisateur et les 2 Go alloués au système. Certaines configurations de Windows Server 2003 qui exécutent des applications gourmandes en mémoire virtuelle telles que les serveurs de base de données ou Microsoft Exchange Server 2003 peuvent nécessiter ce commutateur ou peuvent bénéficier de performances améliorées. L'activation de cette option peut interrompre la vidéo VMR-9. L'activation de cette option peut également entraîner des problèmes audio avec les cartes son Creative SB X-Fi series avec (X-Fi Gamer / X-Fi Titanium @ WINXP 32 bits 3/2012). Ces problèmes peuvent être liés à la façon dont les pilotes Creative gèrent la mémoire au-delà de 2 Go.
  • /BASEVIDEO – Force le système à passer en mode VGA standard 640 × 480 16 couleursen utilisant un pilote de périphérique vidéo compatible avec n'importe quelle carte vidéo . Si le système d'exploitation ne parvient pas à se charger en raison d'un pilote vidéo défectueux ou mal configuré, ce commutateur permet au système de se charger, afin que l'utilisateur puisse ensuite supprimer, mettre à jour ou restaurer le pilote vidéo à l'origine du problème. L'utilisation de ce commutateur en conjonction avec le commutateur /SOS permet de déterminer le pilote qui déclenche une panne.
  • /BAUDRATE= nnn – Définit le débit en bauds du port de débogage utilisé pour le débogage du noyau. L'utilisation de ce commutateur active automatiquement le commutateur /DEBUG . Spécifie une substitution pour le débit en bauds par défaut (19200) auquel un hôte de débogage du noyau distant se connectera. Exemple : /BAUDRATE=115200 .
  • /BOOTLOG – Active la journalisation du démarrage dans un fichier nommé %SystemRoot% \Ntbtlog.txt .
  • /BOOTLOGO – Affiche une image bitmap personnalisée alternative de 640 × 480 16 couleurs. L'image bitmap doit être enregistrée dans le répertoire \Windows sous le nom boot.bmp . À utiliser avec le commutateur /NOGUIBOOT .
  • /BURNMEMORY= nnn – Spécifie la quantité de mémoire, en mégaoctets, que Windows ne peut pas utiliser. Utilisez ce paramètre pour confirmer un problème de performances ou d'autres problèmes liés à l'épuisement de la RAM .
  • /CHANNEL= nn – À utiliser avec le commutateur /DEBUG et le commutateur /DEBUGPORT=1394 pour sélectionner le canal d'interface IEEE 1394 (numéroté de 0 à 62) via lequel les communications de débogage du noyau circuleront.
  • /CRASHDEBUG – Charge le débogueur du noyau au démarrage du système d'exploitation, mais il reste inactif jusqu'à ce qu'une erreur d'arrêt se produise. Avec ce commutateur, le port COM peut être utilisé pour des opérations normales pendant que Windows est en cours d'exécution. Si Windows plante, le commutateur convertit le port en port de débogage. (Cette action active le débogage à distance.)
  • /DEBUG – Active le débogueur du noyau au démarrage de Windows. Contrairement au commutateur /CRASHDEBUG , /DEBUG utilise le port COM, que vous utilisiez le débogage ou non.
  • /DEBUGPORT=com x – Spécifie le port COM à utiliser pour le port de débogage. Par défaut, /DEBUGPORT utilise COM2 s'il existe. Sinon, la valeur par défaut est COM1. L'utilisation de ce commutateur active automatiquement le commutateur /DEBUG .
  • /FASTDETECT[:com x [,com y ]] – Désactive la détection de souris série et bus pour le ou les ports spécifiés, ou pour tous les ports si aucun n'est spécifié. Utilisez ce commutateur lorsqu'un composant autre qu'une souris est connecté à un port série pendant le processus de démarrage. Les ports peuvent être séparés par des virgules pour désactiver plusieurs ports. (Remarque : dans les versions antérieures de Windows, y compris Windows NT 4.0 , ce commutateur était nommé /NOSERIALMICE .)
  • /HAL= nom_fichier – Définit la couche d'abstraction matérielle chargée au démarrage. Ce commutateur est utile pour essayer un autre HAL avant de renommer le fichier en HAL.DLL . Ce commutateur est également utile lorsque vous souhaitez essayer de basculer entre le démarrage en mode multiprocesseur et le démarrage en mode processeur unique. Pour ce faire, utilisez ce commutateur avec le commutateur /KERNEL . nom_fichier doit se trouver dans le répertoire System32. Il peut s'agir d'un fichier simple, d'un lien physique, mais pas d'un lien symbolique ou d'un point de jonction.
  • /KERNEL= nom_fichier – Définit le noyau chargé au démarrage. Avec ce commutateur, l' utilisateur peut basculer entre un noyau compatible avec le débogage, rempli de code de débogage, et un noyau normal. Mêmes limitations pour l'emplacement et le type du nom de fichier que pour le commutateur /HAL.
  • /MAXMEM= nnn – Spécifie la quantité maximale de RAM , en mégaoctets, que Windows peut utiliser. Cependant, le commutateur /MAXMEM ne tient pas compte des trous de mémoire. Par conséquent, il est recommandé d'utiliser le commutateur /BURNMEMORY à la place.
  • /MININT – Cette option est utilisée par l'environnement de préinstallation Windows (WinPE) et charge la ruche du système de registre en tant que ruche volatile de sorte que les modifications qui y sont apportées en mémoire ne sont pas enregistrées dans l'image de la ruche.
  • /NODEBUG – Désactive le débogage. Ce scénario peut provoquer une erreur d'arrêt si un programme possède un point d'arrêt codé en dur pour le débogage dans son logiciel.
  • /NOEXECUTE={OPTIN|OPTOUT|ALWAYSON|ALWAYSOFF } – Cette option est uniquement disponible sur les versions 32 bits de Windows lorsqu'elle est exécutée sur des processeurs prenant en charge la prévention de l'exécution des données (DEP). Elle active DEP, ce qui entraîne le marquage par le gestionnaire de mémoire des pages contenant des données comme non exécutables afin qu'elles ne puissent pas être exécutées en tant que code. Cela peut être utile pour empêcher le code malveillant d'exploiter les bogues de dépassement de tampon avec une entrée de programme inattendue afin d'exécuter du code arbitraire. La protection contre la non-exécution est toujours activée sur les versions 64 bits de Windows sur les processeurs qui prennent en charge la protection contre la non-exécution. L' utilisateur peut spécifier plusieurs options avec ce commutateur :
    • /NOEXECUTE=OPTIN – Active DEP pour les images système principales et celles spécifiées dans la boîte de dialogue de configuration DEP.
    • /NOEXECUTE=OPTOUT – Active DEP pour toutes les images sauf celles spécifiées dans la boîte de dialogue de configuration DEP.
    • /NOEXECUTE=ALWAYSON – Active DEP sur toutes les images.
    • /NOEXECUTE=ALWAYSOFF – Désactive DEP.
  • /NOGUIBOOT – Affiche les noms des pilotes de périphériques pendant leur chargement. À utiliser avec le commutateur /BASEVIDEO pour déterminer le pilote qui déclenche une panne.
  • /NOPAE – Force Ntldr à charger la version non- Physical Address Extension (PAE) du noyau Windows, même si le système est détecté comme prenant en charge les PAE x86 et dispose de plus de 4 Go de mémoire physique.
  • /NOSERIALMICE[=com x ] – (Obsolète sur toutes les versions postérieures à Windows NT 4.0 ) Remplacé par l'absence du commutateur /FASTDETECT . Désactive la détection de souris série sur les ports COM spécifiés. L'utilisation de /NOSERIALMICE sans spécifier de port COM désactive la détection de souris série sur tous les ports COM.
  • /NUMPROC= nnn – Définit le nombre de processeurs que Windows exécutera au démarrage. Avec ce commutateur, l' utilisateur peut forcer un système multiprocesseur à utiliser uniquement la quantité de processeurs (nombre) que vous spécifiez. Utile pour résoudre les problèmes de performances et les processeurs défectueux.
  • /ONECPU – Équivalent à l'utilisation de /NUMPROC=1 . Force Windows à n'utiliser qu'un seul processeur sur un système multiprocesseur.
  • /PAE – Active la prise en charge de l'extension d'adresse physique . En mode sans échec , l'ordinateur démarre en utilisant des noyaux normaux, même si le commutateur /PAE est spécifié.
  • /PCILOCK – Pour les systèmes x86 , cette fonction empêche le système d'exploitation d'attribuer de manière dynamique des ressources d'entrée matérielle, de sortie matérielle et de demande d'interruption auxpériphériques PCI . À la place, le BIOS configure les périphériques.
  • /REDIRECT – Active les services de gestion d'urgence (EMS) sur un ordinateur Windows Server 2003, Enterprise Edition . Pour activer EMS en modifiant le fichier Boot.ini sur un ordinateur x86 , modifiez à la fois la section [boot loader] et la section [operating systems] du fichier Boot.ini.
  • /SAFEBOOT:{MINIMAL|NETWORK|DSREPAIR}[(ALTERNATESHELL)] – Démarre Windows en mode sans échec . Vous devez inclure les deux points plus l'un des trois types répertoriés ci-dessus. Une option supplémentaire que l' utilisateur peut ajouter est (ALTERNATESHELL) , qui indique à Windows d'utiliser le programme spécifié par la valeur HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\AlternateShell comme shell graphique plutôt que d'utiliser la valeur par défaut, qui est l'Explorateur Windows. L'utilisateur peut également combiner d'autres paramètres boot.ini avec /SAFEBOOT: type . Les exemples suivants illustrent les paramètres qui sont en vigueur lorsque vous sélectionnez une option Mode sans échec dans le menu de récupération de démarrage. (Remarque : les commutateurs /SOS , /BOOTLOG et /NOGUIBOOT ne sont pas requis avec l'un de ces paramètres, mais ils peuvent aider au dépannage.)
    • Mode sans échec ( /SAFEBOOT:MINIMAL /SOS /BOOTLOG /NOGUIBOOT ) – Par défaut : utilise un ensemble minimal de pilotes de périphériques et de services pour démarrer Windows.
    • Mode sans échec avec mise en réseau ( /SAFEBOOT:NETWORK /SOS /BOOTLOG /NOGUIBOOT ) – Mode par défaut avec les pilotes nécessaires au chargement du réseau.
    • Mode sans échec avec invite de commande ( /SAFEBOOT:MINIMAL(ALTERNATESHELL) /SOS /BOOTLOG /NOGUIBOOT ) – Mode par défaut, sauf que Cmd.exe démarre à la place de l'Explorateur Windows .
    • Windows en mode de restauration des services d'annuaire ( /SAFEBOOT:DSREPAIR /SOS ) – (Ce mode est valide uniquement pour les contrôleurs de domaine Windows.) Effectue une réparation du service d'annuaire.
  • /SOS – Désactive l'écran de démarrage graphique et utilise le démarrage texte de style NT4, répertoriant le numéro de build de Windows, le numéro de version, etc. Dans Windows 2000 et XP, le texte est rendu à l'intérieur de la bitmap CHKDSK (et avec une barre de progression dans 2000).
  • /USEPMTIMER – Spécifie que Windows utilise les paramètres de temporisateur PM_TIMER (Power Management Timer) au lieu desparamètres de temporisateur TSC ( Time Stamp Counter ) si le processeur prend en charge les paramètres PM_TIMER. Par défaut, Windows Server 2003 Service Pack 2 (SP2) utilise le temporisateur PM pour tous les HAL APIC ou ACPI multiprocesseurs . Si vous n'exécutez pas Windows Server 2003 SP2, vous devez forcer l'ordinateur à utiliser le temporisateur PM à l'aide du commutateur /USEPMTIMER .
  • /USERVA= nnn – Personnalise la quantité de mémoire, en mégaoctets, allouée aux processus lors de l'utilisation du commutateur /3GB . Ce commutateur autorise une plus grande quantité de mémoire d'entrée de table de pages dans le noyau, tout en conservant près de 3 Go d'espace mémoire de processus.
  • /WIN95 – Demande à Ntldr de démarrer le secteur de démarrage Windows stocké dans bootsect.w40 .
  • /WIN95DOS – Demande à Ntldr de démarrer le secteur de démarrage MS-DOS stocké dans bootsect.dos .
  • /YEAR= yyyy – Indique à la fonction de synchronisation de base de Windows d'ignorer l'année indiquée par l'horloge en temps réel de l'ordinateur et d'utiliser à la place celle indiquée. Exemple : /YEAR=2001 . (Ce commutateur a été créé pour faciliter les tests Y2K .)

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index