web-dev-qa-db-fra.com

Comment faire en sorte que le bios UEFI lance GRUB, pas Windows?

Le TL; DR, ajouté dans l'édition:

La question est:

Comment faire en sorte que le BIOS préfère GRUB au gestionnaire de démarrage Windows sur la même partition de démarrage UEFI?

Le problème n'est pas avec Grub; Grub fait ce qu'il faut quand le BIOS le démarre. Le problème ne vient pas de «le disque n'est pas amorçable», car l'amorçage Windows UEFI et l'amorçage Grub UEFI sont amorçables. Le problème est de savoir à partir de quelle initialisation UEFI le BIOS choisit de démarrer.

Je configure un nouvel ordinateur et je souhaite qu’il démarre par défaut dans Ubuntu, mais j’ai la possibilité de sélectionner Windows au démarrage. Ceci est particulièrement important si le courant est coupé et revient; Je ne serai même pas à la maison.

J'ai commencé par installer Ubuntu 17.04 sur mon disque interne NVMe, partitionné avec GPT pour utiliser la moitié du disque et une partition de démarrage UEFI distincte. GRUB démarre très bien, et je vois le menu de démarrage GRUB au démarrage où je peux sélectionner les éléments que GRUB connaît.

Ensuite, j'ai installé Windows 10 Pro à partir d'une image ISO récemment téléchargée. Il a installé le gestionnaire de démarrage Windows sur la même partition UEFI et a laissé Ubuntu intact (super!), Ce qui permet d’amorcer correctement Windows 10.

Cependant, "quelque chose" a obligé le microprogramme UEFI à sélectionner immédiatement le gestionnaire de démarrage Windows au lieu de GRUB à la mise sous tension. Le seul moyen de démarrer Linux maintenant consiste à utiliser le gestionnaire de démarrage du BIOS (F11 sur mon BIOS) et à sélectionner le chargeur de démarrage GRUB manuellement. Le BIOS UEFI sait qu'il existe plusieurs installations amorçables sur la partition UEFI, car je peux choisir entre elles dans le gestionnaire de démarrage. Cependant, lorsque je suis dans le menu de configuration du BIOS UEFI, cela me laisse simplement choisir "UEFI booter mon lecteur interne" dans la sélection de priorité de démarrage - cela ne me permet pas de choisir le chargeur de démarrage particulier de cette partition à utiliser. . Et, par défaut, il choisit Windows, pas GRUB.

Les internets (et ce site) suggèrent que l'ancienne façon de résoudre ce problème consiste à exécuter update-grub (donc GRUB reconnaît Windows), puis grub-install (pour remettre GRUB sur le périphérique.) Je l'ai fait, mais malheureusement, il a toujours le comportement décrit ci-dessus, où le BIOS choisit par défaut le gestionnaire de démarrage Windows. (update-grub trouve l'installation du gestionnaire de démarrage Windows et l'ajoute au menu. Cet élément de menu fonctionne lorsque je choisis manuellement la partition GRUB dans le gestionnaire de démarrage UEFI.)

Que puis-je faire pour que GRUB soit le démarrage "par défaut" sur ma partition de démarrage UEFI?

Utilisation d’une carte mère MSI X399 Carbon.

Deuxième édition: comme la réponse correcte finit par être mentionnée dans un commentaire, je la répète ici:

"BCDEDIT" in an admin Shell on Windows is the working solution. The others don't work.
12
Jon Watte

Il existe plusieurs façons de procéder, notamment:

  • Utilitaire de configuration EFI - La plupart des EFI fournissent des utilitaires de configuration auxquels vous pouvez accéder en appuyant sur une touche spéciale au moment du démarrage (Echap, Suppr ou une touche de fonction, en général; mais sa clé varie d'un système à l'autre. à un autre). Celles-ci fournissent souvent, mais pas toujours, un moyen de modifier l'ordre de démarrage. Si votre microprogramme fournit une telle option, vous devriez pouvoir l'utiliser pour déplacer GRUB en première position. (GRUB est susceptible de s'appeler ubuntu, étant donné que vous l'avez installé à partir de cette distribution.)
  • Un shell EFI - Vous pouvez utiliser la commande bcfg dans un shell EFI version 2, comme décrit sur le wiki Arch Linux. Si votre système n'est pas déjà configuré avec un shell facile d'accès, cette approche sera probablement plus difficile à utiliser que les autres, mais elle ne dépend pas de l'OS.
  • EasyUEFI - Le programme tiers Windows EasyUEFI est probablement le moyen le plus simple de faire ce que vous voulez. Vous pouvez cliquer sur l'entrée ubuntu dans la liste de EasyUEFI et la déplacer en haut.
  • bcdedit- La commande Windows bcdedit peut modifier l'ordre de démarrage basé sur la NVRAM. Plus précisément, ouvrir une fenêtre d'invite de commande Administrateur et taper bcdedit /set "{bootmgr}" path \EFI\ubuntu\shimx64.efi (éventuellement suivi de bcdedit /set "{bootmgr}" description "ubuntu" pour conserver la description) devrait faire l'affaire.
  • efibootmgr- Cet outil Linux peut ajuster l'ordre de démarrage. Commencez par taper Sudo efibootmgr seul pour voir les options. Notez le numéro (Boot####) associé à l'entrée ubuntu et la commande d'amorçage actuelle (sur la ligne BootOrder). Vous pouvez ensuite entrer un nouvel ordre de démarrage avec l'entrée ubuntu en haut à l'aide de l'option -o. Par exemple, si l'ordre de démarrage actuel est 0000,0003,0007,0004 et que ubuntu est 0007, vous devez taper Sudo efibootmgr -o 0007,0000,0003,0004 pour ajuster l'ordre de démarrage.
  • refind-mkdefault- Ce script est fourni avec rEFInd et permet d'automatiser la procédure précédente. Si vous n'utilisez pas rEFInd, vous devez télécharger le script ici et le rendre exécutable (chmod a+x refind-mkdefault). Vous devez ensuite l'exécuter en tant que Sudo ./refind-mkdefault -L ubuntu ou Sudo ./refind-mkdefault -L shimx64 pour que GRUB soit l'entrée de démarrage par défaut.

