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 [14/08/2013 14:13] mytux [Installation] |
doc:install:refind-boot-uefi [18/08/2013 19:47] mytux [rEFIND] |
||
---|---|---|---|
Ligne 7: | Ligne 7: | ||
- | ====== UEFI & EFI ( EN chantier )====== | + | ====== UEFI & EFI====== |
Toutes les versions 64bits des PC qui exécutent Windows certifié par le programme de certification Windows utilisent l’UEFI à la place du BIOS. | Toutes les versions 64bits des PC qui exécutent Windows certifié par le programme de certification Windows utilisent l’UEFI à la place du BIOS. | ||
Ligne 17: | Ligne 17: | ||
* Suivi : {{tag>en-chantier à-tester à-placer}} | * Suivi : {{tag>en-chantier à-tester à-placer}} | ||
- | ===== EFI & UEFI ===== | + | =====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 ). Le BIOS était destiné à être une interface entre le matériel et le système d'exploitation [[wp>DOS]] (Disk Operating System) à l'époque. | ||
- | A l'aube de l'ère du PC en 1981, IBM a livré son Personal Computer 5150 un firmware connu sous le nom de Basic Input/Output System (BIOS). | + | Le rôle du BIOS était d'éffectuer 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 pouvantt être lus et éxécuté. Ce premier secteur qu'on appella MBR devait ensuite passer la main à un autre périphérique ou au système d'exploitation. |
- | Le BIOS était destiné à être une interface entre plusieurs périphériques et le Disk Operating System (DOS). | + | |
- | Au fil des ans, le BIOS a été de moins en moins utilisé, car il était ecrit sur 16 bits, les systèmes d'exploitation ont évolué sur 32 bits et, maintenant, en 64-bit. Les OS avancés n'ont puent continuer à utiliser le Bios sans pertes de performance. | + | Le bios est généralement écrit en assembleur et est seulement capable d'éxécuté des instructions sur 16 bits alors que les OS modernes eux, éxécutent des instructions sur 32 et 64bits. Les OS avancés n'ont puent continuer à utiliser le Bios sans pertes de performance. |
+ | =====EFI et UEFI===== | ||
- | Aujourd'hui, donc, le rôle principal du BIOS est de commencer le processus de démarrage. Une fois que le système est démarré, le BIOS n’a plus d’intérêt. Pourtant, le démarrage de l'ordinateur est une tâche importante, et la vieille conception du BIOS créé est limitée. | + | J'utilise le terme EFI pour se référer soit à EFI 1.X et l'UEFI. |
- | =====EFI et UEFI===== | + | L'EFI (Extensible Firmware Interface) et sa variante plus récente, [[wp>UEFI]] (Unified EXtensible Firmware Interface), sont des conceptions de firmware qui sont destinés à remplacer le BIOS. EFI, a été dévelloppé par Intel pour sont nouveaux processeurs Itanium. |
+ | |||
+ | |||
+ | Les capcités de l'EFI sont bien plus grandes celles du BIOS, EN effet un EFI peut lire une tables de partitions et accèder au systèmes de fichiers, il ne prend pas en charge le multitâches mais peut éxé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, contrairement au bios qui lui liste simplement les périphériques, il lit leurs contenu à la recherche d'éxécutable UEFI. | ||
+ | |||
+ | Cela permet à plusieurs chargeurs de démarrage de coexister sur un même disque dur, et d'être accessible tout en utilisant des mécanismes d'accès aux fichiers normaux. | ||
+ | |||
+ | Il est aussi possible de compiler un noyau Linux de sorte à le transformer en véritable applications UEFI, on pourra ensuite créer une entrée dans la NVRAM de notre carte mère à l'aide efibootmgr, du Shell EFI, ou utiliser un boot manager tel que rEFIND. [[https://wiki.archlinux.org/index.php/UEFI_Bootloaders#Linux_Kernel_EFISTUB|Voir EFI stub loader sur ArchWiki]] | ||
- | J'utilise le terme EFI pour se référer soit à EFI 1.X ou l'UEFI. | + | 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, pourront s'éxécuter. |
- | L'Extensible Firmware Interface (EFI) et sa variante plus récente,UEFI (Unified EXtensible Firmware Interface), sont des conceptions de firmware qui sont destinés à remplacer le BIOS. | + | =====Structure de disque EFI===== |
- | Les implémentations EFI sont plus grandes que les implémentations du BIOS, un EFI peut lire les tables de partitions et systèmes de fichiers, ce qu’ un BIOS ne pourra pas faire. | + | Selon la version et le constructeur de votre fimware, ces règles peuvent variées cependant voici un aperçu. |
- | Cela permet à plusieurs chargeurs de démarrage de coexister sur le disque dur, et d'être accessible tout en utilisant des mécanismes d'accès aux fichiers normaux. | + | Pout ous périphériqued de stockage EFI recherche un répertoire EFI, et liste un point amorce pour chaque fichier ressemblant à *x64.efi *ia32.efi. |
- | Une autre caractéristique de l'EFI est le **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, pourront s'éxécuter. | + | Deux format de tables sont pris en charges, MBR et GPT, cependant je vous recommadent le partitionnement sur une table GPT, elle accèpte jusqu' à 128 partitions primaires. |
- | =====Structures de disques EFI===== | + | |
- | Lorsque vous configurez un ordinateur pour démarrer en mode UEFI, il est généralement préférable de créer un disque GPT. | + | Pour qu'un amorçage UEFI est lieu sur un dique sata, cd dernier doit comporter une partition spéciale ESP (EFI File System), ceci n'est valable pour un dique USB. |
- | EFI repose sur une partition spéciale, connue sous le nom de la partition système EFI (ESP), pour stocker des données EFI spécifiques. | + | L'ESP devrait officiellement utiliser un système de fichiers FAT32, bien que de nombreuses distributions Linux utilise un système de fichiers FAT16, quelque fois FAT12. |
- | L'ESP devrait officiellement utiliser un système de fichiers FAT32, bien que de nombreuses distributions Linux utilise un système de fichiers FAT16. | + | <note>GPT et FAT32 est un bon compromis.</note> |
Certains utilisateurs ont constaté que certains EFI ont des bugs qui causent des problèmes avec les ESP infèrieure à 512MiB (537MB), certain fichiers ne peuvent être lus par l'EFI, donc je vous recommande la création d’ une ESP d’ au moins 550MiB. | Certains utilisateurs ont constaté que certains EFI ont des bugs qui causent des problèmes avec les ESP infèrieure à 512MiB (537MB), certain fichiers ne peuvent ê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 est 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, Ubuntu met ses fichiers EFI dans EFI / ubuntu, et Red Hat met ses dans EFI / redhat. | + | *Ubuntu met ses fichiers EFI dans EFI/ubuntu |
+ | *Red Hat met ses dans EFI/redhat | ||
- | Une fois Linux installé, l'ESP est monté dans / boot / efi, de sorte que l’arborescence soit : / boot / efi / EFI / ubuntu, et: / boot / efi / EFI / redhat. | + | Une fois Linux installé, l'ESP est monté dans **/boot/efi**, de sorte que l’arborescence soit : |
+ | <code>/boot/efi/EFI/ubuntu</code> | ||
- | Si vous avez besoin d'installer un chargeur de démarrage indépendamment de de votre système d'exploitation, vous pouvez créer votre propre répertoire. Exemple : EFI / refind pour Refind. | + | <code>/boot/efi/EFI/redhat</code> |
+ | |||
+ | Si vous avez besoin d'installer un chargeur de démarrage indépendamment de de votre système d'exploitation, vous pouvez créer votre propre répertoire. | ||
+ | |||
+ | Exemple : EFI/refind pour Refind. | ||
Ligne 65: | Ligne 82: | ||
Refind est un un fork REFIT, c'est un boot manager pour les ordinateurs implémanté par l'Extensible Firmware Interface (EFI) et Unified EFI (UEFI). | Refind est un un fork REFIT, c'est un boot manager pour les ordinateurs implémanté par l'Extensible Firmware Interface (EFI) et Unified EFI (UEFI). | ||
- | Il faut faire la distinction entre un boot loader tel que GRUB et un boot mangager, comme rEFIND, tous les ordinnateurs basé sur EFI incluent boot manager. | + | Il faut faire la distinction entre un boot loader tel que GRUB et un boot manager. |
- | Il est assez simple d' utilistation, polyvalent et va nous permettre de booter une image iso n'ayant pas le support pour l'EFI. | + | rEFIND est indépendant du systèmes d'exploitation, c'est une application UEFI qui accèdent aux même interfaces que le gestionnaire d'amorçage intégré dans le micrologicielle de votre carte mère. |
- | http://www.rodsbooks.com/refind/ | + | Vous pouvez l'installer sur de multiple support, ils scanera votre disque à la recherche d'un fichier amorce que ce soit Windows, Uni, Mac ou Linux, aussi bien en mode Bios Legacy qu'en EFI. |
- | ====Téléchargement==== | + | |
+ | <note>Il peut être utile d'avoir une clé USB de secours avec une partition réservé juste pour rEFIND en cas de soucis au boot, vous pourrez alors démarrer votre OS indépendemment et ainsi débuguer votre EFI.</note> | ||
+ | |||
+ | |||
+ | |||
+ | [[http://www.rodsbooks.com/refind/|Site officiel de rEFIND]] | ||
+ | |||
+ | =====Obtenir rEFIND===== | ||
Aller à la page de téléchargement de [[http://www.rodsbooks.com/refind/getting.html|rEFIND]]. | Aller à la page de téléchargement de [[http://www.rodsbooks.com/refind/getting.html|rEFIND]]. | ||
Ligne 78: | Ligne 102: | ||
Dans cet exemple je vais utiliser une image disque USB. | Dans cet exemple je vais utiliser une image disque USB. | ||
+ | |||
Après décompression je copie l' image disque à l'aide de <dd>, afin de récupérer les fichiers de l'image. | Après décompression je copie l' image disque à l'aide de <dd>, afin de récupérer les fichiers de l'image. | ||
Ligne 91: | Ligne 116: | ||
</code> | </code> | ||
- | =====EFI file System===== | + | =====Système de fichiers EFI===== |
Une fois les fichiers récupérer nous devons créer une table de partition GPT, un ESP et une partition FAT32 sur notre clé USB, pour acceuillir notre bootmanager, et notre image iso. | Une fois les fichiers récupérer nous devons créer une table de partition GPT, un ESP et une partition FAT32 sur notre clé USB, pour acceuillir notre bootmanager, et notre image iso. | ||
Ligne 114: | Ligne 139: | ||
$ n | $ n | ||
$ 206848 # 206848 par défault à la suite de l'ESP | $ 206848 # 206848 par défault à la suite de l'ESP | ||
- | $ +2000M # 2 GB, je vois large. | + | $ +1000M # 1 GB, à adapter selon la taille de votre iso. |
$ 8300 # 8300 (Linux File System) | $ 8300 # 8300 (Linux File System) | ||
$ w # On sauvegarde | $ w # On sauvegarde | ||
Ligne 137: | Ligne 162: | ||
Montage des périphériques : | Montage des périphériques : | ||
+ | |||
<code> | <code> | ||
- | $ sudo mount /dev/sdb1 /media/usb0 | + | $ sudo mount /dev/sdx1 /media/usb0 |
- | $ sudo mount /dev/sdb2 /media/usb1 | + | $ sudo mount /dev/sdx2 /media/usb1 |
</code> | </code> | ||
Copie de rEFIND sur la premiere partition : | Copie de rEFIND sur la premiere partition : | ||
+ | |||
<code> | <code> | ||
- | $ sudo cp -r EFI shellx64.efi /media/usb0 # shellx64.efi selon votre architecture (MAC) | + | $ sudo cp -r EFI shellx64.efi /media/usb0 # x64 ou ia32 selon votre architecture (ia32 sur MAC) |
$ cd /media/usb0 | $ cd /media/usb0 | ||
$ ls | $ ls | ||
bootia32.efi bootx64.efi drivers_ia32 drivers_x64 icons refind.conf | bootia32.efi bootx64.efi drivers_ia32 drivers_x64 icons refind.conf | ||
- | $ rm -r bootia32.efi drivers_ia32 # Supression des fichiers inutiles | + | $ rm -r bootia32.efi drivers_ia32 #Supression des fichiers inutiles |
- | $ mv refind.conf exemple.conf # Jeter un oeil à ce fichier, il y a plein de commentaire, nous on en créera un nouveau. | + | $ mv refind.conf exemple.conf #Jeter un oeil à ce fichier, il y-a plein de commentaire. |
</code> | </code> | ||
Ensuite installons notre iso avec Unetbootin : | Ensuite installons notre iso avec Unetbootin : | ||
- | </code> | + | <code> |
$ sudo apt-get install unetbootin | $ sudo apt-get install unetbootin | ||
$ sudo unetbootin & | $ sudo unetbootin & | ||
</code> | </code> | ||
- | Bon, là pas besoin de moi vous installez une iso qui vous fais des misères (Crunchbang, LMDE) sur sdb2. | + | Bon là pas besoin de moi, vous installez une iso qui vous fais des misères (Crunchbang, LMDE) sur /dev/sdx2. |
+ | |||
+ | Dans cet exemple j'utilise Crunchbang. | ||
+ | |||
+ | =====Configuration===== | ||
+ | On approche de la fin, et on entame la partir la plus marrante. | ||
+ | |||
+ | Toutes la configuration ce fait dans le fichier refind.conf. | ||
+ | |||
+ | Jeter un oeil sur la page de Roderick W. Smith, [[http://www.rodsbooks.com/refind/configfile.html|Configuring the Boot manager]]. | ||
+ | |||
+ | Et aussi, le fichier example.conf qu'on a rennomer tout à l'heure. | ||
+ | |||
+ | <code> | ||
+ | $ nano refind.conf | ||
+ | </code> | ||
+ | |||
+ | Mon fichier refind.conf: | ||
+ | |||
+ | <code> | ||
+ | timeout 10 | ||
+ | |||
+ | icons_dir EFI/boot/icons | ||
+ | |||
+ | textonly | ||
+ | |||
+ | use_graphics_for linux | ||
+ | |||
+ | showtools shell, about, reboot, exit | ||
+ | |||
+ | scan_driver_dirs EFI/boot/drivers_x64 | ||
+ | |||
+ | scanfor internal,external,optical,manual | ||
+ | |||
+ | scan_delay 1 | ||
+ | |||
+ | scan_all_linux_kernels | ||
+ | |||
+ | dont_scan_dirs EFI/linuxmint,boot | ||
+ | |||
+ | default_selection Crunch_Live | ||
+ | |||
+ | menuentry Crunch_Live { | ||
+ | icon /EFI/boot/icons/os_debian.icns | ||
+ | volume 1: | ||
+ | loader /live/vmlinuz | ||
+ | initrd /live/initrd.img | ||
+ | options "ro root=UUID=C847-7244 add_efi_memmap config boot=live" | ||
+ | osype Linux | ||
+ | graphics off | ||
+ | } | ||
+ | |||
+ | menuentry Crunch_Install { | ||
+ | icon /EFI/boot/icons/os_debian.icns | ||
+ | volume 1: | ||
+ | loader /install/vmlinuz | ||
+ | initrd /install/initrd.gz | ||
+ | options "ro root=UUID=C847-7244 add_efi_memmap file=/cdrom/install/crunchbang.cfg" | ||
+ | osype Linux | ||
+ | graphics off | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | <note important> | ||
+ | rEfind est assez capricieux, votre fichier refind.conf ne doit pas avoir un pet de travers, aussi quelquefois un simple reboot permet de lancer votre kernel tranquillement. oO | ||
+ | C'est pour cela qu'il n' ya pas de commentaires dans le fichier, ci-dessus. | ||
+ | </note> | ||
+ | |||
+ | |||
+ | Pour vous aider vous aurez besoin du fichier syslinux.cfg générer par Unetbootin : | ||
+ | |||
+ | <code> | ||
+ | $ cd /media/usb1 | ||
+ | $ cat syslinux.cfg | ||
+ | default menu.c32 | ||
+ | prompt 0 | ||
+ | menu title UNetbootin | ||
+ | timeout 100 | ||
+ | |||
+ | label unetbootindefault | ||
+ | menu label Default | ||
+ | kernel /ubnkern | ||
+ | append initrd=/ubninit boot=live config quiet | ||
+ | |||
+ | label ubnentry0 | ||
+ | menu label Live Session | ||
+ | kernel /live/vmlinuz | ||
+ | append initrd=/live/initrd.img boot=live config quiet | ||
+ | |||
+ | label ubnentry1 | ||
+ | menu label Install | ||
+ | kernel /install/gtk/vmlinuz | ||
+ | append initrd=/install/gtk/initrd.gz video=vesa:ywrap,mtrr vga=788 quiet file=/cdrom/install/crunchbang.cfg | ||
+ | |||
+ | label ubnentry2 | ||
+ | menu label Memory Test | ||
+ | kernel /live/memtest | ||
+ | append initrd=/ubninit | ||
+ | |||
+ | $ | ||
+ | </code> | ||
+ | |||
+ | ===== Utilisation ===== | ||
+ | |||
+ | C'est le moment de vérité, on peut redémarer. Dans l'interface de votre EFI, vous choisissez votre clé USB, la première partition si vous avez le choix. | ||
+ | Là normalement rEFIND se lance, il doit tout d'abord scanner vos disques. En mode texte vous devriez avoir le choix entre votre os principal et ensuite les menuentry que l'on a ajouter dans notre refind.conf. | ||
+ | |||
+ | Essayons Crunch_Live ... | ||
+ | |||
+ | Si vous avez de la chance, il se lance, sinon comme je vous l'ai dit plus haut, il est très capricieux, il ne doit pas y avoir un pet de travers, dans votre fichier de configuration. | ||
+ | |||
+ | |||
+ | Enfin pas de paniques, il y a le **shell UEFI** pour éditer ce fichier sans avoir besoin de redémarrer, je l'ai mis dans les tools, un peu plus haut. | ||
+ | |||
+ | |||
+ | |||
+ | ===== UEFI Shell ===== | ||
+ | |||
+ | Si vous voulez editer vos fichiers, démarrer linux en ligne de commande ou ajouter une nouvelle entrée dans votre NVRAM, c'est là que ça se passe. | ||
+ | |||
+ | <note> | ||
+ | Le Shell EFI est en Qwerty, entraîné vous un peu avant ! Il faut que vous repériez ou sont les caractères spéciaux ! | ||
+ | </note> | ||
+ | |||
+ | Dans le menu de rEFIND, vous choisissez Shell EFI, là du texte jaune sur un fond noir c'est le Shell EFI. | ||
+ | |||
+ | La syntaxe ressemble beaucoup à DOS. | ||
+ | |||
+ | Les systèmes de fichiers sont représentés par des fs0, fs1, fs3 etc... , fs0: étant la première partition de votre clef USB, si vous lancez ce Shell depuis celle-ci. L'antislash est de rigueur. | ||
+ | |||
+ | Exemple : | ||
+ | <code> | ||
+ | shell> cd fs0:\EFI\boot | ||
+ | fs0:\EFI\boot\> edit refind.conf | ||
+ | </code> | ||
+ | |||
+ | |||
+ | Quelques commandes utiles : | ||
+ | |||
+ | *cd : ce déplacer. | ||
+ | *rm : supprimer un fichier | ||
+ | *mkdir : créer un répertoire | ||
+ | *map : pour lister vos périphériques | ||
+ | *map -t hd : pour filtrer la sortie, sur vos disques de USB et sata. | ||
+ | *edit : editeur de texte, f2 pour enregistrer et f3 pour quitter | ||
+ | *exit : quitter le shell | ||
+ | *reset : reboot | ||