Question Installation de GRUB sur une clé USB: continuez à avoir cette erreur "impossible à trouver un répertoire EFI"


J'essaie d'installer grub sur une clé USB pour le rendre amorçable. Je veux que ce soit possible de faire un multiboot USB, pour transporter plus d'une distribution dans une seule clé USB (rescatux et queues). J'ai fait ceci:

sudo mkdir -p /media/MULTIBOOT/boot

et alors:

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   Répertoire EFI.

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

Ceci est ma configuration USB: enter image description here

C'est la toute première fois que j'essaie ça 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
2018-03-27 18:33


origine


S'il vous plaît dites-nous en termes plus généraux, ce que vous voulez réaliser! Est-ce un "système installé" (installé comme dans un lecteur interne, mais sur un lecteur USB)? Ou est-ce un système live ou persistant? De quel type de système multi-démarrage s'agit-il (plusieurs systèmes actifs ou plusieurs systèmes installés ou un mélange)? Est-ce que vous commencez à partir d'un système particulier créé avec un outil particulier, ou faites-vous le système à partir de zéro? Est-ce seulement des versions Ubuntu et Ubuntu, ou d'autres distributions Linux et peut-être Windows ou MacOS? - sudodus
Vous le montrez monté sur / media / victoria / MULTIBOOT. Mais essayez d'installer sur / media / MULTIBOOT ?? Et vous n'utilisez pas de périphérique à moins que vous ne le créiez également comme point de montage, ce qui peut être source de confusion. - oldfred
@sudodus Je veux rendre bootable la création d'un multiboot USB, pour transporter plus d'une distro dans un seul et même USB (rescatux et queues). - Rosamunda
OK, donc plusieurs systèmes Linux en direct. Vous savez qu'il existe des outils pour cela? Par exemple multibootusb.orget pendrivelinux.com/yumi-multiboot-usb-creator - Je pense qu’il est plus facile d’utiliser l’un de ces outils, mais si vous voulez en savoir plus sur «grub and iso», vous pouvez commencer par ce lien et y accéder, help.ubuntu.com/community/Grub2/ISOBoot - sudodus
Je ne connaissais pas ces outils. Merci!! Je vais les essayer d'abord alors! - Rosamunda


Réponses:


Je ne peux pas fournir une 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 à cause de certaines ambiguïtés sur ce que vous voulez faire (comme spécifié par sudodus dans son commentaire sur votre question). Cela dit, je peux faire plusieurs observations et suggestions qui pourraient être utiles:

  • Lorsque vous installez GRUB sur un système EFI normal d'Ubuntu, GRUB deviendra EFI/ubuntu/grubx64.efi sur le Partition de système EFI (ESP), avec une entrée NVRAM pointant vers cet emplacement.
  • En revanche, les lecteurs USB amorçables par EFI démarrent généralement à partir d’un chargeur de démarrage appelé EFI/BOOT/bootx64.efi sur l'ESP de la clé USB. Ce nom de fichier est généralement appelé le nom de fichier de secours, et les EFI sont supposés rechercher ce nom de fichier en dernier recours si aucune entrée 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 sur cet emplacement, vous devez soit ajuster la grub-install commande (et je ne suis même pas sûr à 100% qu'il le supporte) ou copiez les fichiers manuellement.
  • Compliquant ce qui précède, si l'ordinateur utilise Secure Boot, Ubuntu installe un programme appelé Cale (shimx64.efi), et crée une entrée NVRAM pointant vers elle plutôt que vers grubx64.efi. De même, pour démarrer un support externe, l'original shimx64.efi doit être nommé EFI/BOOT/bootx64.efi. Dans les deux cas, Shim lance alors grubx64.efi dans le même répertoire que Shim.
  • Quand ne pas en utilisant le démarrage sécurisé, GRUB d'Ubuntu cherche un grub.cfg déposer dans le /boot/grub répertoire, qui n'est pas susceptible d'être l'ESP. Lors du démarrage avec Secure Boot actif, cependant, grubx64.efi cherche des grub.cfg dans le même répertoire que grubx64.efi. Cette 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 de l'ESP et de la partition /boot/grub. Certaines distributions définissent les choses différemment. Fedora, par exemple, met la finale grub.cfg et tous les fichiers associés sur l'ESP.
  • le /boot/grub/grub.cfg Le fichier 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 effectuez un démarrage multiple avec une autre distribution Linux, les choses se compliquent rapidement. En particulier, si GRUB de Distribution A contrôle le processus de démarrage et que vous mettez à jour le noyau pour la distribution B, GRUB n'affichera pas le nouveau noyau Distribution B tant que vous n'avez pas exécuté update-grub(ou quelque chose de similaire) dans 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 pourriez ou non avoir besoin de presser Shim sur la photo; 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) vers le nom de fichier de secours. Cela aura l'avantage que vous ne devriez pas avoir besoin de singe avec le grub.cfg fichier. Une grande mise en garde est que si vous vouliez utiliser quelque chose qui s'installe de manière inhabituelle (comme via UNetbootin ou Rufus plutôt que l'installateur Ubiquu d'Ubuntu), cela pourrait changer l'équation d'une manière qui nécessiterait une approche complètement différente. Il semble que vous essayiez d'utiliser Ubuntu sur votre disque dur pour installer GRUB sur le lecteur USB à utiliser pour démarrer à partir du lecteur USB. Cette approche pourrait fonctionner si vous êtes bien plus un expert GRUB que moi, mais il y a suffisamment de variables obscures en jeu pour que votre approche soit probablement une mine de complications.

Une autre méthode consiste à utiliser mon gestionnaire de démarrage rEFInd. Vous devez l'installer dans le nom de fichier de secours, mais rEFInd recherche les noyaux au démarrage, ce qui réduit les risques de perturbation en installant un nouveau noyau dans une distribution lorsque vous utilisez l'autre distribution pour installer GRUB ou rEFInd. OTOH, si vous souhaitez utiliser Secure Boot, vous devrez passer à travers des cerceaux supplémentaires (documentés sur La page de démarrage sécurisé de rEFInd) pour le faire fonctionner, probablement sur chaque ordinateur que vous utilisez pour démarrer le lecteur USB. Vous pourriez aussi avoir besoin de créer /boot/refind_linux.conf fichiers pour tous les deux vos distributions pour gérer les options du noyau spécifiques à la distribution. (Voir le rEFInd Linux documentation, et surtout la moitié inférieure de cette page, pour plus d’informations à ce sujet.)


3
2018-03-27 19:55