web-dev-qa-db-fra.com

GRUB ne charge pas pour le double démarrage

J'utilise Windows 10 à double démarrage et Ubuntu 15.10 sur mon HP Spectre X360. Tout a bien fonctionné jusqu'à ce que je mette à jour Ubuntu et qu'il me demande de redémarrer le système. Après le redémarrage, GRUB ne s'affichera plus et mon ordinateur démarrera immédiatement sous Windows.

J'ai essayé ce qui suit:

  • maintien du changement au démarrage: rien ne se passe
  • Modification de l'ordre de démarrage: seul le gestionnaire de démarrage Windows apparaît, je ne peux donc rien changer
  • faire une réparation de démarrage: Après l'avoir exécuté, j'ai obtenu ce journal http://paste2.org/0Cwwt45W mais cela n'a pas résolu mon problème.

Jusqu'ici, je ne sais pas quoi essayer d'autre.

Edit: Je peux appuyer sur echap, puis "Options du périphérique de démarrage" puis "Démarrer à partir du fichier EFI" puis "EFI" puis "Ubuntu" puis "grubx64.efi" et démarrer Ubuntu de cette manière.

Maintenant, les entrées intéressantes dans /var/log/apt/history.log sont

Install: 
linux-headers-4.2.0-23-generic:AMD64 (4.2.0-23.28, automatic)
linux-signed-image-4.2.0-23-generic:AMD64 (4.2.0-23.28, automatic)
linux-image-extra-4.2.0-23-generic:AMD64 (4.2.0-23.28, automatic)
linux-headers-4.2.0-23:AMD64 (4.2.0-23.28, automatic)
linux-image-4.2.0-23-generic:AMD64 (4.2.0-23.28, automatic)

Upgrade: 
linux-headers-generic:AMD64 (4.2.0.22.24, 4.2.0.23.25)
grub-efi-AMD64-bin:AMD64 (2.02~beta2-29ubuntu0.2, 2.02~beta2-29ubuntu0.3)
grub-efi-AMD64:AMD64 (2.02~beta2-29ubuntu0.2, 2.02~beta2-29ubuntu0.3)
grub-common:AMD64 (2.02~beta2-29ubuntu0.2, 2.02~beta2-29ubuntu0.3)
grub2-common:AMD64 (2.02~beta2-29ubuntu0.2, 2.02~beta2-29ubuntu0.3)
linux-signed-generic:AMD64 (4.2.0.22.24, 4.2.0.23.25)
grub-efi-AMD64-signed:AMD64 (1.55.2+2.02~beta2-29ubuntu0.2, 1.55.3+2.02~beta2-29ubuntu0.3)
linux-signed-image-generic:AMD64 (4.2.0.22.24, 4.2.0.23.25)
linux-image-generic:AMD64 (4.2.0.22.24, 4.2.0.23.25)
linux-generic:AMD64 (4.2.0.22.24, 4.2.0.23.25)
1
Stefan Brunecker

Voici le problème, à partir des lignes 1220-1221 dans votre journal de réparation de démarrage:

efibootmgr: Could not set variable Boot0002: No such file or directory
efibootmgr: Could not prepare boot variable: No such file or directory

Traduit en anglais, l'utilitaire efibootmgr (élément clé de l'installation d'un chargeur de démarrage EFI sous Linux) a tenté de créer une nouvelle variable (Boot0002), mais lorsqu'il a tenté de définir cette variable par défaut, il avait disparu de la mémoire du firmware. En gros, cela indique un bogue dans le microprogramme (ou éventuellement dans efibootmgr), ou au moins une sorte de problème de microprogramme ou de mauvaise configuration. Il existe plusieurs solutions et solutions de contournement possibles, telles que:

  • Mettez à niveau votre microprogramme (ce que le fabricant appelle probablement un "BIOS") et réessayez. Cela peut résoudre le bug.
  • Localisez l'option du micrologiciel pour réinitialiser tous les paramètres par défaut, utilisez cette option, puis réessayez. Cela peut effacer le magasin de données du micrologiciel, ce qui rend les choses plus simples.
  • Enregistrez GRUB avec le firmware d’une autre manière, par exemple:
    • Utilisation de bcdedit sous Windows, comme décrit dans ma réponse à cette question.
    • Utilisation de l’interface graphique EasyUEFI sous Windows.
    • Utilisation d'un shell EFI, comme décrit dans le wiki Arch Linux.
    • L’intérêt de toutes ces options est qu’il est possible qu’au moins une partie du problème se trouve dans efibootmgr, l’utilisation d’un autre outil peut donc être plus efficace.
  • Si votre ordinateur est suffisamment récent, renvoyez-le au magasin pour obtenir un remboursement et achetez-en un qui ne soit pas cassé par sa conception.
  • Utilisez l'option "Avancé" Boot Repair pour sauvegarder et renommer les chargeurs de démarrage. Ceci mettra GRUB à la place du chargeur de démarrage Windows, détournant ainsi l'entrée Windows en cours de travail, et placera une copie du chargeur de démarrage Windows ailleurs. Il s’agit là d’une solution de contournement laide qui risque de revenir et de vous mordre plus tard, car la plupart des outils ne connaissent pas l’état extrêmement irrégulier que cette solution de contournement crée. Néanmoins, cela peut être la seule solution dans certains cas extrêmes.

