Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format
PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:install:refind-boot-uefi [02/09/2013 18:00] mytux [Structure de disque EFI] |
doc:install:refind-boot-uefi [04/09/2013 20:17] mytux [Le BIOS] |
||
---|---|---|---|
Ligne 15: | Ligne 15: | ||
=====Le BIOS===== | =====Le BIOS===== | ||
- | A l'aube de l'ère du premier PC en 1981, [[wp>IBM]] livrait son [[wp>Personal Computer]] 5150, avec un [[wp>firmware]] connu sous le nom de [[wp>BIOS]] (Basic Input/Output System ). \\ | + | A l'aube de l'ère du premier PC en 1981, IBM livrait son Personal Computer 5150, avec un firmware connu sous le nom de BIOS (Basic Input/Output System). |
- | Le BIOS était destiné à être une interface entre le matériel et le système d'exploitation [[wp>DOS]] (Disk Operating System) à l'époque. | + | |
- | Le rôle du BIOS était d'effectuer des tests de base et d'appliquer une séquence linéaire de recherche afin de trouver un périphérique amorçable sur un secteur de 512 octets pouvant être lu et exécuté. \\ | + | Le BIOS est l’ interface logicielle entre le matérielle et le logiciel à un niveau très basique. Il fournit le niveau d’interface le plus bas aux pilotes et périphériques. |
- | Ce premier secteur qu'on appella MBR devait ensuite passer la main à un autre périphérique ou au système d'exploitation((OS)). | + | |
- | Le BIOS est généralement écrit en assembleur et est seulement capable d'exécuter des instructions sur 16 bits alors que les OS modernes eux, exécutent des instructions sur 32 et 64bits. \\ | + | Le BIOS est présent sur une mémoire EEPROM(Electric Erasable Programmable Read-Only Memory) de l’ordinateur. Quand l’ ordinateur est électriquement allumé, ou lors d’un //reset//, un signal (Power Good) est envoyé au microprocesseur. Celui-ci déclenche alors l’exécution du BIOS. |
- | Les OS avancés n'ont pu continuer à utiliser le BIOS sans perte de performance. | + | |
+ | Le BIOS effectue un auto-test de l’ allumage (POST((Power On Self Test)) puis recherche les périphériques, notamment ceux utilisés pour démarrer. Les informations sur le matériel sont stockées de manière permanente dans une petite mémoire CMOS alimentée par une batterie. A la fin du processus, le périphérique de démarrage est sélectionné. | ||
+ | |||
+ | Le BIOS lit et exécute le premier secteur physique du média de démarrage. Il s’agit généralement des 512 premiers octets du premier disque dur, le MBR ou de la partition active, le PBR. | ||
+ | |||
+ | <note> | ||
+ | MBR (Master Boot Record) ou zone d'amorçage. D' une taille de 512 octets il contient dans ces 446 premiers octets une routine (un programme) d' amorçage destiné soit à démarrer le système d' exploitation sur la partiton active, soit un chargeur de démarrage (bootloader). Les 6 derniers octets de ce bloc peuvent contenir une signature numérique optionnelle sur 4 octets et 2 octets nuls. Les 64 octets suivant contiennent ma table des quatre partitions primaires. Le tout finit par une signature 0xAA55 sur 2 octets. | ||
+ | |||
+ | PBR ( (Partiton Boot Record) aussi appellé VBR (Volume Boot Record) ou Partition Boot Sector, est le premier secteur de chaque partition primaire ou logique. Il peut contenir une routine de démarrage d'un système d'exploitation, un chargeur de démarrage, voire rien du tout si la partition n'a pas vocation à être bootée. Quand le BIOS ne contient pas de routine, le BIOS tente de démarrer et d'exécuter la routine du PBR de la parttion marquée active. | ||
+ | </note> | ||
=====EFI et UEFI===== | =====EFI et UEFI===== | ||
- | J'utilise le terme EFI pour se référer soit à EFI 1.X et l'UEFI. | + | J'utilise le terme EFI pour se référer à EFI 1.X et l'UEFI. |
+ | |||
+ | L'EFI (Extensible Firmware Interface) et sa variante plus récente [[wp>UEFI]] (Unified EXtensible Firmware Interface), sont des conceptions de firmwares destinés à remplacer le BIOS. | ||
+ | |||
+ | EFI, a été développé par Intel pour son nouveau processeur Intel-HP Itanium. | ||
- | L'EFI (Extensible Firmware Interface) et sa variante plus récente [[wp>UEFI]] (Unified EXtensible Firmware Interface), sont des conceptions de firmwares destinés à remplacer le BIOS. \\ | + | Les capacités de l'EFI sont bien plus grandes que celles du BIOS. |
- | EFI, a été développé par Intel pour son nouveau processeur //Itanium//. | + | |
- | Les capacités de l'EFI sont bien plus grandes que celles du BIOS, \\ | ||
En effet un EFI peut lire une table de partitions et accéder aux systèmes de fichier, il ne prend pas en charge le multitâche mais peut exécuter des applications en C/C++, pour les versions les plus récentes tel que l' UEFI, des applications graphiques avec prise en charge de la souris. | En effet un EFI peut lire une table de partitions et accéder aux systèmes de fichier, il ne prend pas en charge le multitâche mais peut exécuter des applications en C/C++, pour les versions les plus récentes tel que l' UEFI, des applications graphiques avec prise en charge de la souris. | ||
- | L'amorçage EFI est donc bien plus souple. \\ | + | A l'instar du bios qui utilisait les fichiers cachées //IBMIO.SYS, IBMDOS.SYS (ou IO.SYS, MSDOS.SYS) COMMAND.COM//. L'exécution du programme au standard UEFI lit leur contenu à la recherche d'exécutable UEFI. |
- | Contrairement au bios qui liste simplement les périphériques, l'EFI lit leur contenu à la recherche d'exécutable UEFI. | + | |
- | Cela permet à plusieurs chargeurs de démarrage de coexister sur un même disque dur et d'être accessibles tout en utilisant les mécanismes d'accès aux fichiers normaux. | + | Il est aussi possible de compiler un noyau Linux de sorte à se passer d'un chargeur de démarrage. |
+ | On pourra ensuite créer une entrée dans la NVRAM de notre carte mère à l'aide de **efibootmgr**, du **Shell EFI**, ou d'utiliser un boot manager comme **rEFIND**. | ||
- | Il est aussi possible de compiler un noyau Linux de sorte à le transformer en véritable applications UEFI. \\ | + | [[https://wiki.archlinux.org/index.php/UEFI_Bootloaders#Linux_Kernel_EFISTUB|Voir EFI stub loader sur ArchWiki]] |
- | On pourra ensuite créer une entrée dans la NVRAM de notre carte mère à l'aide efibootmgr, du Shell EFI, ou d'utiliser un boot manager tel que rEFIND. [[https://wiki.archlinux.org/index.php/UEFI_Bootloaders#Linux_Kernel_EFISTUB|Voir EFI stub loader sur ArchWiki]] | + | |
- | Une autre caractéristique de l'EFI est le [[http://fr.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#Lancement_s.C3.A9curis.C3.A9_.28secure_boot.29|Secure Boot]]. \\ | + | Une autre caractéristique de l'EFI est le [[http://fr.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#Lancement_s.C3.A9curis.C3.A9_.28secure_boot.29|Secure Boot]]. |
Cette fonctionnalité est destinée à améliorer la sécurité, en veillant à ce que seuls les chargeurs de démarrage signés avec une clé de chiffrement puissent s'exécuter. | Cette fonctionnalité est destinée à améliorer la sécurité, en veillant à ce que seuls les chargeurs de démarrage signés avec une clé de chiffrement puissent s'exécuter. | ||
Ligne 51: | Ligne 58: | ||
* Tous les périphériques de stockage EFI recherchent un répertoire EFI et listent un point amorce pour chaque fichier ressemblant à *x64.efi *ia32.efi. | * Tous les périphériques de stockage EFI recherchent un répertoire EFI et listent un point amorce pour chaque fichier ressemblant à *x64.efi *ia32.efi. | ||
* Deux formats de tables sont pris en charges, MBR et GPT, cependant je vous recommande le partitionnement sur une table GPT, elle accepte jusqu'à 128 partitions primaires. | * Deux formats de tables sont pris en charges, MBR et GPT, cependant je vous recommande le partitionnement sur une table GPT, elle accepte jusqu'à 128 partitions primaires. | ||
- | * Pour qu'un amorçage UEFI ait lieu sur un disque SATA, ce dernier doit comporter une partition spéciale ESP (EFI File System), cela peut être contourner en utilisant les pilotes de systemes de fichiers EFI. | + | * Pour qu'un amorçage UEFI ait lieu sur un disque fixe, ce dernier doit comporter une partition spéciale ESP (EFI File System), cela peut être contourné en utilisant les pilotes de systèmes de fichier EFI. |
* L'ESP devrait officiellement utiliser un système de fichier FAT32, bien que de nombreuses distributions Linux utilisent un système de fichier FAT16, quelquefois un FAT12. | * L'ESP devrait officiellement utiliser un système de fichier FAT32, bien que de nombreuses distributions Linux utilisent un système de fichier FAT16, quelquefois un FAT12. | ||
<note info>GPT et FAT32 sont un bon compromis.</note> | <note info>GPT et FAT32 sont un bon compromis.</note> | ||
- | * Des utilisateurs ont constaté que certains EFI ont des bugs qui causent des problèmes avec les ESP inférieures à 512MiB (537MB) où des fichiers ne peuvent pas être lus par l'EFI, donc je vous recommande la création d’une ESP d’au moins 550MiB. | + | * Des utilisateurs ont constaté que certains EFI ont des bugs avec certains boot loaders,qui causent des problèmes avec les ESP inférieures à 512MiB (537MB) où des fichiers ne peuvent pas être lus par l'EFI, donc je vous recommande la création d’une ESP d’au moins 550MiB. |
* Chaque chargeur de démarrage EFI doit être stocké dans un sous-répertoire du répertoire EFI sur l'ESP. | * Chaque chargeur de démarrage EFI doit être stocké dans un sous-répertoire du répertoire EFI sur l'ESP. | ||
* Ces répertoires sont généralement nommés d'après le système d'exploitation qui les a créés. \\ Par exemple: | * Ces répertoires sont généralement nommés d'après le système d'exploitation qui les a créés. \\ Par exemple: | ||
+ | * Debiqn met ses fichiers dans EFI/debian | ||
* Ubuntu met ses fichiers EFI dans EFI/ubuntu | * Ubuntu met ses fichiers EFI dans EFI/ubuntu | ||
* Red Hat met ses fichiers dans EFI/redhat | * Red Hat met ses fichiers dans EFI/redhat | ||
Ligne 63: | Ligne 71: | ||
<code>/boot/efi/EFI/ubuntu</code> | <code>/boot/efi/EFI/ubuntu</code> | ||
<code>/boot/efi/EFI/redhat</code> | <code>/boot/efi/EFI/redhat</code> | ||
+ | <code>/boot/efi/EFI/debian</code> | ||
Si vous avez besoin d'installer un chargeur de démarrage indépendamment de votre système d'exploitation, vous pouvez créer votre propre répertoire. \\ | Si vous avez besoin d'installer un chargeur de démarrage indépendamment de votre système d'exploitation, vous pouvez créer votre propre répertoire. \\ | ||
Ligne 70: | Ligne 79: | ||
===== rEFIND, EFI boot manager ===== | ===== rEFIND, EFI boot manager ===== | ||
- | La plupart des ordinateurs avec une architecture x86-64 et un firmware EFI integrent un modules de compatibilité appellé CSM (Compatibility Support Mode), qui est un mode d'émulation du BIOS. D'autres firmwares EFI sont construis au-dessus d' un bios traditionnel, ainsi il est possible de garder les les capacités du bios et booter un ordinateur EFI, en mode legacy. | + | La plupart des ordinateurs avec une architecture x86-64 et un firmware EFI intègrent un module de compatibilité appellé CSM (Compatibility Support Module), qui est un mode d'émulation du BIOS. D'autres firmwares EFI sont construits au-dessus d' un bios traditionnel, ainsi il est possible de garder les capacités du bios et booter un ordinateur EFI, en mode legacy. |
- | Cependant il peut arriver que certaines cartes mères n'offrent pas ces options ou par que souhaitiez par soucis de facilité, pouvoir lancé une image disque d'une distribution Linux n'offrant pas le support pour l' UEFI. Il existe de nombreux chargeur de démarrage EFI, tel que : | + | Cependant il peut arriver que certaines cartes mères n'offrent pas ces options ou que vous souhaitiez par soucis de facilité, utiliser un boot loader plus polyvalent et pouvoir lancer une image disque d'une distribution Linux n'offrant pas le support pour l' UEFI, en mode EFI. |
- | * Elilo | + | Il existe de nombreux chargeurs de démarrage EFI, tel que : |
- | * Grub legacy | + | |
- | * Grub 2 | + | |
- | * Efi stub loader | + | |
- | * Refit | + | |
- | * Refind | + | |
- | Je ne m'attarderais ici que sur rEFIND, qu'on installera sur support amovible. Ensuite vous pourrez, facilement installer un chargeur de démarrage EFI depuis vos dépots offciels. | + | * **Elilo** : Elilo est le plus ancien boot loader stable EFI. |
+ | * **Grub legacy** : La version officiel de Grub legacy ne supporte pas le démarrage EFI,cependant Fedora(>=17) utilise une version qui inclut ce support. | ||
+ | * **Grub 2** : Grub2, peut chaîner des d'autres chargeurs de démarrage EFI, peut lire de nombreux systèmes de fichiers, permet de passé des options au noyau avant le démarrage, détecte et configure d'autres systèmes d'exploitation et fournit un Shell. | ||
+ | * **Efi stub loader** : Fin 2011, les développeurs du noyau Linux, transforme le kernel en application EFI, ainsi il est possible de passer la main au kernel sans utiliser de chargeur de démarrage. (A partir du kernel 3.3.0) | ||
+ | * **Refit** : Refit n'est pas un gestionnaire de démarrage, il ne peut charger le noyau Linux ni tout autre OS, son seul but est de charger un boot loader. | ||
+ | * **Gumniboot** :Gumniboot, est un gestionnaire de démarrage, il est très simple, seulement en mode texte. | ||
+ | * **Refind**: Refind est le couteau Suisse UEFI, c'est un gestionnaire de démarrage, il détecte automatiquement les systèmes et chargeur de démarrage présents sur vos disques. | ||
- | Refind est un un fork REFIT (l'auteur de Refit a abandonné le projet, il n'a pas été mis a jour depuis plus de trois ans), c'est un boot manager et un bootloader, pour les ordinateurs implémentés par l'Extensible Firmware Interface (EFI) et Unified EFI (UEFI). Il faut bien faire la distinction entre un boot loader tel que GRUB, qui charge l'initial RAM disk et le noyau en mémoire et un boot mangager qui charge un boot loader. rEFIND est indépendant du systèmes d'exploitation, c'est une application UEFI qui accède aux même interfaces que le gestionnaire d'amorçage intégré dans le micrologiciel de votre carte mère. | + | Refind est un un fork REFIT (l'auteur de Refit a abandonné le projet, il n'a pas été mis a jour depuis plus de trois ans), c'est un boot manager, pour les ordinateurs implémentés par l'Extensible Firmware Interface (EFI) et Unified EFI (UEFI). Il faut bien faire la distinction entre un boot loader tel que GRUB, qui charge l'initial RAM disk et le noyau en mémoire et un boot mangager qui charge un boot loader. rEFIND est indépendant du systèmes d'exploitation, c'est une application UEFI qui accède aux mêmes interfaces que le gestionnaire d'amorçage intégré dans le micrologiciel de votre carte mère. |
===Caractéristiques :=== | ===Caractéristiques :=== | ||
Ligne 92: | Ligne 102: | ||
* Lancement des chargeurs de démarrahe EFI et Bios. | * Lancement des chargeurs de démarrahe EFI et Bios. | ||
* Lancement des utilitaires EFI Shell et Gptsync. | * Lancement des utilitaires EFI Shell et Gptsync. | ||
- | * Charge les pilotes EFI pour les système de fichiers ou périphériques non supportés nativement par votre firmware. | + | * Charge les pilotes EFI pour les systèmes de fichier ou périphériques non supportés nativement par votre firmware. |
+ | |||
+ | Mais aussi : | ||
+ | |||
+ | * La possibilité d'avoir le choix entre une interface graphique ou texte seulement. | ||
+ | * Graphique configurable, en ajoutant des polices, fond d'écrans et icônes personnalisés. | ||
+ | * Réglage de la résolution d'écran. | ||
+ | * Economisateur d'écran. | ||
| | ||