私はちょうど新しいラップトップ(Ubuntu 64ビットがプリインストールされている)にUbuntu 12をEFIモードでインストールしましたが、Win7はもうロードできません(Ubuntuはgrubから正常にロードします)。 GRUBメニューでWindows 7エントリを選択すると、次のエラーが表示されます。
Invalid EFI file path
Grub.cfgエントリ(boot-repairによって生成される)は次のとおりです。
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
}
これはparted出力です:
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
ブートEFIパーティション、としてマウント
/dev/sda5 on /boot/efi type vfat (rw) )
次のファイルがあります(grubフォルダーとブートルート上の他のファイルを除く)。
./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
どうすれば修正できますか?
ありがとう
WindowsのGRUBエントリは、BIOSモードのブートには適していますが、EFIモードのブートには適していません。これはGRUBバグです。エントリを次のようなものに置き換えることができます。
menuentry "Windows 7" {
insmod part_gpt
insmod chain
set root='(hd0,gpt5)'
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
これが機能するという保証はありませんが、機能する可能性はあります。存在する場合は、そのエントリを/etc/grub.d/40_custom
に追加して、UbuntuがGRUB構成を更新するたびに再作成されるようにします。
別のオプションは、GRUBに加えて、またはGRUBの代わりに別のブートマネージャーを使用することです。 rEFInd、 たとえば、WindowsとGRUBの両方を自動検出します。また、3.3.0以降のカーネル(Ubuntu 12.10では出荷されていますが、Ubuntu 12.04では出荷されていません)を使用している場合、GRUBを完全にバイパスしてrEFIndでLinuxを直接起動できます。 gummiboot は、同様のブート機能を備えた別のオプションですが、gummibootでLinuxを直接ブートする場合は、より多くの手動メンテナンスが必要です。
最後に、フォーマットとすべてをゼロから再インストールすることを解決しました...基本的に(理由はわかりません)grubがWindows 7ローダーを上書きしていたことが問題でした。