Contenu | Rechercher | Menus
Cette page est en cours de rédaction.
Apportez votre aide…

rEFind

rEFInd est un utilitaire Open-source, fork de rEFIt qui crée une interface graphique de démarrage sur Macintel permettant d'installer une distribution Linux comme Ubuntu ou d'utiliser Bootcamp sans appuyer sur la touche option au démarrage.

Pré-requis

Installation en mode non sécurisé

Avec Windows

La bonne idée est d'installer REFIND, de vérifier qu'il fonctionne en l'utilisant, puis virer éventuellement windows au dernier moment en demandant à ubuntu d'utiliser la partition C: lorsque la taille disque est insuffisante pour installer un dual boot (en prenant le choix "autre chose"?). .

Il est d'abord nécessaire de connaître la version disponible pour windows. puis de la télécharger puis il faut dézipper le fichier.

Ce Document explique assez bien comment faire l'installation

Lancer windows powerShell(admin) .

Frapper la commande suivante mountvol S: /S afin de disposer de la partition de boot.

Se positionner dans le répertoire qui a reçu le dézippage ci-dessus.

Par exemple, il peut être sous C:/Utilisateurs/xxxxxxxxx/Téléchargements/Refind-bin-0.11.2/Refind-bin-0.11.2 . On frappera donc les commandes suivantes:

  • cd C:
  • cd users
  • cd Le_nom_de_l'utilisateur
  • cd Downloads
  • cd refind*
  • cd refind* (Il y en a bien deux à faire à cause de l'exemple fourni ) afin d'être bien positionné pour commencer la copie qu'on fera avec la commande suivante::
  • xcopy /E refind S:\EFI\refind\ surtout ne pas oublier de terminer par un anti-slash

Allons donc dans le répertoire ESP via la commande cd S:\EFI\refind puis faire la commande dir pour lister le contenu.. Je propose de ne supprimer aucun driver.

Fabriquer le fichier de paramétrage en conservant l'exemple avec la commande copy refind.conf-sample refind.conf .

Afin de conserver le gestionnaire de démarrage de windows, créer un nouveau gestionnaire avec la commande suivante:

bcdedit /copy "{bootmgr}" /d "Refind " 

Cela va retourner un GUID qu'il faut copier et mettre à la place de celui indiqué dans la commande qui suit. Remplacer aussi XXX par X64 ou IA32 suivant l'environnement et l'exécuter:

bcdedit /set "{GUID}" path \EFI\Refind\Refind_XXX.EFI 

Cette commande doit mettre une entrée dans la NVRAM si le bios EFi est de qualité.

Booter pour vérifier que refind a bien mis en route. Brancher alors la clé USB. Demander à refind de se rafraîchir par la commande esc et demander à refind de sélectionner le fichier de boot de la clé USB (boot Fallback boot loader) puis faire l'installation. Au boot suivant, refind saura proposer ubuntu.

Version UBUNTU EFI 32 bits

La version 32 bits est souvent nécessaire pour faire démarrer des ordinateurs récents de petits prix qui ont un bios efi en 32 bits mais qui sont capables d'exécuter des applications 64 bits. Cette procédure va considérer que l'installation se fait uniquement avec le support d'installation. Pour l'instant à partir de 17.10 il n'est pas possible de l'utiliser, le bug se trouve ici.

Version 16.04. Lubuntu en 32 bits Le paquet 32 bits. Le paquet 64bits. FIXME incompréhensible? La suite montre que c'est le même fichier à utiliser et que cela s'installe sans difficulté. Le tout va être de le faire dans le vrai répertoire EFI qui n'existe pas du support USB au lieu de l'installer dans le fichier casper…… Donc une solution.

  1. Telécharger une version 32 bits et faites une clé USB avec vos outils habituels (unetbootin liliusbcreator).
  2. Booter avec la clé USB sur un ordinateur capable de booter normalement en legacy puisqu'on dispose d'une version non EFI.
  3. Choisir "essayer avant d'installer".
  4. Mettre le clavier en français avec la commande setxkbmap fr .
  5. Démonter le support d'installation avec la commande sudo umount -vlrf /cdrom .
  6. Identifier la partition de la clé USB via la commande sudo blkid | grep vfat (exemple /dev/sdd1) .
  7. Créer le répertoire de montage via la commande sudo mkdir /boot/efi .
  8. Monter la partition afin de pouvoir écrire dedans via la commande sudo mount -v /dev/sdd1 /boot/efi .
  9. Créer le répertoire absent via la commande sudo mkdir /boot/efi/EFI .
  10. Se positionner dans ce répertoire via la commande cd /boot/efi/EFI .
  11. Télécharger le fichier nécessaire via la commande sudo wget http://ppa.launchpad.net/rodsmith/refind/ubuntu/pool/main/r/refind/refind_0.11.2-0ppa1_i386.deb .
  12. Installer l'application via la commande sudo apt install ./refind_0.11.2-0ppa1_i386.deb .
  13. Vérifier que l'installation s'est bien passée via la commande ls -Rls .
  14. Modifier le fichier de configuration de refind pour lui dire d'utiliser les fichiers de boot en legacy via la commande sudo gedit ./BOOT/refind.conf ,??????? y mettre le paramètre scanfor biosexternal,internal,external,optical,manual
  15. Quitter le répertoire via la commande cd / .
  16. Démonter la partition via la commande sudo umount /dev/sdd1 .
  17. Arrêter l'ordinateur via la commande shutdown now .

Il ne vous reste plus qu'à aller sur l'ordinateur cible de l'installation et à booter avec cette clé puis faire l'installation.

Attention je crains un gros problème ; Je ne sais pas comment on va trouver comment lancer cette installation.
CONSTAT: Refind ne liste que les fichiers de terminaison EFI présents dans le répertoire EFI\BOOT des partitions ESP (le drapeau) des partitions présentes dans le support USB

Lorsque l'installation est finie, il ne reste plus qu'à dupliquer le contenu de ce répertoire EFI dans le répertoire EFI de la machine. Il existe un script. Juste le temps de le retrouver.

Version UBUNTU EFI 64 bits

C'est la version standard.

A partir d'une live-usb en méthode manuelle

  1. Telécharger une version 64 bits et faites une clé USB avec vous outils habituels (unetbootin liliusbcreator).
  2. Bootez et choisissez "essayer avant d'installer".
  3. Mettre le clavier en français avec la commande setxkbmap fr.
  4. Démonter la structure de boot qui contient celle de l'ordinateur installé car ce n'est pas lui qui doit recevoir refind mais la clé USB via la commande sudo umount -v /boot/efi .
  5. Démonter le support d'installation avec la commande sudo umount -vlrf /cdrom .
  6. Identifier la partition de la clé USB via la commande sudo blkid | grep vfat (exemple /dev/sdb1) .
  7. Monter la partition via la commande suivante sudo mount -v /dev/sdb1 /boot/efi .
  8. Se positionner sur la structure EFI via la commande suivante cd /boot/efi/EFI .
  9. Installer le paquet avec les commandes suivantes sudo apt-add-repository ppa:rodsmith/refind && sudo apt update && sudo apt install refind .
  10. Vérifier que le package est bien installé avec la commande sudo ls -Rlt /boot/efi/EFI
  11. Ecraser le fichier de boot existant avec la fichier de boot de refind avec la commande suivante sudo cp -v /boot/efi/EFI/refind/refind_x64.efi /boot/efi/EFI/boot/bootx64.efi .
  12. Quitter le répertoire via la commande cd / .
  13. Démonter la partition via la commande sudo umount /dev/sdb1 .
  14. Arrêter l'ordinateur via la commande shutdown now .

Il ne vous reste plus qu'à aller sur l'ordinateur cible de l'installation et à booter avec cette clé puis faire l'installation.

  1. Au moment du boot, vous aurez une liste de tous les fichiers EFI disponibles sur la machine.
  2. Vous choisirez le fichier EFI\refind\refind-x64.efi de la partition FAT qui a une taille identique à celle de la clé USB.
  3. Vous aurez alors une liste de fichiers présentés très classiquement par leur icône.
  4. Vous choisirez le fichier EFI\BOOT\grubx64.efi de la partition FAT qui a une taille identique à celle de la clé USB.
  5. Vous aurez alors le menu classique qui vous permet le choix d'essayer ou d'installer. Lorsque vos essais seront faits et que votre installation sera terminée, il ne faut pas arrêter mais il faut continuer pour installer l'application refind sur votre ordinateur à partir de cette clé USB d'installation. Pour cela, il est nécessaire de faire les actions suivantes.
  6. Démonter la structure EFI afin de pouvoir rejouer ce scénario via la commande suivante sudo umount -v /boot/efi
  7. Revérifier où sont les partitions EFI de la clé USB et du (des) disque(s) dur(s) via la commande sudo blkid | grep vfat
  8. Monter la partition EFI de la clé usb dans le répertoire /mnt via la commande sudo mount -v /dev/sdb1 /mnt (c'est sdb1 dans l'exemple).
  9. Monter une partition EFI d'un disque dur dans le répertoire /boot/efi via la commande sudo mount -v /dev/sda2 /boot/efi (c'est sda2 dans l'exemple).
  10. Copier l'application de la clé USB dans la partition ESP via la commande sudo cp -Rv /mnt/EFI/refind /boot/efi/EFI .
  11. Fabriquer l'entrée de boot EFI via la commande sudo efibootmgr –create –disk /dev/sda –part 2 –label "REFIND" – loader "\EFI\refind\refind_-x64.efi" .
  12. Vérifier via la commande sudo efibootmgr -v .
  13. Arrêter l'ordinateur via la commande shutdown now .
  14. Débrancher la clé et rebooter normalement.
  15. Il ne vous reste plus qu'à paramétrer le fichier de configuration.

A partir d'une live-usb en automatisé

  1. Télécharger une version 64 bits et faire une clé USB avec les outils habituels (unetbootin, liliusbcreator, multisystem…)
  2. Booter et choisir "essayer avant d'installer".
  3. Mettre le clavier en français si nécessaire avec la commande setxkbmap fr.
  4. Faire l'installation classiquement.
  5. Lorsque l'installation est finie, installer le logiciel avec les commandes suivantes:
sudo apt-add-repository ppa:rodsmith/refind 
sudo apt-get update
sudo apt-get install refind 

Un message propose d'installer directement dans la partition ESP d'un disque dur. C'est plus simple d' accepter!

Il faut maintenant identifier cette partition esp

sudo blkid | grep vfat

Exemple de réponse: /dev/sda1: UUID="1042-95CF" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="aaaaaaaa-bbbb-dddd-fffff-eeeeeeeeeeee"

Avec cette réponse, le NomDuDisque sera sda et le N°DeLapartition sera 1

Il faut alors fabriquer l'entrée de boot qui n'a pas été faite.

sudo efibootmgr    -c   -d    /dev/NomDuDisque      -p   N°DeLaPartition    -L    "Refind"    -l  "\EFI\refind\refind_x64.efi"
sudo efibootmgr    -v 

Au boot suivant refind va diriger la manoeuvre si le bios EFI est normalement constitué.

A partir d'une session installée

Il vous faut :

Dans le version très récentes d'Ubuntu refind se trouve dans les dépôts officiels Mais il ne dispose plus des applications tools.

Si votre navigateur vous joue des tours, il est possible d'utiliser les lignes de commandes suivantes

 sudo apt-add-repository ppa:rodsmith/refind 
 sudo apt-get update
 sudo apt-get install refind

Installation en mode sécurisé.

Memo

https://gist.github.com/Brainiarc7/dfff8321b94fd666eb64eda0382f6813

http://www.rodsbooks.com/refind/secureboot.html#caveats

http://www.rodsbooks.com/refind/secureboot.html#shim

En cours de test avec version 17.10: Pour faire très simple, il faut d'abord installer la version ubuntu. Vérifier qu'elle fonctionne et demander au shim de lancer REFIND au lieu du grub.

Message possible d'erreur https://askubuntu.com/questions/900207/verification-failed-15-access-denied-error =⇒ https://bugs.launchpad.net/ubuntu/+source/shim/+bug/1692373

Pour le moment, c'est un peu bloqué,

Pour le micro-ordinateur portable, cela semble ne pas vouloir donner de réponse. https://www.aioboot.com/wp-content/uploads/2017/11/Grub2-Secure-Boot-Perform-MOK-management.jpg

Pour la tour, Je découvre un problème semblant connu https://answers.launchpad.net/ubuntu/+question/658088 ( "Hash failed (did you select a valid EFI binary?): (14) Not Found.)

Méthode 1

Une façon d'installer qui peut fonctionner pour certains ordinateurs et pas pour d'autres.

  • Installer normalement ubuntu en mode sécurisé.
  • Installer normalement refind (voir ci-dessus.).
  • Remplacer le logiciel de démarrage GRUB par le logiciel de démarrage REFIND à l'aide des lignes de commandes suivantes:
sudo -i
cd   /boot/efi/EFI/ubuntu
cp   -Rv  /boot/efi/EFI/refind  .
cp     grubx64.efi        grubx64.efi.ANCIEN
cp     refind_x64.efi     grubx64.efi
exit
  • Booter de nouveau.
  • Shimx64.efi va enfin lancer refind et détecter qu'il n'est pas sécurisé. Il va donc refuser de le faire (Voir dans les mémos).
  • Shimx64.efi va donc lancer MMX64.EFI (successeur de Mokmanager.efi) ou tenter de le faire ((Voir dans les mémos).
  • MMX64.EFI va donc vous permettre de fournir la signature de refind.
  • Choisir de préférence la signature HASH lorsqu'elle fonctionnera (voir dans les mémos), à défaut, choisir la signature KEY (voir dans les mémos)
  • Rebooter: La première entrée de la NVRAM non sécurisée ne sera pas opérationnelle et la seconde prendra le relais. Shim se lancera et activera le grub.
  • Utiliser refind pour choisir l'OS à lancer.

Méthode 2.

Une façon d'installer qui peut fonctionner pour certains ordinateurs et pas pour d'autres. (Testée en version 16.04).

  • Installer normalement ubuntu en mode sécurisé.
  • Remplacer le logiciel de démarrage GRUB par le logiciel de démarrage REFIND à l'aide des lignes de commandes suivantes:
sudo -i
cd   /boot/efi/EFI/ubuntu
cp   -Rv  /boot/efi/EFI/refind  .
cp     grubx64.efi        grubx64.efi.ANCIEN
cp     refind_x64.efi     grubx64.efi
exit
  • Booter de nouveau en prenant le soin de déactiver le secure-boot.
  • La première entrée de la NVRAM va permettre de lancer REFIND.
  • Utiliser la fonctionnalité utilitaire (un petit verrou sur la gauche de la seconde ligne) pour sélectionner l'application MMX64.EFI.
  • MMX64.EFI va vous permettre de fournir la signature de refind.
  • Choisir de préférence la signature HASH lorsque celle-ci fonctionnera (voir dans les mémos), à défaut, choisir la signature KEY qui fonctionne. (voir les mémos).
  • Booter de nouveau en prenant le soin de d'activer le secure-boot. La première entrée de la NVRAM non sécurisée ne sera pas opérationnelle et la seconde prendra le relais. Shim se lancera et activera le grub.
  • Utiliser refind pour choisir l'OS à lancer.

Personnalisation.

Options classiques

Si vous lisez le contenu du fichier /boot/efi/EFI/refind/refind.conf, vous constaterez qu'il y a de quoi avoir un "headhache" car il n'est pas écrit en français. En tout début de fichier, vous verrez la commande permettant de définir le temps d'attente avant le lancement du boot du dernier OS utilisé.

 timeout 30 

Vous pouvez le modifier et vous pouvez aussi ajouter immédiatement après, quelques options telles que les suivantes:

small_icon_size 32
big_icon_size 64

Ces commandes permettent de réduire la taille des icônes si elles elles vous semblent trop grandes.

enable_mouse

Cette commande permet d'utiliser la souris, si vous en avez une ( il est annoncé que cela peut ne pas fonctionner si le bios EFI ne gère pas la souris).

 dont_scan_volumes "WindowsRecovery" 

Cette commande permet de ne pas afficher le contenu de la partition de windows recovery. Assurez-vous que le nom de cette partition est bien celle indiquée.

dont_scan_dirs ESP:/EFI/boot,EFI/Dell,EFI/memtest86

Cette commande permet de ne pas afficher les programmes présents dans les répertoires indiqués de la partition de boot. Il ne doit pas y avoir que Dell qui fournit des fichiers.

dont_scan_files shimx64.efi,MokManager.efi,fwupx64.efi,mmx64.efi,bootmgr.efi,bkpbootx64.efi,grubx64.efi,bootx64.efi,memtest.efi

Cette commande permet de ne pas afficher ces programmes s'ils sont présents dans les partitions fat32.

fold_linux_kernels false

Cette commande permet de lister tous vos anciens noyaux encore présents que votre OS a oublié de supprimer lorsqu'il en a installé un nouveau. Vous pouvez avoir une liste très importante qu'il vous sera possible de réduire en frappant la commande sudo apt autoremove .

Il est donc possible d'avoir une présentation épurée ressemblant à cela.

Options pour partition ROOT chiffrée

La partition servant au boot n'est pas chiffrée.

Le contexte retenu est une partition de boot au format EXT2 et une partition RACINE chiffrée.

La clé de chiffrement retenue a été choisie pour avoir des caractères compatibles aux claviers QWERTY et AZERTY.

Refind détecte automatiquement la partition EXT2 et lance l'initialisation de la partition RACINE comme si elle était dans la même partition. Cela ne fonctionne donc pas. Il va donc être nécessaire de fournir un peu de paramétrage permettant de dire que c'est une installation chiffrée et que la partition racine est ailleurs. Ce n'est pas très compliqué.

Le nom du fichier est refind_linux.conf et il est stocké au premier niveau de la partition de boot directement sous la racine /boot. Il faut récupérer le UUID de la partition enveloppe de la racine ( sudo blkid | grep LUKS ) ainsi que le nom logique de la partition contenant la RACINE ( sudo fdisk -l | grep mapper ). Les deux lignes à mettre dans le fichiers seront de ce style

     "Boot standard"   "crypt_root=2721a6bb-36c5-4d4c-a604-2f7db99d1f87 root=/dev/mapper/sdb4_crypt  ro quiet splash vt.handoff=7"  
     "Boot RECOVERY"   "ro recovery nomodeset crypt_root=2721a6bb-36c5-4d4c-a604-2f7db99d1f87 root=/dev/mapper/sdb4_crypt"         

La structure de boot est aussi chiffrée pour plus de sécurité.

Options moins fréquentes

Il est possible de choisir qu'on veut booter tel ou tel OS en automatique en fonction d'un créneau horaire (pas en fonction des jours!). Exemple, cette codification va booter le 8eme de la liste sauf entre 8 heures et midi puis entre 14 heures et 18 heures 30 où elle bootera windows, entre midi et 14 heures, elle bootera le premier de la liste et entre 21 heures 45 et 23 heures 15, elle bootera le dernier qui avait été lancé auparavant .

default_selection 8
default_selection Microsoft 8:00 12:00
default_selection 1 12:00 14:00
default_selection Microsoft 14:00 18:30
default_selection +  21:45 23:15

Il est possible de demander l'installation d'une version de ubuntu. Pour cela, il faut télécharger la version voulue, créer une partition EXT4 de 2 Go environ, ouvrir le fichier téléchargé avec l'application monteur d'image disque et copier/coller les répertoires trouvés dans la partition nouvellement créée ce qui nécessite d'avoir le droit d'écrire dedans. Le lancement proposé sera l'équivalent de "essayer avant d'installer".

Il est possible de demander l'installation d'une version de windows . Pour cela, il faut télécharger la version voulue, créer une partition FAT32 de 5 Go environ, ouvrir le fichier téléchargé avec l'application monteur d'image disque et copier/coller les répertoires trouvés dans la partition nouvellement créée ce qui nécessite d'avoir le droit d'écrire dedans. Le lancement proposé est celui microsoft.

Il est aussi possible de faire des menus très personnalisés. Ce n'est pas si facile que cela. A titre d'exemple:

menuentry "5 Installer Windows edition familliale " {
    icon \EFI\refind\icons\os_win.png
    volume   "INSTWIN1607"
    ostype "Windows" 
    loader \EFI\Boot\bootx64.efi 
}

Faire un peu de ménage

Comme vous avez décidé de vous affranchir du grub, vous pouvez éviter qu'il recherche les OS et qu'il se mette à jour en frappant les trois commandes Suivantes

sudo chmod  -x  /etc/grub.d/30_os-prober
sudo chmod  -x  /usr/sbin/grub-install 
sudo chmod  -x  /etc/kernel/postinst.d/zz-update-grub 

Puisque vous avez décidé de ne plus utiliser le grub, pensez que vos prochaines installations de ubuntu vont détruire le boot refind si vous ne faites rien. Pour éviter cette situation, la solution est de détruire ou renommer shimx64.efi directement dans le support d'installation. Ce fichier est stocké à l'adresse suivante: /pool/main/s/shim-signed/shim-signed_xxxxxxxxxxxxxxxxxxx_amd64.deb

Utilisation des options avancées

Relancer un ubuntu qui s'est arrêté par hibernation

Action standard. il suffit de choisir le ubuntu en question pour booter. La fonctionnalité "RESUME" sera automatiquement ajoutée.

Options diverses.

En standard, REFIND propose 3 options. C'est dans l'ensemble suffisant lorsque tout va bien. Lorsqu'il y a des problèmes de démarrage, il est possible de modifier dynamiquement la première ligne. En effet dans certains cas, il peut être nécessaire d'ajouter manuellement l'option ou les options manquantes. Je pense particulièrement à ces options. Pour cela, la première fois, il est nécessaire de modifier la première ligne qui est proposée pour mettre l'option en début de ligne. Par la suite, c'est pénible de toujours refaire cette même manipulation.

Afin d'éviter de refaire cette action, il est possible de la mémoriser de la façon suivante. Lorsque l'instance est opérationnelle, utilisez votre éditeur favori pour modifier le fichier /boot/refind_linux.conf et ajoutez ce qui manque en début de la première ligne. Un exemple

"Boot with standard options"  "ro   nomodeset modprobe.blacklist=nouveau acpi=off   root=UUID=7d0360b4-ed6a-4617-9f5d-30890418ef82"

C'est le moment aussi d'ajouter une quatrième ligne pour simplifier le choix du démarrage en mode recovery. Un exemple de quatrième ligne

"Boot en mode recovery"   "recovery nomodeset ro root=UUID=7d0360b4-ed6a-4617-9f5d-30890418ef82"
Si vous décidez de dupliquer la partition contenant l'O.S. et de changer changer son UUID, Il est impératif de mettre à jour ce fichier ou de le supprimer, sinon, la suite du boot de refind continuera sur l'UUID décrit dans cette table.

L'option de démarrage en mode recovery n'existe pas de façon standard. Cependant il est possible de l'utiliser. Cela semble moins compliqué que d'ajouter une option au noyau lors de l'installation. Voici la procédure à faire:

  1. Sélectionner le noyau que vous souhaitez utiliser.
  2. Lire en bas de l'écran la liste des touches possibles à utiliser pour modifier le noyau. Personnellement je retiens F2.
  3. Appuyer sur la touche F2.
  4. Constater qu'on dispose d'une grille de choix.
  5. Choisir le démarrage normal.
  6. Appuyer de nouveau sur la touche F2.
  7. Constater que la ligne qui s'affiche commence par "ro blablabla…."
  8. Se positionner et modifier pour que la ligne devienne " ro recovery nomodeset blabla….."
  9. Se positionner tout à la fin de la ligne. Ne pas rester sur nomodeset car la modification ne sera pas prise en compte!
  10. Faire entrée pour lancer le boot.

Aux dernières nouvelles, le concepteur va livrer l'option recovery.

Booter une installation ubuntu 32 bits avec un refind 64 bits

Cela ne semble pas possible. Une astuce qui veut ce qu'elle vaut: Utiliser une autre version de ubuntu en 64 bits (un support d'installation lancé via refind!) pour faire un chroot sur la version 32 bits afin de la miger en 64 bits!

Liens externes



Le contenu de ce wiki est sous licence : CC BY-SA v3.0