# Installation avec rEFInd

Certains constructeurs verrouillent certains de leurs ordinateurs récents (avec [UEFI](https://doc.ubuntu-fr.org/uefi "Lien vers le site doc.ubuntu-fr.org pour une explications sur ce qu'est l'UEFI.")) de telle sorte qu'il est impossible d'installer une distribution GNU/Linux comme Primtux. Un des verrouillages consistent à empêcher l'installation de GRUB qui permet le démarrage de la distribution. C'est le cas de HP avec son Probook x360 11 G1 EE qui a été notamment fourni par la région Occitanie sous la dénomination loRdi à ses lycéens et lycéennes ou apprenti⋅es après la 3ème.  
*Remarque : vérifiez bien le modèle de loRdi car selon les années, il ne s'agissait pas du Probook x360 11 G1 EE. Les autres modèles ne sont pas verrouillés de la sorte.*

Heureusement il existe une solution possible avec l'utilitaire rEFInd. Vous pourrez retrouver plus d'informations sur cette page [https://doc.ubuntu-fr.org/refind](https://doc.ubuntu-fr.org/refind).

### <span style="text-decoration: underline;">A- Désactiver le secure boot dans le BIOS de loRdi  
</span>

1. Pour désactiver le Secure Boot, il faut appuyer au démarrage de l'ordinateur sur la **touche Échap avec de petits appuis rapides et répétitifs** afin d'arriver à accèder au menu général du BIOS. Si on a un message demandant de répondre Yes/No, on appuie un coup de plus sur la touche Échap pour avoir un menu graphique avec 6 grandes entrées.  
    *Remarque : Il est fort probable qu'il faille s'y reprendre à plusieurs fois avant de réussir car la "fenêtre de tir" est très limitée. Si on rate, on peut appuyer sur la touche de mise sous tension pendant 5 secondes pour forcer l'extinction puis recommencer (gain de temps car on se fiche de ce que ça pourrait causer à Windows qui sera de toute façon supprimé 😉).*
2. Ensuite on appuie sur la touche **F10** (ou on clique dessus avec la souris ou en tactile) qui permet de régler le BIOS (Bios Setup).
3. On va sur le menu de gauche "**Advanced**" -&gt; **Boot Options** (en haut de la liste) -&gt; **SecureBoot** -&gt; et on choisit **Disable** (à la place de Enable).
4. Ensuite on revient sur le menu de gauche "**Main**" -&gt; "**Save Changes and Exit**" . On confirme en cliquant sur "**Yes**".
5. Lorsque l'ordinateur redémarrage, comme la modification qu'on vient de faire touche un réglage sensible, on a un message qui demande de rentrer un code aléatoire (qui change tout le temps) à 4 chiffres + ENTER pour confirmer le changement effectué dans le BIOS. **On tape ce code directement sur les touches numériques** de la 2e rangée du haut du clavier (sans appuyer sur la touche Shift ou une autre) puis sur la touche **ENTRÉE**. Rien de s'affiche quand on tape mais si c'est bon, l'ordinateur redémarre.

### <span style="text-decoration: underline;">B- Création de la clé USB bootable sous rEFInd</span>

Comme une clé USB bootable basée sur GRUB ne pourra pas démarrer, on va utiliser une clé USB bootable basée sur le bootloader rEFInd. Une ancienne clé de 1 Go fera très bien l'affaire, pas besoin de plus car elle ne contiendra que rEFInd.

<span style="background-color: rgb(255, 255, 0); color: rgb(224, 62, 45);">ATTENTION lorsqu'on utilise la commande "dd", si vous vous trompez de destination, vous pouvez perdre toutes vos données !!! À utiliser avec une EXTRÊME PRUDENCE !!!</span>

**Dans mon cas la clé usb bootable se trouve en /dev/sdc** (et non pas /dev/sdb comme ça devrait être assez souvent le cas, auquel cas, il faudra remplacer "sdc" par "sdb" dans les commandes ci-dessous). Voici donc les différentes commandes **adaptées à ce cas**, à taper dans un terminal (ordinateur sous Linux Mint 21.3) :

\- Pour effacer complètement la clé usb :  
`sudo dd if=/dev/zero of=/dev/sdc count=500MB bs=1 status=progress && sync` C'est une opération qui prend pas mal de temps surtout si la clé a une grosse capacité et/ou est faible en vitesse d'écriture, il faudra donc être patient⋅e. Par exemple, pour une vieille clé de 2 Go Flash Voyager GT, il a fallu 20 minutes.

\- Création de la table de partition :  
`sudo parted /dev/sdc mklabel gpt`

\- Créer une partition fat32 d'au moins 510MB :  
`sudo parted /dev/sdc mkpart primary fat32 1 551`

\- Attribuer le flag "boot" à la partition fat32 :  
`sudo parted /dev/sdc set 1 boot on`

\- Nommer la partition ESP :  
`sudo parted /dev/sdc name 1 ESP`

\- Formater la partition ESP en fat32 :  
`sudo mkfs.fat -F32 /dev/sdc1`

\- Vérifier la clé :  
`sudo parted /dev/sdc print`

Si tout s'est bien passé, vous devriez avoir ces lignes (ou quelque chose de similaire) dans le terminal :

<samp>Modèle : Corsair VoyagerGT (scsi)  
Disque /dev/sdc : 2047MB  
Taille des secteurs (logiques/physiques) : 512B/512B  
Table de partitions : gpt  
Drapeaux de disque :</samp><samp>Numéro Début Fin Taille Système de fichiers Nom Drapeaux  
1 1049kB 551MB 549MB fat32 ESP démarrage, esp</samp>

<samp> </samp>

### <span style="text-decoration: underline;">C- Installation de rEFInd sur la clé usb  
</span>

- On installe le paquet rEFInd avec la commande :  
    `sudo apt install refind`ATTENTION !!! <span style="background-color: rgb(255, 255, 0); color: rgb(224, 62, 45);">Lors du dépaquetage, il faut REFUSER l'installation de rEFInd sur son ordinateur</span> !!!
- On installe rEFInd sur sa clé USB (dans mon cas, elle est en sdc1) avec la commande :  
    `sudo refind-install --usedefault /dev/sdc1 --alldrivers`

Si tout s'est bien passé, on doit obtenir un message de ce style :  
<samp>ShimSource is none  
Installing rEFInd on Linux....  
Note: IA32 (x86) binary not installed!  
Copied rEFInd binary files  
Copying sample configuration file as refind.conf; edit this file to configure  
rEFInd.</samp>

La clé est prête !!!

### <span style="text-decoration: underline;">D- Installation de rEFInd sur loRdi  
</span>

- On branche la clé USB et on démarre loRdi en choisissant la clé USB (appuis répétitifs sur la touche F9 au démarrage).
- Dans le menu "EFI Boot Device", on doit voir la clé USB dans "USB Device" et on clique dessus.
- Une fenêtre "rEFInd" apparaît. On peut naviguer sur les différentes parties à l'aide des touches fléchées et on valide le choix en appuyant sur la touche ENTRÉE.  
    *Remarque : Attention, le temps est limité : pour ne pas être "pressé⋅e", il suffit d'appuyer sur une touche fléchée pour arrêter le compte-à-rebours initial de 20 secondes.*
- Là, on voit qu'il est possible d'installer rEFInd dans l'EFI existant de Windows (1ère icone avec une flèche bleue dans un **carré bleu "Install rEFInd to disk"**) et on le fait.
- On nous demande de choisir une partition pour installer rEFInd mais comme il n'y en a qu'une, on appuie sur la touche **ENTRÉE**.
- Puis on appuie à nouveau sur **ENTRÉE** pour revenir au menu principal de rEFInd.
- On sélectionne la croix rouge et on valide pour sortir de rEFInd.
- rEFInd réapparaît pendant 20 secondes avant de démarrer automatiquement sur Windows.
- On peut éteindre l'ordinateur.

Désormais, lorsqu'on démarrera l'ordinateur on tombera sur le le menu rEFInd et les clés USB d'installation habituelles seront reconnues (Ventoy et Easy2Boot).

### <span style="text-decoration: underline;">E- Installation de Primtux sur loRdi  
</span>

- On branche la clé USB d'installation de Primtux et on allume loRdi.
- Le menu rEFInd apparaît et on choisit la partition où se trouve Ventoy : on voit 2 pingouins et on choisit le premier où est indiqué "Boot EFI/BOOT/grubx64\_real.efi from VTOYEFI".
- Là, dans la fenêtre Ventoy, on choisit l'image Primtux (ou d'une distribution autre) voulue.
- Dans la nouvelle fenêtre, on choisit "Boot in normal mode".
- On arrive sur le menu permettant de tester Primtux en Live ou de l'installer. On choisit de l'installer.
- Lors de l'installation, j'ai choisi de complètement supprimer les anciennes partitions (notamment EFI de Windows ce qui va poser quelques petits problèmes par la suite... mais vite surmontés).
- L'installation se termine par un message d'erreur fatale "Impossible d'installer GRUB dans /dev/sda" mais c'est "normal"... On clique sur "Valider".
- On redémarre l'ordinateur et là on arrive sur une belle page noire avec l'invite "grub&gt;". Qu'à cela ne tienne, on recommence l'opération permettant d'installer rEFInd sur le disque dur (voir partie précédente "D- Installation de rEFInd sur loRdi") et une fois la réinstallation de rEFInd faite, on redémarre à partir du menu (double flèches jaunes).
- Maintenant on retrouveau démarrage le menu rEFInd et on ne choisit pas la première partition Linux avec le sigle d'Ubuntu (qui s'appuie sur GRUB) mais celle avec le pingouin GNU/Linux avec un disque dur en bas à droite.
- Primtux se lance et on ce connecte en tant que prof (pieuvre Poe) avec le mot de passe "tuxprof".

- Pour éviter des conflits ultérieurs lors de la mise à jour du noyau/kernel, il est nécessaire de désinstaller complètement Grub. Pour cela, une fois qu'on a démarré Primtux en tant que prof (attention le pavé numérique est activé par défaut et on le désactive en appuyant sur les touches **Fn + Ver Num**), dans un terminal, taper cette commande :  
    `sudo apt-get -y remove grub2-common grub-common grub-pc grub-pc-bin`
- Quand une fenêtre surgissante affiche un avertissement concernant la suppression de Grub, on confirme en appuyant sur "**Oui**".
- Maintenant au démarrage, rEFInd affichera pendant 20 secondes une fenêtre de démarrage. Le choix par défaut sera le système choisi lors du démarrage précédent. Primtux correspond au pingouin GNU/Linux.
- Diminution du délai de connexion automatique de 20 à 5 secondes en éditant le fichier /boot/efi/EFI/refind/refind.conf et en modifiant la ligne timeout en mettant "timeout 5" à la place de "timeout 20". Pour éditer ce fichier, taper la commande (je ne sais pour quelle raison mais la complétion automatique ne marche pas comme si ce fichier n'existait pas) :  
    `sudo nano /boot/efi/EFI/refind/refind.conf`

Attention : Lors d'une mise à jour du kernel/noyau dans Primtux (pas fréquent mais ça arrive), le choix par defaut de rEFInd est perdu. Il faudra alors à nouveau choisir le pingouin au redémarrage.