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)
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:
efibootmgr
, si nécessaire. Dans le live CD d'Ubuntu, vous feriez ceci en tapant Sudo apt-get install efibootmgr
.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.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:
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.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!
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
Au lieu de la réparation recommandée, essayez ceci:
Backup and rename EFI files
-> cocher Restore EFI backups
-> Appliquer.Ubuntu
, puis redémarrez.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.