Le TL; DR, ajouté dans l'édition:
La question est:
Comment puis-je faire en sorte que le BIOS préfère GRUB à Windows Boot Manager sur la même partition de démarrage UEFI?
Le problème n'est pas avec Grub; Grub fait ce qu'il faut au démarrage du BIOS. Le problème n'est pas avec «le disque n'est pas amorçable», car l'amorçage UEFI Windows et l'amorçage UEFI Grub sont amorçables. Le problème est à partir de quel UEFI bootstrap le BIOS choisit de démarrer.
Je configure un nouvel ordinateur et je veux 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 se coupe et revient; Je ne serai même pas dans la maison.
J'ai commencé par installer Ubuntu 17.04 sur mon disque NVMe interne, 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é Windows Boot Manager sur la même partition UEFI, et a laissé Ubuntu intact (génial!) Et cela démarre correctement dans Windows 10.
Cependant, il a fait "quelque chose" qui fait que le firmware UEFI sélectionne immédiatement le gestionnaire de démarrage Windows plutôt que GRUB à la mise sous tension. La seule façon de démarrer Linux maintenant est d'utiliser le gestionnaire de démarrage du BIOS (F11 sur mon BIOS) et de sélectionner manuellement le chargeur de démarrage GRUB. Le BIOS UEFI sait qu'il existe plusieurs installations de démarrage 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, il me permet simplement de choisir "UEFI boot my internal drive" dans la sélection de priorité de démarrage - il ne me permet pas de choisir le chargeur de démarrage particulier sur 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
(à remettre GRUB sur l'appareil.) 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 de Windows Boot Manager et l'ajoute au menu, et 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 faire de GRUB le démarrage "par défaut" de ma partition de démarrage UEFI?
Utilisation d'une carte mère MSI X399 Carbon.
Deuxième édition: parce que la bonne réponse finit par être mentionnée dans un commentaire à une réponse, je vais la répéter ici:
"BCDEDIT" in an admin shell on Windows is the working solution. The others don't work.
la source
Réponses:
Il existe plusieurs façons de procéder, notamment:
ubuntu
, étant donné que vous l'avez installé à partir de cette distribution.)bcfg
commande 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 est probablement plus difficile à utiliser que les autres, mais elle est indépendante du système d'exploitation.ubuntu
entrée dans la liste d'EasyUEFI et la déplacer vers le haut.bcdedit
- Labcdedit
commande Windows peut modifier l'ordre de démarrage basé sur NVRAM. Plus précisément, ouvrir une fenêtre d'invite de commandes administrateur et taperbcdedit /set "{bootmgr}" path \EFI\ubuntu\shimx64.efi
(éventuellement suivi parbcdedit /set "{bootmgr}" description "ubuntu"
pour garder la description sensible) devrait faire l'affaire.efibootmgr
- Cet outil Linux peut ajuster l'ordre de démarrage. Commencez par tapersudo efibootmgr
seul pour voir les options. Notez le numéro (Boot####
) associé à l'ubuntu
entrée et l'ordre de démarrage actuel (sur laBootOrder
ligne). Vous pouvez ensuite entrer un nouvel ordre de démarrage avec l'ubuntu
entrée en haut en utilisant l'-o
option. Par exemple, si l'ordre de démarrage actuel est 0000 0003ubuntu
0007 0004 et 0007, vous devez tapersudo efibootmgr -o 0007,0000,0003,0004
pour ajuster l'ordre de démarrage.refind-mkdefault
- Ce script est livré avec rEFInd, et c'est un moyen 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 quesudo ./refind-mkdefault -L ubuntu
ousudo ./refind-mkdefault -L shimx64
pour faire de GRUB l'entrée de démarrage par défaut.Il existe des problèmes potentiels et des complications avec l'une de ces options. Le facteur de complication le plus probable est s'il existe des
ubuntu
entrées de démarrage anciennes ou alternatives . Il est important que vous déplaciez la bonne à la position supérieure dans l'ordre de démarrage; si vous déplacez le mauvais, vous vous retrouverez avec aucun changement de comportement ou quelque chose de non fonctionnel, ce qui rendrait le démarrage plus difficile. Si vous utilisezefibootmgr
, laBootCurrent
ligne peut vous aider à dire quelle option vous devez définir par défaut.Il existe d'autres façons de le faire qui sont exagérées. La réinstallation de GRUB (via Boot Repair ou
grub-install
) devrait faire l'affaire, par exemple. Cependant, ces approches risquent d'endommager une configuration GRUB connue.Notez également que certains EFI sont bogués et que d'autres problèmes peuvent rendre difficile le démarrage fiable de GRUB. Vous voudrez peut-être consulter ces questions et réponses sur AskUbuntu si vous rencontrez de tels problèmes:
la source
sudo efibootmgr -n 0002
est bien meilleure que de modifier l'ordre SO actuel. Il changeBootNext: 0001
et partBootCurrent: 0002
pour la prochaine fois, laissant vos entrées GRUB actuelles intactes. Ajoutez simplement un bash avecchmod +x
et encapsulez cette commande avec le redémarrage.J'ai eu ce problème exact au cours des dernières semaines. Je l'ai compris en utilisant ces options. Avant de faire une de ces choses, je vous recommande d'aller dans votre BIOS / UEFI et de vérifier l'ordre de démarrage et de vous assurer que l'emplacement d'installation de grub est en premier.
Donc, comme je le vois, vous avez deux options.
Option 1
Ce que je vous recommanderais, c'est d'installer Windows 10 en premier. Installez ensuite ubuntu. Mais je sais que c'est un peu tabou de dire simplement "réinstaller votre logiciel", donc je proposerai également une alternative.
Option 2
Avec votre configuration actuelle, je vous recommande de démarrer dans un lecteur de CD / flash Ubuntu Live et d'installer et d'exécuter
boot-repair
. Cliquez sur l'option "Réparation recommandée" et suivez les instructions données. Parcourez-le attentivement et lisez toutes les commandes avant de l'exécuter. Cela remplacera l'installation de grub actuelle par une nouvelle qui devrait, espérons-le, la corriger.la source
Je vois plusieurs solutions:
efibootmgr
. Sous Windows, je ne suis pas sûr, mais je pense que vous pouvez démarrer dans une option de récupération qui vous permet de configurer l'UEFI. Ou vous préférerez peut-être installer quelque chose comme rEFInd.boot
.la source
efibootmgr
cela ne fonctionne pas, je sais que je n'achèterai pas de MSI.Je viens de faire remplacer ma carte mère dans mon ordinateur portable et grub a complètement disparu.
Je sais que cela est marqué comme fixe, mais j'ai pensé que cela pourrait vous être utile.
Pour faire apparaître grub comme option de démarrage. J'avais besoin d'ajouter un EFI au bios.
Je suis allé à "l'option de liste de démarrage" dans mon bios. Cliquez sur "Ajouter une option de démarrage" (je sais 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 nomgrub
J'ai ensuite déplacé l'
grub
entrée en haut de la séquence de démarrage, et maintenant elle s'affiche comme entrée par défaut.C'est-à-dire que je dis que vous pourriez avoir juste besoin de localiser le fichier EFI correct et de le déplacer en haut de votre séquence / ordre de démarrage.
la source
Aucune des options ci-dessus ne fonctionnait pour moi avec l'ancien ordinateur portable HP 655. J'ai découvert que la solution était de désactiver le gestionnaire de démarrage de Windows:
Remplacez 4 par votre nombre de gestionnaire de démarrage Windows. Exécutez à nouveau efibootmgr et vous devriez voir l'étoile disparaître pour marquer l'inactivité.
Après le démarrage de mon ordinateur, le menu de démarrage du groupe et les fenêtres peuvent toujours être choisis.
la source
Une solution possible serait de modifier manuellement le fichier / etc / default / grub.
sudo vim /etc/default/grub
L'entrée par défaut est déterminée par le
GRUB_DEFAULT=
paramètre dans / etc / default / grub. La première "entrée de menu" a une valeur de "0". Si Ubuntu est la deuxième entrée de l'écran de démarrage, définissez GRUB_DEFAULT = 1.Ensuite, vous devrez exécuter la commande pour mettre à jour la configuration de grub:
update-grub
Une autre option serait d'installer grub-customizer et d'utiliser son interface graphique pour configurer la priorité de démarrage.
la source