1

У меня есть 2 диска (/dev/sda и /dev/sdb) на ноутбуке UEFI. Оба GPT.

sda1 - NTFS  - Windows,
sda2 - FAT32 - EFI partition where is Windows Boot Manager and GRUB

sdb1 - NTFS  - another windows 
sdb2 - NTFS  - My data
sdb3 - FAT32 - EFI partition
sdb4 - EXT4  - Debian

в порядке EFI я вижу Windows Boot Manager и GRUB. Я могу измениться между тем, и это работает. Я считаю, использовать syslinux для загрузки в Debian. Я хочу иметь syslinux на sdb3, я смонтировал его и скопировал эти файлы в этот раздел по адресу:

/EFI/SYSLINUX/initrd.img
/EFI/SYSLINUX/ldlinux.e64
/EFI/SYSLINUX/syslinux.cfg
/EFI/SYSLINUX/syslinux.efi
/EFI/SYSLINUX/vmlinuz

vmlinuz и initrd я скопировал из sdb4\boot и переименовал. syslinux.efi и ldlinux.e64, которые я скопировал с syslinux-6.03.tar.gz, загруженного с http://kernel.org. syslinux.cfg я написал и содержимое

PROMPT 0
TIMEOUT 300
DEFAULT deb

LABEL deb
    LINUX vmlinuz
    APPEND ROOT=/dev/sdb4
    INITRD initrd.img

Затем я добавил запись в EFI через команду

efibootmgr -c -d /dev/sdb3 -p 1 -l \\EFI\\SYSLINUX\\syslinux.efi -L "SYSLINUX2"

Менеджер efiboot ответил успешно и показывает SYSLINUX2 в качестве параметров загрузки, но когда я перезагружаю компьютер (с помощью команды перезагрузки) и переходит к настройкам UEFI, опция SYSLINUX2 не добавляется. Есть только GRUB и Windows Boot Manager. После следующей загрузки в Debian efibootmgr тоже отвечает только на Windows Boot Manager и GRUB.

Я читал, что у некоторых людей были проблемы с безопасной загрузкой. Я отключил его и GRUB не имеет проблем с этим.

Что случилось? Как сделать настройку efibootmgr постоянной? Где я ошибся (если есть)?

3 ответа3

1

ОБНОВИТЬ:

Привет, я снова,

снова начал работать над ним, теперь исправлено переименование файла .efi в эквивалент Windows (bootmgfw.efi), затем перемонтировал файл efivar systemme efivarfs, как в приведенном выше описании, затем установил загрузочную запись uefi в VRAM, набрав

efibootmgr -c -d /dev /sda -p 4 -L "linuxmint_grub" -l "\EFI\linuxmint_grub\bootmgfw.efi"

с включенным ESP в /dev /sda, раздел 4.

Никакая загрузка не работает безупречно, запись efibootmgr остается устойчивой, единственный недостаток: GRUB запускается во время загрузки автоматически, несмотря на то, что он выключен. Кажется, это проблема GRUB, я исправлю это позже.

Ура и надеюсь, я мог помочь;)

1

