GRUB Error: error: invalid EFI file path
Linux Bootloader
Ошибка GRUB: invalid EFI file path — Причины и решение
При попытке передачи управления ядру или цепной загрузки (chainload) Windows/другой ОС GRUB возвращает ошибку: error: invalid EFI file path или error: cannot load image.
| Сценарий ошибки | Локализация | Диагностический признак |
|---|---|---|
| Dual-boot Chainload | Смещение пути к bootmgfw.efi | GRUB не может найти путь EFI Microsoft |
| Битые слеши в конфиге | Использование Unix-слешей вместо DOS | Синтаксис путей в chainloader |
| Ошибки в NVRAM | Сбиты переменные загрузки материнской платы | UEFI BIOS не видит загрузчик Linux |
- Проверьте фактическое наличие и пути к файлам EFI на ESP-разделе:
sudo mount /dev/nvme0n1p1 /boot/efi ls -la /boot/efi/EFI/* - Отредактируйте
/etc/grub.d/40_customдля корректной цепочки chainloader:menuentry "Windows Boot Manager" { insmod part_gpt insmod fat search --no-floppy --fs-uuid --set=root <UUID-ВАШЕГО-EFI-РАЗДЕЛА> chainloader /EFI/Microsoft/Boot/bootmgfw.efi } - Обновите загрузчик в NVRAM с помощью
efibootmgr:sudo efibootmgr -v # Создание корректной записи при необходимости: sudo efibootmgr -c -d /dev/nvme0n1 -p 1 -L "Ubuntu GRUB" -l "\EFI\ubuntu\grubx64.efi" - Выполните регенерацию конфигурации:
sudo update-grub.
Важно: Пути внутри директивы
chainloader чувствительны к регистру символов на некоторых UEFI-прошивках вендоров (HP/Lenovo). Проверяйте точный регистр каталогов EFI.
Практический опыт инженера:
Некоторые реализации UEFI BIOS требуют обратных слэшей `\` вместо прямых `/` при передаче пути через команду `chainloader`.
Частые вопросы (FAQ)
Что делать, если материнская плата сбрасывает запись GRUB при перезагрузке?
Скопируйте grubx64.efi в стандартный путь отката: /boot/efi/EFI/BOOT/BOOTX64.EFI.
Как удалить дублирующиеся и нерабочие EFI записи?
Используйте команду: sudo efibootmgr -b <номер_записи> -B