J'essaierais les solutions à peu près dans cet ordre jusqu'à ce que l'une d'entre elles fonctionne, bien que vous puissiez les essayer dans l'ordre de votre choix.

1
Rod Smith

Vous devrez changer le bootorder dans votre BIOS. Au démarrage, vous devrez appuyer sur un bouton pour le saisir. Le plus souvent F2 ou del. Là, vous devrez choisir votre partition Ubuntu comme première priorité pour démarrer. Tout dépend de votre carte mère et de la version de votre bios. Recherchez votre carte mère si vous ne pouvez pas savoir sur quel bouton appuyer au démarrage.

0
Durgolias

Il semble que votre machine utilise UEFI. Je suppose que le nouveau chargeur de démarrage grub n’est pas reconnu par le BIOS et qu’il démarre donc Windows. J'ai observé ce comportement sur un ordinateur portable qui refusait de démarrer sous Linux (GRUB) à moins que l'option "Legacy Boot" ne soit sélectionnée.

Cela vous donne deux options:

  • essayez d'ouvrir le menu de démarrage ponctuel au démarrage en appuyant sur F12 ou Esc (il peut s'agir d'une autre touche, p.ex. F9 ) et sélectionnez un paramètre similaire à legacy boot
  • ouvrez les paramètres du BIOS avec F2, Del (ou une autre touche), naviguez jusqu’au démarrage ou resp. gestion de démarrage et recherchez une option "activer le démarrage hérité" ou comparable et l'activer

Si l'une de ces étapes fonctionne, vous savez qu'il s'agit d'un problème lié à UEFI et que votre chargeur de démarrage est toujours intact et fonctionne.

L'autre approche serait de vérifier pourquoi l'UEFI refuse maintenant de démarrer Ubuntu alors que cela fonctionnait auparavant. Cela peut être causé par:

  • paramètre de priorité de démarrage dans le BIOS
  • Les empreintes/signatures GRUB doivent être ajoutées à UEFI pour être acceptées comme chargeur de démarrage légitime.
  • votre GRUB est endommagé et vous pouvez réinstaller le chargeur de démarrage à partir d'un Live CD Ubuntu
0
MarkWatney

Windows 10 aime se voir comme le seul système d'exploitation installé sur votre ordinateur, vous empêchant ainsi de démarrer par d'autres. Ce que vous devez faire est de définir GRUB en tant que gestionnaire de démarrage par défaut dans Windows via une invite de commande ou PowerShell.

Exécutez cette commande:

bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi

Si vous utilisez PowerShell, exécutez cette commande:

bcdedit /set "{bootmgr}" path \EFI\ubuntu\grubx64.efi

Redémarrez votre ordinateur, puis grub devrait apparaître après le logo HP.

0
Vin

Avait un problème similaire: Win 7 et Xubuntu 15.10 -> Grub n'a jamais commencé. Quand j'ai essayé de restaurer grub j'ai reçu un message similaire:

Could not set variable Boot000B: No such file or directory

J'ai donc utilisé (sous Windows en tant qu'administrateur) bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi comme écrit ci-dessus. Grub fonctionne bien, mais sans Windows, ne peut être choisi.

Ajout de Windows à grub: j’ai suivi https://wiki.ubuntuusers.de/GRUB_2/Skripte/ (allemand) -> Créer un skrip exécutable "29_windows" dans "/etc/grub.d"

#!/bin/bash
# EFI-Partition suchen und auswerten
if [ -f /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi ]; then
    EFI_UUID=$( grub-probe -t fs_uuid /boot/efi/EFI )
    echo "Menüeintrag für Windows eingefügt" >&2

cat <<EOF
menuentry "Windows 7 Pro (UEFI)" {
    insmod fat
    insmod chain
    search --no-floppy --fs-uuid --set=root ${EFI_UUID}
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
EOF
fi

et courir

Sudo grub-mkconfig
Sudo update-grub

Grub a trouvé Windows via un script et automatiquement. Les deux fonctionnent, vous n'aurez peut-être pas besoin du script supplémentaire

0
Tom Peters