Grub n'affiche pas d'option Windows 8 après un double démarrage

25

J'ai donc réussi le double démarrage de ma machine Windows 8 avec Ubuntu 12.04. Cependant, je n'ai toujours pas de méthode pratique pour choisir le système d'exploitation à charger au démarrage.

Après avoir installé Ubuntu, mon ordinateur charge toujours Windows 8 directement. J'ai ensuite ajouté grubx64.efià la liste blanche de mon chargeur de démarrage. Mais après cela, ma machine charge Ubuntu directement sans même qu'une ombre de GRUB n'apparaisse!

J'ai utilisé la réparation de démarrage et j'ai obtenu cette URL paste.ubuntu : paste.ubuntu.com/1326074 . Après avoir exécuté la réparation de démarrage (et re-liste blanche du grubx64.efifichier), GRUB apparaît maintenant mais sans aucune option Windows 8!

Enfin, j'ai couru sudo fdisk -let cela m'a donné ceci:

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sda: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders, total 1465149168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x6396389f

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1  1465149167   732574583+  ee  GPT
Partition 1 does not start on physical sector boundary.

Je suppose que mon problème a quelque chose à voir avec l'avertissement d'en fdiskhaut, mais je ne sais pas quoi en faire. Comment dois-je procéder maintenant?

modifier

Mon etc/default/grubest comme suit:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

Aussi, juste pour mémoire, c'est ce que j'ai suivi lors de l'installation de mon dual-boot. Le tutoriel (qui utilise, 11.10, je dois le noter), ne mentionne rien de ce problème. Y a-t-il quelque chose que je n'aurais pas dû faire?

skytreader
la source
Lisez cette réponse, peut vous aider: askubuntu.com/questions/84501/…
NickTux
Pour plus d'informations: ubuntuforums.org/showpost.php?p=12342042&postcount=613
LovinBuntu

Réponses:

17

Tout d'abord, votre fdisk -lsortie n'est pas un problème; qui identifie simplement votre disque comme utilisant le système de partitionnement GUID Partition Table (GPT) . Pour afficher vos partitions, vous devez utiliser à la place un outil compatible GPT, tel que gdiskou parted, plutôt que fdisk, qui ne comprend pas GPT.

Deuxièmement, vous pouvez obtenir GRUB pour charger en chaîne Windows en ajoutant une entrée appropriée à /etc/grub.d/40_custompuis en effectuant un sudo update-grub. Une entrée peut ressembler à ceci:

menuentry "Windows 8" {
    set root='(hd0,gpt1)'
    chainloader /EFI/microsoft/BOOT/bootmgfw.efi
}

Les détails peuvent cependant dépendre de votre installation.

Troisièmement, si vous considérez rEFInd comme laid, vous pouvez toujours essayer un autre thème rEFInd ou créer le vôtre, comme décrit dans la documentation de rEFInd. Alternativement, si vous préférez un chargeur de démarrage en mode texte, vous pouvez définir l' textonlyoption dans refind.conf. Vous pouvez atteindre une fin similaire en passant à gummiboot.

Quatrièmement, si rEFInd signale périodiquement des erreurs, veuillez les noter ou prendre une photo de l'écran avec un appareil photo numérique et me les signaler. (Je suis le responsable de rEFInd.) Les bogues ne peuvent pas être corrigés si personne ne les signale; ou s'ils ne sont pas des bogues dans rEFInd, les messages peuvent fournir des indices sur la façon de résoudre le problème.

Enfin, il est possible de démarrer Linux via rEFInd (ou gummiboot) sans utiliser GRUB; vous avez juste besoin d'un chargeur de démarrage EFI différent. Ma préférence personnelle est le chargeur de stubs EFI du noyau Linux . Ceci n'est disponible que dans les noyaux 3.3.0 et ultérieurs. Comme Ubuntu 12.04 est livré avec un noyau 3.2.0, vous devrez soit trouver une version 3.3.0 pré-construite pour Ubuntu 12.04 (j'ai entendu parler de telles choses, mais je n'ai pas de liens à portée de main) ou créer votre propre à partir du code source. (Vous pouvez également installer Ubuntu 12.10, qui est livré avec un noyau approprié, mais vous voulez probablement une version LTS, donc cela peut ne pas être optimal.) Voir la page de la documentation rEFInd sur le démarrage de Linuxpour plus de détails sur la façon de configurer cela. Vous pouvez également utiliser ELILO ou GRUB Legacy. Si vous vous opposez simplement au délai, vous pouvez réduire la valeur du délai d'expiration GRUB 2 et la définir pour ne pas afficher le menu par défaut.

Rod Smith
la source
1
Tout d'abord, wow, je ne savais pas que vous êtes le mainteneur de rEFInd. Ensuite, en ce qui concerne l'entrée de menu GRUB ... J'ai essayé, mais cela ne fonctionne pas. Entre autres coups de feu dans le noir, j'ai essayé de régler ma partition ESP, mais en vain. Même essayé d'utiliser l'un de ces éditeurs graphiques GRUB (oublié le nom). Enfin, en ce qui concerne rEFInd, les erreurs qu'il rapporte ne sont pas critiques (modifieront mon message pour le noter) --- au démarrage, il me dit simplement qu'il ne peut pas trouver certains .efi. Je ne sais pas d'où ils viennent.
skytreader
Vérifiez la présence du fichier spécifié sur l'ESP. Assurez-vous également que la casse du nom de fichier est correcte. (Cela ne devrait pas avoir d'importance, mais je connais un buggy EFI où il le fait!) Si cela n'aide pas, quel message d'erreur (le cas échéant) est renvoyé par GRUB lorsque vous essayez de lancer Windows via cette entrée?
Rod Smith
8

Démarrez dans Ubuntu à l'aide du CD,
choisissez «Essayer Ubuntu»,
connectez - vous à Internet,
ouvrez une fenêtre de terminal à l'aide de Ctrl- Alt- tpuis exécutez:boot-repair

Si la réparation de démarrage n'est pas trouvée, installez-la:

sudo add-apt-repository ppa:yannubuntu/boot-repair &&
sudo apt-get update &&
sudo apt-get install -y boot-repair &&
boot-repair

Cliquez sur Réparation recommandée. Écrivez sur un papier la nouvelle URL qui apparaîtra. Redémarrez le PC, vous devriez obtenir un menu GRUB avec accès à la fois à Ubuntu et à Windows. En cas de problème, indiquez la nouvelle URL.

Scott Stensland
la source
7

Les deux réponses /EFI/Microsoft/Boot/bootmgfw.efiferaient l'affaire. Cependant, j'ai piraté comme un enfer pour obtenir les bons paramètres pour set root='(hd0,gpt1)'. Si vous savez que c'est très simple

Lorsque GRUB démarre: appuyez sur c donner la commande lsà l'invite.
Vous obtenez une liste de partitions sur des disques durs comme (hd0, gpt1) etc.
Tapez ls(hd0, gpt1) et essayez les autres.
Regardez l'étiquette et si elle indique EFI, vous savez que vous avez un succès.

Avertissement: il pourrait y avoir plus de partitions étiquetées avec EFI, selon la façon dont vous avez installé Ubuntu. Essayez-les tous.

Jørgen
la source
6

Essayez de courir sudo update-grub. J'espère que cela devrait reconnaître Windows 8 automatiquement et l'ajouter au GRUB et reconfigurer le menu.

Si cela échoue, veuillez partager votre /etc/default/grubfichier ici, nous allons y jeter un œil.

Tom Klino
la source
1
Salut. sudo update-grubn'a pas fait l'affaire. J'ai modifié ma question pour inclure ma /etc/default/grub. Pendant ce temps, j'étudie la réponse liée à NikTh.
skytreader
3

Essayez de créer un fichier appelé /etc/grub.d/30_windowsqui contient ceci:

