Auteur Sujet: Fonctionnement du démarrage d'un ordinateur avec BIOS  (Lu 128 fois)

OnKleBen

  • Administrator
  • Hero Member
  • *****
  • Messages: 519
  • Karma: +1/-0
    • Voir le profil
Le démarrage d'un ordinateur ne laisse rien au hasard et il est intéressant et parfois utile de bien comprendre comment ça se passe.

Parlons ici du démarrage d'un ordi doté d'un BIOS, d'un disque dur avec secteur d'amorçage en MBR et d'une partition active pointant vers un système Windows. La procédure qui se déroule dans les ordinateur doté d'un UEFI à la place d'un BIOS (qui est une évolution du BIOS) est différente et n'est pas décrite ici.

On ne rentrera pas dans le détail mais poser ça sur le "papier" ici me sera utile, et peut-être à vous aussi. J'espère ne pas faire d'erreur mais vous en constatez vous êtes libre de me faire la remarque.

Vous trouverez également à la fin de ce mémo quelques commandes qui peuvent dépanner certaines des étapes qui provoqueraient une erreur.

Ordre d'exécution du processus de démarrage :

1/ BIOS (Basic Input-Output System)
2/ POST (Power On Self Test)
3/ MBR (Master Boot Record)
4/ Table de partition
5/ Secteur de boot de partition
6/ nt60
7/ BOOTMGR
8/ BCD (Boot Configuration Data)
9/ Winload.exe
10/ NTOSKRNL.exe

-----------------------

Le BIOS, qui est un programme contenu dans une mémoire ROM sur la carte mère, va d'abord se charger dans la RAM pour exécuter son programme. C'est alors que le POST s'exécute.

Le POST va effectuer une batterie de tests pour déterminer la présence et l’intégrité générale des organes vitaux de l'ordinateur. Ce n'est pas un test approfondi, le fait que le POST arrive à terme n'indique pas que certains composants n'ont pas de problème. Le POST va ensuite contrôler la liste des périphériques de démarrage du premier jusqu'au dernier (l'ordre étant défini par le constructeur ou modifié par l'utilisateur) jusqu’à y trouver un secteur d'amorçage, ou MBR.

Le MBR est un programme qui occupe le premier secteur d'un disque dur où se trouve un ou plusieurs systèmes d'exploitation. Il occupe donc en tout et pour tout 512 Octets, et est installé sur le tout premier secteur, au tout début du disque dur. Un disque dur est composé de milliards de secteurs de 512 Octets, et le MBR est sur le premier. Le MBR contient un code, un signature, qui permet au POST de l'identifier comme tel. Ce code s’écrit 55AA en hexadécimal et on peut le lire soit-même avec un lecteur hexadécimal (logiciel).

La Table de Partition est contenue dans le MBR. Elle indique au système comment sont agencées les partitions sur le disque dur. En effet, les partitions ont un début et une fin et ces extrémités se trouvent sur des secteurs bien définis du disque dur. Un disque dur initialisé en MBR peut contenir au maximum 4 partitions principale, ou 3 principales et une étendue. Dans une partition étendue, on peut créer autant de volumes logiques que l'on souhaite. Mais cela est un autre sujet.
Pour continuer la procédure de démarrage, le MBR va donc chercher une partition active dans cette table de partition. Cette partition sera reconnue grâce au code 80 qui se trouve à son tout début, au niveau du secteur de boot de partition. Ce code est également lisible grâce à un lecteur hexadécimal, si jamais vous êtes curieux.

Le secteur de boot de partition est alors lu et un programme spécifique à la version de Windows est alors exécuté. Ce programme s'appelait nt52 pour les versions antérieures à Windows Vista, et s'appelle maintenant nt60. Depuis tout le début de la procédure, la notion de fichier n'est pas encore présente et l'exécution de nt60 va permettre de charger le premier fichier, qui s'appelle BOOTMGR.

BOOTMGR se trouve donc sur la partition active, celle qui possède le code 80. Depuis Vista, la plupart du temps cette partition mesure 100Mo et ne contient pas les fichiers du système d'exploitation, seulement les fichiers de démarrage. Mais dans certaines configurations le BOOTMGR se trouve dans la même partition que tout les autres fichiers, partition qui est dans ce cas active (code 80).
Le programme BOOTMGR va lire le magasin BCD, qui comme son nom l'indique, contient les informations sur la façon dont le système doit démarrer. Il sait donc sur quel-les partitions se trouvent les fichiers du ou des systèmes d'exploitation Windows de l'ordinateur. Sa fonction ressemble à celle du boot.ini utilisé sur les versions antérieures de Windows. Grâce aux données du magasin BCD, BOOTMGR va alors exécuter le chargeur d'amorçage qui se trouve dans la même partition que lui et qui s'appelle winload.exe afin qu'il charge enfin le noyau de Windows.

Le noyau de Windows, nommé NTOSKRNL.exe est enfin chargé ainsi que tout les fichiers nécessaires à son fonctionnement !

----------------------------


Voyons maintenant très rapidement quels outils peuvent nous permettre de secourir ces éléments en cas de problème.

-->Si vous avec un problème de démarrage, commencez d'abord par démarrer l'ordinateur sur le média d'installation de Windows et tentez une réparation automatique du démarrage, vous avez de bonnes chances que cela fonctionne.

Si vous avez besoin d'aller plus loin, ces quelques commandes vous aideront peut-être. Démarrez sur le média d'installation correspondant à votre version de Windows et lancer une invite de commande. Les commandes ici ne seront pas présentées avec des paramètres, ce sera à vous de rechercher les paramètres à ajouter en fonction de votre situation. Dans l'ensemble, si vous avez la possibilité, sauvegardez les données du disque dur d'une façon ou d'une autre avant d'effectuer ces opérations. On n'est jamais trop prudent.

bootrec /fixmbr peut permettre de réparer le MBR. Cette opération n'affecte pas la table de partition malgré qu'elle soit contenue dans le MBR.

diskpart avec l'option active peut permettre de rendre une partition active en ajoutant le fameux code 80.

bootsect /nt60 peut permettre de réinstaller le secteur de boot de partition.

bcdedit permet d'éditer le magasin BCD.

bcdboot permet de réparer BOOTMGR et régénérer le contenu de sa partition (la partition active où se trouve le code 80).

-------------------------------

J'espère que ce petit article vous aura apporter un peu d’éclaircissement  :)

------------------------------------------------------------