2

Из-за моей необычной конфигурации оборудования (см. Раздел «Графическая карта не работает в Windows 8.1 на Mac»), я вынужден установить два PCI-регистра с помощью команды mm EFI перед загрузкой Windows. Прямо сейчас у меня есть сборка оболочки EFI (у моего mobo нет одной встроенной), сброшенной как bootx64.efi где startup.nsh выглядит так:

mm 0010003E 1 ;PCI :8
mm 02000004 1 ;PCI :7
fs0:\EFI\Microsoft\Boot\bootmgfw.efi

Можно ли заменить оболочку EFI чем-то более легковесным, которое, предпочтительно, НЕ позволит прерывать процесс загрузки?

2 ответа2

1

Вы можете устранить задержку запуска, поместив "set StartupDelay 0" в начале файла startup.nsh, где 0 - это количество секунд ожидания. Это сработало для меня.

1

Вы выполняли EFI-загрузку Windows на Mac? Я только что сделал то же самое на моем MacBook Pro 5,4 в середине 2009 года

Моя оболочка EFI тоже не прошивка. Я должен был положить его в раздел EFI и bless его вручную .. Тем не менее я смог использовать Set StartupDelay [X] Моя оболочка EFI - это предварительно Precompiled x86_64 UEFI Shell v1 binary найденный по адресу https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#Obtainment_UEFI_Shell или, более конкретно, https://svn .code.sf.net/p/edk2/code/trunk/edk2/EdkShellBinPkg/FullShell/X64/Shell_Full.efi Я использую v1, а не v2, потому что v2 описывается как более полезный в системах UEFI (v2) в отличие от мой Mac, который использует прошивку 1.10 EFI.

При этом Set StartupDelay [x] работает для меня, но не помещайте его в свой файл startup.nsh ! Вам нужно только вызвать его один раз. В противном случае, вы будете без необходимости переписывать свой NVRAM после каждой загрузки, без необходимости сокращая срок его службы. Я не пробовал «0» для начального значения. Мне просто нужна была небольшая задержка. Для меня мой startup.nsh запускает Refind. Мне нужно некоторое время, чтобы обойти это, если я запускаю оболочку из refind. Хотя у refind есть оболочка, доступная путем выхода из refind, и в ней не запускается nsh. Я не уверен, включена ли эта оболочка с помощью инструмента shell.efi, или она всегда была там.

help set -b показывает хорошую информацию о команде set . В нем говорится, что если с оболочкой нет среды NVRAM, переменные будут сохранены в /efi/boot/bootstr.nvr, что означает, что команда должна работать для всех, у кого нет NVRAM. но этот файл никогда не создается на моей машине, поэтому он определенно находится в NVRAM. Я доказал это с помощью dmpstore StartupDelay который выводит переменные NVRAM (в данном случае, только для StartupDelay, если он существует)

Надеюсь, это поможет.

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