Qu'est-ce qui fait que le BIOS décide si un disque est amorçable ou non?
Le BIOS décide si un disque est amorçable sur la base de l'enregistrement de partition de 16 octets, présent après la zone de code MBR (contenu dans une table commençant au 446 e octet). Le premier octet de chaque enregistrement de partition représente l'état d'amorçage du lecteur (et est défini sur 0x80
amorçable ou 0x00
non). Certains BIOS peuvent vérifier d'autres parties du MBR (par exemple, les types de partition, les sommes de contrôle), mais l'exigence de base est l'indicateur de démarrage.
Comment la séquence de démarrage saute-t-elle du lecteur n ° 1 et continue-t-elle à essayer de démarrer à partir du lecteur n ° 2 si plusieurs lecteurs sont installés sur le système?
Cela dépend de l'implémentation et c'est pourquoi vous devez sélectionner correctement un ordre de démarrage. Dans la plupart des cas, le BIOS examine chaque support de stockage dans l'ordre que vous avez défini et détermine s'il peut démarrer à partir de ce périphérique (via les données MBR). Si c'est le cas, il le fait - sinon, il continue de parcourir les autres appareils (encore une fois, dans l'ordre que vous avez sélectionné).
Après que le BIOS a transféré le contrôle au chargeur de démarrage sur le lecteur n ° 1, qui ne possédait aucune partition "amorçable" - comment exactement le chargeur de démarrage sur le deuxième lecteur est-il appelé?
Une fois qu'un périphérique de démarrage valide est trouvé (c'est-à-dire que l'indicateur de démarrage est défini et que d'autres vérifications supplémentaires sont réussies), le BIOS copie le secteur MBR dans la RAM. Le BIOS déplace ensuite le pointeur d'instruction au début de cet emplacement (à l'aide d'une JUMP
instruction), où se trouve le segment de code MBR, puis l'ordinateur démarre.
Si le BIOS prend en charge la spécification de démarrage du BIOS , le code MBR peut retourner le contrôle au BIOS avec une certaine instruction, le signalant d'un échec de démarrage et l'invitant à essayer le périphérique suivant. Cependant, les anciens BIOS affichent simplement un message d'erreur. Un bon indicateur si votre BIOS le prend en charge est de savoir si vous pouvez démarrer à partir de l'USB.
Ma compréhension est que la seule chose que le BIOS vérifie normalement sur un MBR est sa signature à la fin du secteur de 512 octets, puis il transfère simplement le contrôle au chargeur de démarrage initial situé dans les 446 premiers octets du secteur de démarrage.
C'est correct, mais il convient de noter que la plupart des BIOS modernes rechercheront également une table de partition GUID ainsi que l'ancienne table de style MBR conventionnelle.
Cela implique-t-il que les 446 premiers octets du secteur de démarrage DOIVENT contenir du code de chargeur de démarrage significatif même si le disque n'est pas amorçable?
Non , mais le lecteur doit avoir une table de partition MBR ou GUID valide - sinon, il ne sera pas détecté par l'ordinateur. Alors que la partie code du MBR peut en effet être vide, le premier secteur du lecteur doit avoir un MBR / GPT bien formé.
fdisk
traiter ces cas, bien que la version d'origine ait signalé les en-têtes MBR non valides). J'ai conseillé à l'OP de publier l'en-tête MBR brut, mais il / elle peut également vouloir "activer / désactiver" l'indicateur de démarrage (pour définir / réinitialiser l'indicateur manuellement).