Mathieu L. a écrit :
>Alors comment ça marche en fait?
>
>
Ben je m'étais amusé a faire un disquette de boot à l'époque (je voulais
faire un *tout petit* OS pour m'amuser mais je m'était arrêté au mode
protégé, ça devenait un peut trop compliqué :p )...
Donc la dernière tâche du BIOS va être de chercher un perif amorçable.
Ensuite il lit le MBR de ce disque. Ce MBR se trouve au tout début du
disque cylindre 0, tête 0 et secteur 1.
Il contient une routine de boot sur 442 octets, la table des partition
primaire (sur 4x16 octets, un mot par partition) et un magic word (55AA
ou AA55, les 2 marchent je sais pas pourquoi, sûrement une histoire de
portabilité avec l'indian)...
Si le BIOS trouve 55AA, il charge le code de 442 octet en mémoire (à l'@
07C0 :p ). Puis il l'éxecute.
*En général* avec MS (et si lilo est dans le MBR aussi) ce code se
contente juste de charger le code qui se trouve sur la partition active
(flag 0x80)... Le mbr classique qui fait ça se reinstalle sous dos avec
fdisk /mbr...
ça sert même à réparer un lilo s'il est installé sur la partition active
(en générale / ou /boot).
Mais le code peut aussi charger lilo voir l'OS directement : vmlinuz ou
ntldr (si il a assez de place aussi parce que 442 octets c'est pas enorme !)
Au passage une disquette qui affiche "Invalid Boot disk" c'est une
disquette de boot. C'est pas le BIOS qui parle (La faute a format.com !
-- on voit le message en ASCII dans le MBR + le 55AA). Un bios qui
trouve rien n'affiche rien. Juste un curseur qui clignote normalement.
Si j'ai dit une connerie il faut me le dire et corriger mon article dans
wikipédia :
http://fr.wikipedia.org/wiki/MBR
Au passage pour voir le MBR de /dev/hda :
#dd if=/dev/hda of=toto bs=512 count=1 && hexdump -C toto
On voit le 55 aa a la fin normalement...