Aucune de ces options n’entraîne de problèmes ni de complications. Le facteur de complication le plus probable est la présence d'entrées anciennes ou alternatives ubuntu. Il est important que vous déplaciez le bon en première position dans l'ordre de démarrage; si vous déplacez le mauvais, vous n'aurez alors aucun changement de comportement ou un démarrage non fonctionnel, ce qui le rendrait plus difficile à démarrer. Si vous utilisez efibootmgr, la ligne BootCurrent peut vous aider à indiquer quelle option vous devez définir comme option par défaut.

Il y a d'autres façons de le faire qui sont excessives. Réinstaller GRUB (via Boot Repair ou grub-install) devrait faire l'affaire, par exemple. Cependant, ces approches risquent d’endommager la configuration GRUB dont le fonctionnement est connu.

Notez également que certains EFI sont buggés et que d’autres problèmes peuvent rendre difficile l’obtention de GRUB pour un démarrage fiable. Vous pouvez consulter ces questions et réponses sur AskUbuntu si vous rencontrez de tels problèmes:

12
Rod Smith

J'ai eu exactement ce problème ces dernières semaines. Je l'ai compris en utilisant ces options. Avant de faire l’une de ces choses, je vous recommande d’aller dans votre BIOS/UEFI, de vérifier l’ordre de démarrage et de vous assurer que grub est installé en premier.

Alors, comment je vois les deux options.

Option 1

Ce que je vous recommanderais, c’est d’installer d’abord Windows 10. Ensuite, installez Ubuntu. Mais je sais que c’est un peu tabou de dire "réinstallez votre logiciel", je vous propose donc une alternative.

Option 2

Avec votre configuration actuelle, je vous recommanderais de démarrer sur un lecteur de CD/flash Live Ubuntu, d’installer et d’exécuter boot-repair. Cliquez sur l'option "Réparation recommandée" et suivez les instructions fournies. Parcourez-le attentivement et lisez toutes les commandes avant de l'exécuter. Cela remplacera l'installation actuelle de grub par une nouvelle qui devrait, espérons-le, résoudre le problème.

1
taterbotz

Je vois plusieurs solutions:

  1. Modifiez votre UEFI pour ajuster la valeur par défaut. Sur Linux, vous pouvez utiliser efibootmgr. Sous Windows, je ne suis pas sûr, mais je pense que vous pouvez démarrer avec une option de récupération qui vous permet de configurer le fichier UEFI. Ou vous préférez peut-être installer quelque chose comme rEFInd.
  2. Modifiez le nom du dossier sur la partition EFI. Je pense qu’il préfère ou retombe dans un dossier appelé boot.
  3. Il suffit d’utiliser le chargeur de démarrage Windows, je pense qu’il peut être configuré pour démarrer d’autres systèmes d’exploitation.
1
jiggunjer

Je viens de faire remplacer ma carte mère dans mon ordinateur portable et la bouffe a complètement disparu.

Je sais que cela est marqué comme étant fixe, mais je pensais que cela pourrait vous être utile.

Pour que grub apparaisse comme une option de démarrage. Je devais ajouter un EFI à bios.

Je suis allé à la "option de liste de démarrage" dans mon bios. Cliqué sur "Ajouter une option de démarrage" (je suis conscient que cela est spécifique au BIOS). Cela m'a donné une option pour le nom de fichier, qui dans mon cas était \EFI\ubuntu\grubx64.efi et lui a donné un nom grub

J'ai ensuite déplacé l'entrée grub en haut de la séquence d'amorçage; elle apparaît maintenant comme entrée par défaut.

C'est à dire. Ce que je dis, c'est que vous devez simplement localiser le fichier EFI correct et le déplacer en haut de votre séquence/commande de démarrage.

0
Wes