web-dev-qa-db-fra.com

Chemin de fichier EFI non valide

je viens d'installer Ubuntu 12 sur mon nouvel ordinateur portable (avec Win7 64 bits pré-installé) en mode EFI et maintenant je ne peux plus charger Win7 (Ubuntu se charge très bien de grub). Lorsque je sélectionne l’entrée Windows 7 dans le menu de base, j’obtiens cette erreur:

Invalid EFI file path

L'entrée grub.cfg (générée par boot-repair) est:

menuentry "Windows 7 (loader) (on /dev/sda3)" --class windows --class os {
    insmod part_gpt
    insmod ntfs
    set root='(hd0,gpt3)'
    search --no-floppy --fs-uuid --set=root B8449665449625E2
    chainloader +1
}

Voici la sortie séparée:

GNU Parted 2.3
Viene usato /dev/sda
Benvenuti in GNU Parted. Digitare "help" per l'elenco dei comandi.
(parted) print list
Modello: ATA ST9500325AS (scsi)
Disco /dev/sda: 500GB
Dimensione del settore (logica/fisica): 512B/512B
Tabella delle partizioni: gpt

Numero  Inizio  Fine   Dimensione  File system  Nome                  Flag
 5      1049kB  106MB  105MB       fat32                              avvio
 3      345MB   200GB  200GB       ntfs         Basic data partition
 1      200GB   200GB  1049kB                                         bios_grub
 2      200GB   496GB  296GB       ext4
 4      496GB   500GB  4172MB

La partition de démarrage EFI, montée en tant que

/dev/sda5 on /boot/efi type vfat (rw) ) 

contient les fichiers suivants (à l’exclusion du dossier grub et des autres fichiers de la racine de démarrage):

./efi
./efi/efi
./efi/efi/boot
./efi/efi/boot/bootx64.efi
./efi/efi/ubuntu
./efi/efi/ubuntu/grubx64.efi
./efi/efi/Microsoft
./efi/efi/Microsoft/Boot
./efi/efi/Microsoft/Boot/bootmgfw.efi.grb
./efi/efi/Microsoft/Boot/bootmgfw.efi
./efi/efi/Microsoft/Boot/bootx64.efi.grb
./efi/efi/Microsoft/Boot/bootx64.efi

Comment puis-je réparer cela ?

Merci

9

Votre entrée GRUB pour Windows est appropriée pour un démarrage en mode BIOS, mais pas pour un démarrage en mode EFI. C'est un bogue GRUB. Vous pouvez essayer de remplacer l’entrée par quelque chose comme ce qui suit:

menuentry "Windows 7" {
    insmod part_gpt
    insmod chain
    set root='(hd0,gpt5)'
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

Je ne donne aucune garantie que cela fonctionnera, mais cela se pourrait. Si c'est le cas, ajoutez cette entrée à /etc/grub.d/40_custom afin qu'elle soit recréée chaque fois qu'Ubuntu mettra à jour sa configuration GRUB.

Une autre option consiste à utiliser un autre gestionnaire de démarrage en plus de GRUB ou à la place de celui-ci. rEFInd, par exemple, détectera automatiquement Windows et GRUB; et si vous utilisez des noyaux 3.3.0 ou ultérieurs (livrés avec Ubuntu 12.10, mais pas avec Ubuntu 12.04), vous pouvez démarrer Linux directement avec rEFInd, en contournant entièrement GRUB. gummiboot est une autre option avec des capacités de démarrage similaires, mais elle nécessite davantage de maintenance manuelle si vous souhaitez démarrer Linux directement avec gummiboot.

5
Rod Smith

Enfin, j’ai résolu le formatage et la réinstallation de tout, à partir de rien ... fondamentalement (je ne sais pas pourquoi) grub avait écrasé le chargeur Windows 7, c’était le problème.

2