web-dev-qa-db-fra.com

Windows 8 change GRUB2 à chaque démarrage!

J'ai installé Windows 8 et Ubuntu 12.10 à la fois en UEFI (win8 d'abord, puis Ubuntu). GRUB2 me montre les entrées Ubuntu et Win8.

Si je démarre sous Ubuntu, c'est bien. Je pourrais redémarrer à tout moment je verrai GRUB2 inchangé.

L'histoire change lorsque je démarre dans Win8. Lorsque je démarre sous Win8 avec GRUB2, le gestionnaire de démarrage Windows (qui ne dispose que de l’entrée Windows 8) est utilisé. Je frappe Windows et ça démarre bien. Lorsque je redémarre, il n'y a pas de chargeur GRUB2 ni Win. Il n'a pas de chargeur de démarrage.

J'ai démarré un LiveCD et téléchargé boot-repair et tout est de retour. C'est un cycle sans fin.

Est-ce que GRUB2 est censé charger le chargeur de démarrage Win? Que puis-je faire pour le réparer?

Plus d'information:

USER@MACHINE:~$ ls -l `find /boot/efi -iname "*\.efi"`

-rwxr-xr-x 1 root root 1357480 Dec  9 21:41 /boot/efi/EFI/Boot/bootx64.efi
-rwxr-xr-x 1 root root 1357480 Dec  9 21:41 /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
-rwxr-xr-x 1 root root 1350896 Jul 25 20:57 /boot/efi/EFI/Microsoft/Boot/bootmgr.efi
-rwxr-xr-x 1 root root 1357480 Dec  9 21:41 /boot/efi/EFI/Microsoft/Boot/bootx64.efi
-rwxr-xr-x 1 root root 1263856 Jul 25 20:57 /boot/efi/EFI/Microsoft/Boot/memtest.efi
-rwxr-xr-x 1 root root  897400 Dec  9 21:41 /boot/efi/EFI/ubuntu/grubx64.efi
-rwxr-xr-x 1 root root 1357480 Dec  9 21:41 /boot/efi/EFI/ubuntu/shimx64.efi

USER@MACHINE:~$ ls -l `find /boot/efi -iname "*\.bkp"`

-rwxr-xr-x 1 root root 1354480 Jul 25 20:57 /boot/efi/EFI/Boot/bootx64.efi.bkp
-rwxr-xr-x 1 root root 1354480 Jul 25 20:57 /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi.bkp

USER@MACHINE:~$ Sudo parted /dev/sda print

Model: ATA ST31000524AS (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system     Name                          Flags
 1      1049kB  316MB   315MB   ntfs            Basic data partition          hidden, diag
 2      316MB   420MB   105MB   fat32           EFI system partition          boot
 3      420MB   555MB   134MB                   Microsoft reserved partition  msftres
 4      555MB   751GB   750GB   ntfs            Basic data partition
 5      751GB   998GB   248GB   ext4
 6      998GB   1000GB  2000MB  linux-swap(v1)
7
yxd

Démarrez sous Linux, tapez les trois commandes suivantes dans un shell et publiez le résultat ici:

ls -l `find /boot/efi -iname "*\.efi"`
ls -l `find /boot/efi -iname "*\.bkp"`
Sudo parted /dev/sda print

Notez que ce sont des réticulations (à gauche de la touche "1" sur la plupart des claviers) autour des commandes find.

Le résultat devrait être une liste de tous les chargeurs de démarrage sur votre ESP, y compris les noms normaux et les versions renommées créées par Boot Repair; et une liste de toutes les partitions sur votre disque.

Aussi, quel type d'ordinateur utilisez-vous? (Marque et modèle.) Windows 8 est-il fourni ou l'avez-vous installé vous-même?

Malheureusement, certains fabricants jouent à des jeux très pénibles avec leurs chargeurs de démarrage sur des ordinateurs Windows 8 pré-chargés. IMHO, éliminer ces installations et repartir de zéro ressemble de plus en plus à une bonne solution.


Modifier/répondre à de nouvelles informations:

Il n'y a rien dans votre sortie qui soit étrange ou inattendu, il semble donc que quelque chose dans Windows "répare" ce qu'il considère comme son propre chargeur de démarrage "défectueux". Cela nécessite quelques précisions qui vous aideront à comprendre ce qui se passe:

Une implémentation EFI (ou UEFI, qui n'est autre que EFI 2.x) est supposée vérifier les entrées de la NVRAM pour décider quel chargeur de démarrage (un fichier avec une extension .efi) à exécuter lors de son démarrage. Certaines implémentations sont toutefois endommagées et ne démarreront que le chargeur de démarrage EFI/BOOT/bootx64.efi ou EFI/Microsoft/Boot/bootmgfw.efi. D'autres démarreront d'autres chargeurs de démarrage, mais uniquement s'ils portent le nom "Gestionnaire de démarrage Windows" ou "Red Hat Enterprise Linux".

Pour contourner ce type de bogue, l’outil Ubuntu Boot Repair implémente un correctif au moins aussi laid et déroutant que le bogue qu’il contourne: il renomme ces deux chargeurs d’amorçage par défaut avec les extensions .bkp, place des copies de GRUB à leur place et ajuste GRUB pour qu'il lance les chargeurs d'amorçage Windows sous leurs nouveaux noms. Ceci démarre GRUB, mais d'une manière que Windows ne comprend pas et peut tenter de se "réparer" lui-même. Je pense que c'est ce qui se passe - lorsque Windows démarre, il voit que son chargeur de démarrage a été écrasé par un autre et il essaie donc de corriger le problème.

Je vous recommande d'essayer ce qui suit:

  1. Consultez le site Web de votre fabricant pour savoir s’il existe une mise à jour du micrologiciel. Si tel est le cas, mettez à jour votre micrologiciel avec la dernière version, au cas où il y aurait un correctif pour ce type de bogue de démarrage.
  2. Démarrez Windows et redémarrez pour vérifier que lorsque vous redémarrez, vous accédez directement à Windows. Vous voulez commencer à partir de ce point car il est plus standard que la configuration de Boot Repair.
  3. Démarrez un disque d’urgence Linux en mode EFI. (Le disque d'installation Ubuntu devrait fonctionner correctement pour cela.)
  4. Installez l'utilitaire efibootmgr, si nécessaire. Dans le live CD d'Ubuntu, vous feriez ceci en tapant Sudo apt-get install efibootmgr.
  5. Tapez Sudo efibootmgr -c -l \\EFI\\ubuntu\\shimx64.efi -L "Windows Boot Manager" -p 2. Veillez à saisir cette commande exactement comme spécifié, y compris les barres obliques inversées doublées en tant que séparateurs de chemin de répertoire. Ceci devrait configurer GRUB pour qu'il se lance en tant que chargeur de démarrage par défaut, en lui attribuant le nom de micrologiciel "Gestionnaire de démarrage Windows" au cas où vous auriez ce bogue. (Vous pouvez essayer avec un nom moins trompeur, et sur la plupart des systèmes, cela fonctionnera, mais peut-être pas pour vous.) Si vous n'utilisez pas l'utilisation de Secure Démarrez, vous pouvez remplacer grubx64.efi par shimx64.efi dans cette commande, mais étant donné que shimx64.efi est présent sur votre système, je soupçonne que vous utilisez Secure Boot.
  6. Redémarrez et testez-le.

Si cela fonctionne à ce stade, alors super. S'il démarre sur GRUB mais que GRUB ne peut pas lancer Windows, vous devrez peut-être ajuster votre configuration GRUB pour qu'elle fasse référence à EFI/Microsoft/Boot/bootmgfw.efi plutôt qu'à EFI/Microsoft/Boot/bootmgfw.efi.bkp.

Si vous ne parvenez pas à ce que votre système lance GRUB de cette manière, il se peut que vous disposiez d'un micrologiciel très endommagé au cerveau, associé à quelque chose dans Windows qui "corrige" automatiquement un chargeur de démarrage "endommagé" à chaque démarrage. en fermant votre meilleure avenue (bien que laide) de réparation. Dans ce cas, j'ai plusieurs autres suggestions:

  • Si l'ordinateur est suffisamment récent, retournez-le au magasin et procurez-vous-en un nouveau. Faites bien comprendre au magasin et au fabricant pourquoi vous le renvoyez.
  • Cherchez dans Windows ce qui vérifie et "répare" son chargeur de démarrage et désactivez-le. Vous devriez alors pouvoir utiliser la réparation de démarrage d'Ubuntu ou faire quelque chose de similaire manuellement pour que tout fonctionne.
  • Créez un deuxième ESP et installez-le GRUB (ou un autre chargeur de démarrage Linux) en utilisant les noms Microsoft. En jonglant avec les numéros d’identification de partition (avec gdisk, par exemple - utilisez l’option t du menu des experts), vous pourrez peut-être demander au microprogramme d’utiliser le chargeur de démarrage de votre choix tout en faisant en sorte que Windows se penche sur son propre chargeur de démarrage. C'est hautement spéculatif, bien que; cela pourrait ne pas fonctionner du tout.
  • Créez un lecteur flash USB avec mon gestionnaire de démarrage rEFInd. . Vous pourrez ensuite l'insérer dans l'ordinateur et démarrer à partir du périphérique USB pour obtenir rEFInd, qui devrait ensuite détecter les deux. Windows et GRUB et vous donne l'option de démarrer l'un ou l'autre. Avec un peu de reconfiguration supplémentaire, vous pourriez le faire démarrer directement Linux. Si vous pouvez configurer votre micrologiciel pour qu'il démarre par le périphérique USB par défaut, vous pouvez laisser le lecteur USB branché en permanence pour une solution permanente.
  • Installez rEFInd ou GRUB à partir de Windows . Je suis loin d’en être positif, mais si vous installez un chargeur de démarrage à partir de Windows ( comme décrit sur le site Web de rEFInd), il peut éviter tout ce qui, dans Windows, jongle avec les chargeurs de démarrage, permettant ainsi à votre chargeur de démarrage préféré de s'exécuter par défaut.

Notez que si vous utilisez une solution impliquant rEFInd, vous devrez peut-être la configurer avec Secure Boot, , ce qui implique de sauter par-dessus des cercles supplémentaires. (Cette situation s'améliorera avec le temps, mais pour le moment, cela reste un peu gênant.) Vous pouvez également désactiver le démarrage sécurisé dans votre micrologiciel.

J'espère que ça aide!

5
Rod Smith

Windows 8 avec la fonctionnalité d'activation de redémarrage rapide "récupérera" certaines données, notamment les chargeurs de démarrage EFI, lors de la fermeture. Par conséquent, après avoir configuré l’environnement à double amorçage et amorcé Windows 8 une fois, vous perdrez vos paramètres d’amorçage lors de l’amorçage suivant. C’est pourquoi vous devez désactiver la fonction de redémarrage rapide.

Lancez cmd.exe en tant qu'administrateur et tapez:

powercfg /h off

Vérifiez les paramètres:

powercfg /a

0
alfioalex

Au lieu de la réparation recommandée, essayez ceci:

  1. exécuter Boot-Repair -> Options avancées -> Décocher Backup and rename EFI files -> cocher Restore EFI backups -> Appliquer.
  2. Redémarrez le PC
  3. S'il démarre directement sous Windows, configurez votre microprogramme UEFI (~ BIOS) pour démarrer l'entrée Ubuntu, puis redémarrez.
0
LovinBuntu

Microsoft craint comme toujours, ils ne veulent pas d'un autre système d'exploitation, alors ils écrasent simplement le gestionnaire de démarrage. Cherchez bcdedit dans Windows 8. Je n’ai pas encore découvert comment le changer.

Empêcher Windows 8 d'écraser bootmgr par défaut

0
Kouros