#! /bin/bash
cat << EOF
menuentry "Windows 8" {
    insmod part_gpt
    insmod chain
    set root='(hd0,gpt1)'
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
EOF
Ensuite, exécutez sudo update-grubet redémarrez.

Tutoriel complet

tradeJmark
la source
1
  1. Veuillez télécharger Super Grub et suivez ses instructions. Je ne quitte jamais la maison sans ça. Très utile lorsque le menu grub ne s'affiche pas.

  2. Vous devrez charger sur un CD et le démarrer. Suivez simplement les instructions qui l'accompagnent.

  3. Il peut également être utilisé pour réparer les fenêtres. Comme vous ne pouvez démarrer que sous Windows 8, vous souhaitez choisir le correctif Linux.

Jouez avec cela, mais relisez les instructions. Vous vous sentirez comme un expert après un certain temps. RS

Renard
la source
0

Ma solution de contournement ultime

(* Parce que Tom n'a pas fonctionné et que le lien de NikTh est trop compliqué. Mais bon, merci pour la peine!)

Installez rEFInd .


J'accepte ma propre réponse jusqu'à ce que quelqu'un signale une faille possible et un correctif ou résout mes problèmes (qui, malheureusement, pose simplement la question "Comment puis-je mettre Windows 8 dans GRUB facilement ?").

( Edit 8/6/17: J'ai finalement utilisé rEFInd pour résoudre ce problème (voir la réponse acceptée ci-dessus).)

Loin d'une solution parfaite, utiliser rEFInd semble être un travail très piraté. D'une part, il semble moche (désolé rEFInd) et me dit que l'accès a été refusé sur certains .efi ({ext2_x64, hfs_x64, iso9660_x64, reiserfs_x64} .efi) au démarrage --- rien de critique cependant, et disparaît avec un bouton presse*. Et, enfin, choisir le Ubuntu efi charge toujours GRUB, ce qui est une étape entièrement inutile, du moins car je ne prendrai pas la peine de garder plusieurs versions du noyau.

En résumé...

Avantages: mon système fonctionne désormais plus ou moins comme mes doubles bottes pré-UEFI. Inconvénients: il a l'air moche plus un temps de démarrage plus long.

* Je dois noter que ce rEFInd a été installé via install.shsur ma partition Ubuntu. Les expériences précédentes avec rEFInd (configuré via Windows) n'ont pas rencontré ce problème.

skytreader
la source
Si une installation précédente de rEFInd via Windows ne génère pas d'erreurs sur les fichiers introuvables mais que votre installation actuelle de Linux le fait, mon intuition est que l'une des deux choses se passe: 1) Vous avez une carte mère avec un bogue sensible à la casse, auquel cas le nettoyage avec le cas des fichiers ou des répertoires peut améliorer les choses; ou 2) Votre ESP a quelque chose d'étrange (FAT16 contre FAT32 ou quelques dommages mineurs au système de fichiers, par exemple). Certains EFI semblent être très pointilleux sur les systèmes de fichiers sur leurs ESP. Les noms de fichiers exacts peuvent être utiles pour réduire le problème.
Rod Smith
D'accord. Ma faute. Cela ne voulait pas dire qu'il ne pouvait pas trouver certains efis, mais simplement que son accès avait été refusé sur certains efis (donc je suppose que lesdits efis sont là, tout simplement inaccessibles?). J'ai noté ces fichiers maintenant, mais je ne sais toujours pas d'où ils viennent.
skytreader
"Accès refusé" est une erreur inhabituelle sur EFI, selon mon expérience. AFAIK, EFI ne prend pas en charge la propriété ou les autorisations comme le fait Linux, donc cela n'a vraiment de sens qu'en cas d'erreur de lecture du disque. J'ai vu des erreurs d' écriture de disque étranges sous EFI qui se sont évaporées au prochain redémarrage. Si ce problème persiste, vous pouvez envisager d'exécuter un test SMART sur votre disque en cas de défaillance matérielle, et de sauvegarder et réécrire l'ESP au cas où il y aurait des dommages étranges au système de fichiers que dosfsck ne peut pas réparer. En dehors de cela, il peut être utile de signaler les fichiers qui posent problème.
Rod Smith
1
Le message "accès refusé" concerne presque certainement Secure Boot. Un tel message apparaît si rEFInd essaie de charger un binaire EFI non signé en mode Secure Boot. Ce qui est déroutant, c'est que vous pouvez lancer rEFInd, car il n'est pas signé lui-même. Mon intuition est que vous avez une sorte de paramètre de démarrage sécurisé à demi-buggy bizarre dans votre firmware. La solution la plus simple pour le moment est de désactiver complètement le démarrage sécurisé, mais il y en a d'autres. Voir ma page Web à rodsbooks.com/efi-bootloaders/secureboot.html pour plus d'informations.
Rod Smith
Sur mon ordinateur portable hp, je dois appuyer sur f9, puis grub démarre, sinon Windows se charge. Il existe également une option pour démarrer Windows à partir de grub, bien que je ne l'utilise jamais. Si je m'ennuie dans Windows, je l'allume et j'attends Windows. Si je prévois de démarrer Ubuntu, j'appuie simplement sur f9 dès que j'allume.
geoffmcc