web-dev-qa-db-fra.com

Installation de GRUB sur une clé USB: le message d'erreur "impossible de trouver le répertoire EFI" persiste.

J'essaie d'installer grub sur une clé USB afin de le rendre amorçable. Je veux le rendre amorçable pour faire un multi-démarrage USB, pour transporter plus d'une distribution dans un seul USB (c'est-à-dire. Rescatux et Tails). J'ai fait ça:

Sudo mkdir -p /media/MULTIBOOT/boot

puis:

Sudo grub-install --target=x86_64-efi --boot-directory=/media/MULTIBOOT/boot /dev/sdc1

Et je reçois cette erreur:

Installation pour la plate-forme x86_64-efi. grub-install: erreur: impossible de trouver le répertoire EFI.

J'ai Ubuntu 14.04 LTS, et c'est 64 bits.

Voici ma configuration USB: enter image description here

C'est la toute première fois que j'essaye cela et je suis un peu perdu ici. Devrais-je utiliser /dev/sdc1 ou /dev/sdc?

J'ai essayé (avec le même résultat) cette autre alternative:

Sudo grub-install --target=x86_64-efi --boot-directory=/media/victoria/MULTIBOOT/boot /dev/sdc

Où est le problème?

Merci de votre aide!

2
Rosamunda

Je ne peux pas fournir de réponse complète à votre question car certains aspects de la configuration et de l'installation de GRUB dépassent mon niveau de compétence et en raison d'une ambiguïté sur ce que vous voulez faire (comme spécifié par sudodus dans son commentaire à votre question ). Cela dit, je peux faire plusieurs observations et suggestions qui pourraient être utiles:

  • Lorsque vous installez GRUB sur un système EFI en cours d’exécution sous Ubuntu, GRUB devient EFI/ubuntu/grubx64.efi sur la partition système EFI (ESP), avec une entrée NVRAM pointant vers à cet endroit.
  • Les lecteurs USB amorçables EFI, en revanche, démarrent généralement à partir d'un chargeur de démarrage appelé EFI/BOOT/bootx64.efi sur l'ESP du lecteur USB. Ce nom de fichier est généralement appelé le nom de fichier de remplacement , et les EFI sont supposés rechercher ce nom de fichier en dernier recours si aucune entrée de la NVRAM ne pointe vers un chargeur de démarrage valide. , ou si l’utilisateur sélectionne le support de démarrage dans un menu du gestionnaire de démarrage intégré. Ainsi, pour installer à cet emplacement, vous devez soit ajuster la commande grub-install (et je ne suis même pas sûr à 100% qu'elle le prend en charge), soit copier les fichiers manuellement.
  • Complétant ce qui précède, si l’ordinateur utilise Secure Boot, Ubuntu installe un programme appelé Shim (shimx64.efi) et crée une entrée NVRAM pointant vers plutôt que de grubx64.efi. De même, pour démarrer un support externe, le shimx64.efi d'origine doit être nommé EFI/BOOT/bootx64.efi. Dans les deux cas, Shim lance alors grubx64.efi dans le même répertoire que Shim.
  • Lorsque n'utilise pas avec Secure Boot, GRUB de Ubuntu recherche un fichier grub.cfg dans le répertoire /boot/grub, qui est pas susceptible d'être l'ESP. Lorsque vous démarrez alors que Secure Boot est activé, grubx64.efi recherche grub.cfg dans le même répertoire que grubx64.efi. Ce grub.cfg, cependant, cherche et charge /boot/grub/grub.cfg, donc l'effet est le même, mais le chemin est plus complexe. Dans les deux cas, il existe une dépendance à la fois sur ESP et sur la partition contenant /boot/grub. Certaines distributions organisent les choses différemment. Fedora, par exemple, place le dernier grub.cfg et tous les fichiers associés sur l'ESP.
  • Le fichier /boot/grub/grub.cfg est construit (ou reconstruit) par des scripts de configuration qui s'exécutent chaque fois que vous installez un nouveau noyau ou un binaire GRUB. Cela fonctionne bien pour un système à démarrage unique, mais si vous démarrez en mode multi-démarrage avec une autre distribution Linux, les choses se compliquent rapidement. En particulier, si GRUB de la distribution A contrôle le processus de démarrage et que vous mettez à jour le noyau pour la distribution B, GRUB ne montrera pas le nouveau noyau de la distribution B tant que vous n'avez pas exécuté update-grub (ou quelque chose de similaire). ) dans la distribution A.

Entre ces facteurs, pour faire ce que vous voulez avec GRUB, il est probable que vous deviez installer le nom de fichier de secours plutôt que le nom de fichier standard; vous aurez peut-être besoin de ne pas forcer Shim dans l'image; et vous devrez peut-être modifier votre grub.cfg pour votre configuration à deux distributions. C'est beaucoup à faire. Si je devais faire tout cela avec GRUB, mon approche serait d'installer les deux distributions sur le lecteur USB comme s'il s'agissait d'un disque dur interne, puis de déplacer/renommer GRUB (ou Shim) en tant que nom de fichier de secours. Cela aura l’avantage que vous n’auriez pas besoin de singer avec le fichier grub.cfg. Un inconvénient majeur est que si vous voulez utiliser quelque chose qui installe de manière inhabituelle (comme via UNetbootin ou Rufus plutôt que le programme d'installation Ubiquu d'Ubuntu), cela pourrait changer l'équation d'une manière qui nécessitera une approche complètement différente. On dirait que vous essayez d'utiliser Ubuntu sur votre disque dur pour installer GRUB sur le lecteur USB à utiliser pour démarrer à partir du lecteur USB. Cette approche peut fonctionner si vous êtes bien plus expert que moi dans GRUB, mais il existe suffisamment de variables obscures en jeu pour que votre approche soit probablement un domaine minier de complications.

Une autre méthode consiste à utiliser mon gestionnaire de démarrage rEFInd. Vous devez l'installer sous le nom de fichier de secours, mais rEFInd recherche les noyaux au moment du démarrage. Il est donc moins susceptible d'être perturbé par l'installation d'un nouveau noyau. dans une distribution lorsque vous avez utilisé l’autre distribution pour installer GRUB ou rEFInd. OTOH, si vous souhaitez utiliser le démarrage sécurisé, vous devez parcourir des étapes supplémentaires (documentées sur page de démarrage sécurisé de rEFInd ) pour le faire fonctionner, probablement sur tous les ordinateurs utilisés pour démarrer la clé USB. conduire. Vous devrez peut-être également créer /boot/refind_linux.conf fichiers pour les deux vos distributions afin de gérer les options du noyau propres à la distribution. (Voir le documentation rEFInd Linux, et en particulier la moitié inférieure de la page, pour plus d'informations.)

3
Rod Smith