Le processus de démarrage de Windows fait intervenir divers mécanismes et processus.
Cet article vous explique comment se déroule le démarrage de Windows en MBR.
Table des matières
Liste des processus utilisés
En mode UEFI
- BCD –Bootmgr.exe or Bootmgr.efi : Boot Configuration Data – contient les informations de démarrage de Windows. Ce dernier remplace boot.ini
- Windows Boot Loader (Winload.exe or Winload.efi)
- efibootmgr : Modifier le chargeur de démarrage UEFI sur Linux
Cet article ne décrit pas le démarrage en UEFI.
Reportez-vous à celui-ci : Le processus de démarrage UEFI sur Windows
En mode MBR
- Ntldr : Charge l’OS
- Boot.ini : Construit le menu de sélection
- Bootsect.dos : Chargé par Ntldr en vue d’un autre OS
- Ntdetect.com : Recherche le matériel disponible
- Ntbootdd.sys : Pour amorçage à partir d’un disque dont le contrôleur n’a pas le bios activé
- Ntoskrnl.exe : Noyau NT (System32).
- System : Paramètres de configuration (System32\configuration).
- Hal.dll : Couche HAL. Rend Ntoskrnl indépendant de la plate-forme sur laquelle il va fonctionner.
Les étapes du démarrage de Windows en MBR
Tout d’abord pour avoir une vue d’ensemble des phases de démarrage d’un PC, suivez ce tutoriel :
Voici la séquence de démarrage en UEFI ou en BIOS Legacy.
Le schéma ci-dessous récapitule les étapes du démarrage en MBR.
Etape 1 – Le Bios Legacy ou Hérité
Cette étape est réalisée par tous les ordinateurs, quel que soit le système d’exploitation installé.
Le CPU exécute le code du BIOS contenu dans la ROM.
Généralement vous obtenez un écran noir avec le décompte de la mémoire. Pendant cette étape, l’ordinateur vérifie certains composants matériels (mémoire, clavier, carte graphique).
Cela s’appelle le POST (Power On Self Test).
L’écran change alors et on obtient généralement un écran avec un tableau récapitulatif des informations de l’ordinateur.
Le BIOS va alors suivre la séquence de boot (démarrage) que l’on lui a imposé et qui est stocké dans la CMOS.
Le BIOS cherche alors le MBR (master boot record) du périphérique qui est chargé de localiser la partition active et charger le secteur de boot en mémoire (bootstrap).
A cet instant c’est l’OS qui prend le relai.
Si aucun MBR n’est trouvé, on obtient alors un message du type :
Invalid partition table
Error loading operating system
Missing operating system
Etape 2 – Démarrage de Windows
Sous Windows, le bootstrap contient le fichier Ntldr qui charge les informations sur le matériel et les pilotes requis lors du chargement de NT.
Si Ntldr n’est pas trouvé, vous pouvez obtenir ce message d’erreur : “A kernel file is missing from the disk”
Ntldr démarre aussi le système de fichiers (FAT ou NTFS). Il charge aussi les informations du bootmgr.
Ce dernier charge le BCD (Boot configuration Data) qui cherche le winload.
Le BCD stocke la configuration du démarrage avec le chemin du winload.
Dans le cas d’un Dual-boot windows, il affiche un menu pour sélectionner le Windows sur lequel vous souhaitez démarrer.
C’est aussi ce type de menu que l’on retrouve lorsque l’on tape sur la touche F8 pour par exemple démarrer en mode sans échec.
Lorsque le bootmgr n’est pas trouvé, on peut avoir le message : bootmgr is missing ou est manquant.
Enfin si le BCD est corrompu, on peut voir une erreur BCD 0x.
NTLDR charge ensuite le fichier Ntdetect.com qui utilise le BIOS pour connaître la configuration et le matériel présent à travers le CMOS.
Ntdetect.com récupère aussi l’heure, les différents types de bus (ISA, PCI, EISA).
Ces informations sont ensuite stockées dans la clef HKLM\HARDWARE.
Vous obtenez alors cette barre de progression.
Étape 3 – Chargement du Kernel Windows
Ntldr charge ensuite les fichiers Ntoskrnl.exe et Hal.dll, s’il n’y parvient pas, vous obtenez le message :
“Windows NT could not start because the following file was missing or corrupt”, Ntoskrnl.exe ou Hal.dll
NTLDR charge alors le contenu de la clef HKEY_LOCAL_MACHINE\SYSTEM situé dans le répertoire C:\Windows\System32\config\system.
Puis il insère les informations sur la configuration du matériel qu’il a recueillies plus tôt, dans la clé de Registre SYSTEM.
Ensuite, NTLDR va charger tous les pilotes de périphériques qui possèdent une valeur de démarrage (start) dans le Registre Windows : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
Notamment le processus services.exe charge les services Windows dont les groupes de services générés par le processus svchost.exe
C’est dans cette partie du démarrage que vous pouvez obtenir un plantage de Windows de type BSOD ou écran bleu de la mort.
NTLDR charge le fichier ntoskrnl.exe.
Etape 4 – Initialisation du noyau
Ntoskrnl.exe créé le Clone control set (HKEY_LOCAL_MACHINE\SYSTEM\ControlSetXX).
Plus d’informations : voir fonctionnement des ControlSet
Ntoskrnl.exe va aussi créer la ruche HARDWARE dans le registre Windows en utilisant les informations collectées précédemment par ntdetect.com.
Enfin, le processus système Ntoskrnl.exe va initialiser les pilotes de périphériques chargés précédemment.
Ensuite il va scruter le registre à la recherche des pilotes de périphériques qui ont comme valeur de démarrage 0x1
L’échec de chargement d’un pilote peut provoquer le redémarrage de Windows.
Cela afin de redémarrer en utilisant la dernière bonne configuration connue
Étape 5 – Chargement des services et ouverture de session
Le noyau démarre ensuite le processus SMSS.exe, c’est un processus système Windows.
Il est responsable de la gestion des sessions sur le système (création, gestion, et suppression des sessions utilisateurs).
SMSS exécute les valeurs contenues dans la clé HKLM\SYSTEM\CurrentControlSet\Session Manager\BootExecute.
Une des valeurs peut contenir une commande pour lancer l’utilitaire CHKDSK qui vérifie les éventuelles erreurs sur le disque au démarrage de Windows.
SMSS charge le contenu des clefs HKLM\sam, HKLM\sam\security, et HKLM\software.
SMSS différents processus système de Windows :
- CSRSS.exe gère les fenêtres et les éléments graphiques de Windows
- Winlogon.exe sert à gérer l’ouverture et la fermeture des sessions puis Winlogon.exe est chargé en service. Userinit.exe est aussi initialisé.
- LSASS (Local Security Authority Subsystem Service) : la fenêtre d’ouverture de session s’ouvre alors. LSASS créé la liste des groupes et les droits auquel l’utilisateur appartient
screg.exe, le contrôleur de service, va ensuite démarrer les services qui ont la valeur 0x2 dans la clef : HKLM\SYSTEM\CurrentControlSet\ServicesDriver\Name. Les services sont chargés dans l’ordre de leurs dépendances.
L’ouverture de session se poursuit avec le processus userinit.exe, qui va aussi démarrer le bureau de Windows (explorer.exe).
Les programmes contenus dans les clefs suivantes se chargent ensuite :
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServiceOnce
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
Il existe d’autres points de chargement d’application sur Windows, pour plus d’informations : Les points de chargement ou autoruns de Windows
La session Windows est alors ouverte et le bureau Windows se charge.
Après chaque ouverture de session réussie, le Clone ControlSet est copié dans la clé HKEY_LOCAL_MACHINE\SYSTEM\LastKnownGoodRecovery.
Les problèmes de démarrage de Windows
Pour les problèmes ou erreur lors du démarrage de Windows, se reporter à la page :
Si le démarrage de Windows est lent : Résoudre le démarrage lent de Windows
Liens
- Quel est le processus et séquence de démarrage d’un PC (POST, BIOS, OS)
- Qu’est-ce qu’un chargeur de démarrage (Boot Loader)
- Secure boot : la protection des PC UEFI contre les bootkits – comment ça marche ?
- Windows Boot Manager : qu’est-ce que c’est
- Le processus de démarrage UEFI sur Windows
- Le processus de démarrage de Windows en MBR
- Qu’est-ce que winload.efi ou winload.exe
- Winload.efi est manquant, corrompu ou contient des erreurs
- Résoudre les erreurs BCD au démarrage de Windows 10, 11 (Winload)
- Problèmes de démarrage de Windows
- Comment Linux démarre sur un PC en UEFI : la séquence complète