我刚在我的新笔记本上安装了Ubuntu 12.04(预装有Win7 64位),并以EFI模式启动,现在无法再加载Win7了(Ubuntu从grub引导正常)。
当我在grub菜单中选择Windows 7条目时,会出现以下错误:
grub.cfg的条目(由boot-repair生成)是:
这是分段输出的结果:
引导EFI分区,挂载为
以下是以下文件(不包括grub文件夹和引导根目录上的其他文件):
怎么修复这个问题?
谢谢。
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
}
这是分段输出的结果:
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
怎么修复这个问题?
谢谢。
EFI/Microsoft/Boot/bootmgfw.efi.grb
文件才是真正的Windows引导加载程序,所以将bootmgfw.efi
重命名为其他名称,然后将bootmgfw.efi.grb
重新重命名为bootmgfw.efi就可以解决问题。您可以检查这些文件和EFI/ubuntu/grubx64.efi
的文件大小来验证,或者使用diff
进行比较。顺便说一句,如果是这样,Ubuntu的开发人员可能这样做是为了解决一些EFI实现中的错误,但这样做有点不好! - Rod Smithset root=(hd0,gpt1)
设置为根目录,因为那是我的戴尔电脑存放EFI分区的位置。 - Mutant Bob