Pages : 1
#1 Le 02/10/2022, à 10:10
- Arbiel
Quelques constats sur les démarrages BIOS et UEFI
Bonjour
Je viens d'initialiser une clé USB de données (non dédiée à la seule fonction d'installation) pour qu'elle puisse servir, de manière autonome, de support d'installation (ou de réparation) aussi bien pour de "vieux" PC qui démarrent en mode BIOS, que de "nouveaux" PC qui ne démarrent qu'en mode UEFI (cad sans le module CSM "Compatiblity Support Module"). C'est une clé que je pourrais qualifier de "triple-grub" car elle contient deux instances de grub et que c'est grub lui-même qui assure le démarrage de la distribution.
J'entends par BIOS le mode de fonctionnement dans lequel le micro-logiciel du PC passe le contrôle au premier octet du MBR. Au delà, il revient aux logiciels qui traînent par là, à droite ou à gauche, de démarrer le PC.
Je ne comprends pas ce que BIOS hérité peut bien signifier car, à ma connaissance, il n'y a aucune autre manière pour le BIOS de faire démarrer un PC, sauf à vouloir signifier, par ce terme néanmoins bien préférable à l'affreux BIOS legacy, qu'il s'agit d'un démarrage en mode BIOS exécuté par le module CSM de l'UEFI.
À l'occasion de le mise au point de ma clé USB triple-grub ,j'ai fait les constats suivants :
pour le BIOS, je m'étais mis en tête qu'il ne démarrait depuis le MBR d'un disque qui si l'une des 4 partitions principales portait le drapeau "boot". Il n'en est rien. Dans la clé que je viens d'initialiser, aucune des 4 partitions ne porte ce drapeau comme le montre l'extrait ci-dessous
arbiel@arbiel-NK3S-8-S4:~$ s dd if=/dev/sdb bs=1 skip=446 count=64 | hexdump -C
00000000 00 00 02 00 ee ff ff ff 01 00 00 00 ff ef b9 03 |................|
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
64+0 enregistrements lus
64+0 enregistrements écrits
64 octets copiés, 0,00228114 s, 28,1 kB/s
00000040
arbiel@arbiel-NK3S-8-S4:~$
Et cette clé permet pourtant de faire démarrer un vieux PC, en mode BIOS (le vieux PC en question n'est pas le Vostro indiqué dans ma signature, PC que je n'ai ce jours-ci pas sous la main).
Cependant, à une certaine étape de la mise au point de la clé, le PC démarrait systématiquement avec le Windows local (ce vieux PC ne dispose d'ailleurs que de ce seul système). Ayant en tête que ce démarrage résultait de l'absence du drapeau boot dans le MBR, j'en ai placé un sur la première partition avec ghex.
En conséquence de quoi, rien n'a changé dans le démarrage du vieux PC, mais sur mon actuel PC qui ne démarre qu'en mode UEFI, la possibilité de démarrer à partir de la clé avait disparu.
J'ai remis à zéro le drapeau boot du MBR de la clé. Là encore, rien n'a changé pour le démarrage du vieux PC, mais la possibilité de démarrer en mode UEFI avec la clé sur mon actuel PC est réapparue, et elle fonctionne.
Au final, j'ai découvert que dans le BIOS du vieux PC existe une option qui autorise ou interdit le démarrage à partir d'un support externe. Cette option interdisait un tel démarrage. Je l'ai modifiée, et la clé permet maintenant le démarrage du vieux comme de l'actuel PC à partir des fichiers iso enregistrés sur la clé, ou, pour ce qui concerne mon PC actuel, de n'importe quelle iso localisée sur le disque dur, ou tout autre support d'ailleurs. Je n'ai pas testé la possibilité de démarrer depuis un fichier iso enregistré sur le disque dur du vieux PC, cette situation étant, à mes yeux, peu réaliste.
Arbiel
N.B. Le script grub permet aussi de démarrer à partir de tout fichier de configuration de grub, que l'utilisateur aurait modifié à la main, afin de le tester avant la mise en service opérationnel.
Dernière modification par Arbiel (Le 06/10/2022, à 13:37)
Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04, GNOME 3.36.8
24.04 en cours de tests
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.
Hors ligne
#2 Le 23/10/2022, à 05:37
- iznobe
Re : Quelques constats sur les démarrages BIOS et UEFI
Bonjour , je ne me rapelle plus trop , mais il me semble que tu desirais tester des trucs sur de vieux PC , et de nouveaux PC avec le GRUB et les demarrages de systemes .
Bref , tout ca pour dire que dans le BIOS des ordinateurs récents , il existe la possibilité d' activer une option qui permet de virtualiser des systemes en 32 bit a partir de systeme en 64 bit .
ca peut donc te simplifier la tache dans tes experiences sur ta clé et voir si elle fonctionne correctement avec les 2 types de PC sans changer d' ordi , grace a la virtualisation peut etre ?
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#3 Le 24/10/2022, à 15:32
- Arbiel
Re : Quelques constats sur les démarrages BIOS et UEFI
Bonjour iznobe
Je te remercie pour cette information. Je vais interroger internet pour essayer de trouver comment faire.
Ma clef est au point. Elle permet de démarrer des PC sous UEFI et des PC sous BIOS, sous réserve, je suppose, que ces derniers soient 64-bit. Je n'ai pas eu l'occasion de l'essayer sur un PC 32-bit, mais elle ne pourrait fonctionner que si le grub des distributions 64-bit est resté en 32-bit, ce dont je doute fortement.
Pour installer dans le MBR de la clef un grub 32-bit, j'ai voulu charger une distribution 32-bit. grub m'a indiqué que le noyau (j'ai fini par comprendre qu'il devait s'agir de celui de la distribution que je tentais de charger) n'étais pas compatible avec un PC 64-bit, et j'ai abandonné.
Je vais essayer de reprendre le sujet.
Arbiel
Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04, GNOME 3.36.8
24.04 en cours de tests
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.
Hors ligne
#4 Le 02/11/2022, à 12:11
- Nasman
Re : Quelques constats sur les démarrages BIOS et UEFI
Pour le démarrage en mode bios, voici les principes généraux :
- chargement du premier secteur en mémoire vive (à l'adresse 0000:7c00)
- exécution du code en mémoire vive depuis l'adresse 0000:7c00
- pour un mbr Linux, saut à l'adresse 0000:7c65
- stocke des infos comme le numéro du disque reconnu par le bios (disque ou disquette)
- regarde à l'adresse 64 sur quel disque est sensé se trouver le code de core.img (il peut être sur le disque de boot - 80, sur le premier disque dur 81, sur le deuxième disque 82...)
- vérifie les capacités du bios pour savoir s'il prend en compte les adresses LBA ou seulement le système CHS (cylindre, tête, secteur)
- charge les secteurs de core.img (63 secteurs) puis tranfert l'exécution au code présent dans core.img (dont passage en mode protégé)
PC fixe sous Bionic 64 bits et portable avec Focal 64 bits
Hors ligne