Dépannage des problèmes de démarrage de Windows 2000/2003
Processus de démarrage Windows 2000
Le processus de démarrage de Windows 2003 est quasi-similaire à celui de Windows 2000.
Les fichiers mis en oeuvre restent identiques quelle que soit la version
Ntldr
|
Charge l'OS
|
Boot.ini
|
Construit le menu de sélection.
|
Bootsect.dos
|
Chargé par Ntldr en vue d’une utilisation alternée avec un autre OS.
|
Ntdetect.com
|
Recherche le matériel disponible.
|
Ntbootdd.sys
|
Pour l’amorçage à partir d'un disque SCSI dont le bios du contrôleur est désactivé.
|
Ntoskrnl.exe
|
Noyau NT (system32).
|
System
|
Paramètres de configuration
|
Hal.dll
|
Hardware Abstration Layer – Couche d’abstraction matérielle. Elle rend NTOSKRNL indépendant de la plateforme sur laquelle il va fonctionner.
|
Etape 1 - La séquence POST - Power On Self Test
Test de la mise sous tension, de la quantité de mémoire, des composants matériels.
Chargement en mémoire de l'enregistrement d'amorçage principal (MBR).
Analyse de la table de partition.
Chargement et initialisation de Ntldr (bootstrap loader).
Etape 2 - Sélection du système d'exploitation
Ntldr fait passer le processeur du mode réel au mode mémoire linéaire 32 bits. (si une installation en mode 64 bits a été effectuée, ntldr passe le processeur en mode 64 bits).
Ntldr démarre les pilotes de système de fichiers appropriés (FAT ou NTFS).
Ntldr lit Boot.ini et affiche les sélections.
Ntldr charge l'OS sélectionné.
Si Windows 2000 est sélectionné, Ntldr charge Ntdetect.com (sinon, Bootsect.dos).
Ntldr charge Ntoskrnl.exe, Hal.dll et la ruche "system".
Etape 3 - Chargement du noyau (Kernel)
Cette phase commence par le chargement de ntoskrnl.exe et du fichier Hal.dll. NTLDR va lire la ruche SYSTEM du registre et la mettre en mémoire puis va sélectionner la configuration matérielle et le control set qui seront utilisés pour ce démarrage. Si vous avez plus d'un profil matériel, vous pourrez faire la sélection à ce niveau. NTLDR va aussi charger tous les pilotes de périphériques dont la valeur de démarrage (dans le Registre : HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Services) est 0x0.
Si vous ajoutez le switch /SOS dans le boot.ini, il vous sera possible de voir les pilotes chargés.
Etape 4 – Initialisation du noyau
Dès l'initialisation de ntoskrnl.exe, ce dernier crée le Clone control set en copiant le Control Set courant. Il va aussi créer la ruche HARDWARE dans le Registre en utilisant les informations collectées précédemment par ntdetect.com. Ntoskrnl.exe va ensuite initialiser les pilotes de périphériques chargés précédemment, puis va scruter le registre pour les pilotes de périphériques qui ont une valeur de chargement de 0x1.
Etape 5 - Chargement des Services
Cette étape commence avec le chargement du processus Session Manager (smss.exe). Il va lancer les programmes présents dans l'entrée BootExecute du Registre ainsi que les sous-systèmes requis. Le sous-système Win32 va ensuite charger Winlogon.exe qui va lancer la LSA : Local Security Administration (Lsass.exe). La fenêtre Winlogon sera alors visible.
Le contrôleur de services (screg.exe) va ensuite scruter le Registre à la recherche de services qui ont une valeur de démarrage de 0x2 et va les charger. Les services doivent être lancés dans un certain ordre, en fonction de leurs dépendances vis à vis d'autres services.
Les services marqués en 0x3 sont démarrés manuellement. Les services en 0x4 sont désactivés.