Вы видите ошибку, и она почти наверняка не связана с безопасной загрузкой. У меня есть несколько предложений, но ни одно из них не может решить проблему:

  • Обновите прошивку - если ошибка в прошивке, обновление может решить проблему. Обратитесь к производителю компьютера (или материнской платы), чтобы найти обновления. (Они, вероятно, называются «обновлениями BIOS», хотя технически ваша прошивка не является BIOS.) После обновления перезагрузитесь в Linux и попробуйте снова.
  • Сбросьте вашу прошивку до настроек по умолчанию - Иногда списки менеджера загрузки EFI повреждаются, вызывая симптомы, подобные тем, которые вы описали. Сброс всех настроек прошивки до значений по умолчанию в утилите настройки может решить эту проблему. К сожалению, этот шаг удалит все рабочие записи менеджера загрузки, поэтому вам может понадобиться аварийный инструмент (например, мой загрузочный менеджер rEFInd на USB-накопителе или CD-R) для загрузки, пока вы не создадите заново рабочие записи.
  • Удалить неиспользуемые записи менеджера загрузки. Удаление неиспользуемых записей менеджера загрузки (с параметром -B для efibootmgr) также может работать с поврежденными записями. Попробуйте efibootmgr отдельно или efibootmgr -v для более подробного вывода, чтобы найти дублирующиеся или нежелательные записи. (Обратите внимание, что прошивка может воссоздать некоторые автоматически при перезагрузке. Это может произойти, например, с параметрами сетевой загрузки или параметрами загрузки с внешнего носителя.)
  • Используйте другой инструмент для создания загрузочной записи - иногда efibootmgr не работает, но инструмент в другой ОС (например, bcdedit или EasyUEFI в Windows) или инструмент bcfg в оболочке EFI выполнят свою работу. Таким образом, вы можете попробовать эти инструменты вместо efibootmgr .
  • Использовать резервное имя файла - резервное имя файла (EFI/BOOT/bootx64.efi в системах x86-64) можно использовать, если ничего не работает; однако это имя файла обычно будет последним, которое пытается загрузить компьютер. Таким образом, если он уже загружается под другим именем (например, загрузчик Windows, EFI/Microsoft/Boot/bootmgfw.efi), вам может потребоваться выполнить резервное копирование, переименуйте нужный менеджер загрузки / загрузчик в текущую загрузку по умолчанию, и перенастроить новый загрузчик так, чтобы он предлагал загрузить тот, который маскируется под его новое имя. В лучшем случае это немного жонглирование, и не все загрузчики EFI для Linux могут загружать цепочку в другую программу EFI, поэтому она может работать неправильно. (Я не припоминаю, если SYSLINUX может загружать другую программу EFI.)
  • Переключитесь на BIOS / CSM / устаревшую загрузку - большинство EFI предоставляют модуль поддержки совместимости (CSM), который позволяет им загружать загрузчики в режиме BIOS. Таким образом, вы можете установить загрузчик в режиме BIOS для Linux, активировать CSM и выполнить загрузку таким образом. Если вы используете двойную загрузку другой ОС, вам также потребуется установить ее загрузчик в режиме BIOS, и это может потребовать перехода с GPT на MBR. В целом, такой подход может быть немного болезненным; но для некоторых EFI (в основном старых из 2011 или около того), это может быть лучшим подходом.
  • Возврат компьютера для возврата. Если все остальное не помогло, и если компьютер находится в пределах срока возврата своего магазина, вы можете вернуть его на тот, который работает. На самом деле, я рекомендую этот подход перед любым из двух предыдущих вариантов, если это возможно. Если вы сделаете это, обязательно свяжитесь с производителем, чтобы сообщить им, почему вы вернули компьютер. У EFI были серьезные ошибки с первого дня, и некоторые производители не спешили их исправлять, отчасти потому, что их клиенты никогда не жалуются, поэтому производители не понимают, насколько серьезны ошибки.
-1

У меня та же проблема, я пытаюсь создать загрузочную запись efi под Intel NUC7I5BBNK и LinuxMint 18.3 с ESP, установленным в /boot. Efibootmgr создает запись успешно и настойчиво, однако она недоступна, не отображается в визуальном меню загрузки EFI, и автоматически отображаемая запись загрузки в Intel BIOS показывает только то, что "не найден допустимый загрузочный раздел". Также я обнаружил, что порядок загрузки, независимо от того, как часто я его исправляю, не является постоянным, я попытаюсь перемонтировать с

mount -o remount, rw -t efivarfs efivarfs /sys /firmware /efi /efivars

хотя он уже установлен "rw", как показано

крепление | греф эфиварс

и попробуй еще раз. (Для получения дополнительной информации см. Https://wiki.gentoo.org/wiki/Efibootmgr ).

Выбор переменных efi непосредственно из меню UEFI visual bios был невозможен, я могу визуально увидеть его из встроенного файла, но не могу его выбрать.

Другой вариант - установить .efi-Variables в режиме безопасной загрузки, что мне не нравится. Может быть, это лучше подходит для моей реализации UEFI. Все установки нуждаются в индивидуальной настройке!

Во-вторых, попытался установить запись EFI с efibootmgr на ноутбуке ASUS V3-371-KT51, не работал вообще -> действительно показывает, как это зависит от машины и реализации UEFI. Работал (вроде) с выбором файла .efi из меню UEFI вручную, но только в режиме безопасной загрузки.

Метод bcfg, предложенный в другом посте, предназначен только для прямой загрузки, что означает пренебрежение менеджером загрузки (EFISTUB, насколько я знаю, не принимает это как должное, пожалуйста, проверьте это сами, как здесь: https://wiki.archlinux.org/index.php/EFISTUB )

КСТАТИ: для меня очевидны 3 ошибки: (1) -d означает "диск", а не "раздел", что означает, что вы должны изменить его на «/dev/sdb», если ваш ESP включен /dev/sdb (2) -p обозначает номер раздела, в вашем случае "3" (или "2", в зависимости от того, как подсчитывает efibootmgr или UEFI).

Попробуй это изменить.

(3) И последнее, но не менее важное: я успешно загрузил UEFI-флешку со всеми ядрами, файлами initrd и чем-то, что не для /boot, в отличие от предложенного вами каталога /boot /EFI /syslinux. Это обычный путь.

Надеюсь, это было полезно, удачи вам и заботиться;)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .