Недійсний шлях до файлу EFI


11

Я щойно встановив Ubuntu 12 на своєму новому ноутбуці (з попередньо встановленою програмою Win7 64bit) в режимі EFI, і тепер я більше не можу завантажувати Win7 (Ubuntu просто чудово завантажує з ґрунту). Коли я вибираю запис Windows 7 у меню grub, я отримую цю помилку:

Invalid EFI file path

Запис grub.cfg (згенерований ремонтом завантаження):

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

Як я можу це виправити?

Дякую

Відповіді:


6

Ваш запис GRUB для Windows підходить для завантаження в режимі 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 або замість нього. Наприклад, rEFInd автоматично виявить і Windows, і GRUB; і якщо ви використовуєте ядра 3.3.0 або новіших версій (поставляються з Ubuntu 12.10, але не з Ubuntu 12.04), ви можете завантажувати Linux безпосередньо з rEFInd, повністю обходячи GRUB. gummiboot - це ще один варіант із подібними можливостями завантаження, але він потребує більшого технічного обслуговування, якщо ви хочете завантажувати Linux безпосередньо за допомогою gummiboot.


Використовуючи цей запис у меню, пересилає мене з grub на чорний екран, а потім знову на груб :(
Simone Margaritelli

refind дає мені опцію windows, якщо я виберу це меню, відкрите Oo
Simone Margaritelli

1
Це здається, що Ubuntu перейменував завантажувач Windows і встановив себе на своє місце! Моя переконання, що EFI/Microsoft/Boot/bootmgfw.efi.grbфайл на ESP - це справжній завантажувач Windows, тому перейменування bootmgfw.efiна щось інше, а потім перейменування bootmgfw.efi.grbназад на bootmgfw.efi це виправить. Ви можете перевірити розміри файлів цих файлів і EFI/ubuntu/grubx64.efiперевірити це, або скористатися diffдля їх порівняння. FWIW, розробники Ubuntu, можливо, зробили це для усунення помилок у деяких реалізаціях EFI, але це досить неслухняно, якщо так!
Род Сміт

1
На своєму ноутбуці мені довелося, set root=(hd0,gpt1)бо саме там мій DELL зберігає розділ EFI.
Мутант Боб

Не обманюйте себе, оскільки автозаповнення вкладки може бачити gpt-мітки тощо, що вони використовуватимуть їх для завантаження. insmod part_gptПотрібно. Якщо ви знаходитесь там, щоб виправити ланцюг завантаження, що не стосується Windows GRUB, і ваш шлях правильний, це ваша відповідь.
SleighBoy

2

Нарешті, я вирішив форматування та перевстановлення всього з нуля ... в основному (не знаю, чому) grub перезаписав завантажувач Windows 7, це була проблема.


1
У Ubuntu раніше була помилка, де вона витирала б ESP, але я вважав, що це виправлено. Можливо, це затримується за якихось обставин. :-( Порада: Створіть резервну копію всього свого ESP. Таким чином, якщо трапиться щось дивне, ви можете відновити це в майбутньому. (EFI не покладається на код сектору завантаження, тому резервне копіювання на рівні файлу працює нормально.)
Rod Сміт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.