# Проблемы с загрузкой OpenCore

  • Поддерживаемая версия: 0.6.9

Проблемы связанные с начальной загрузкой самого USB-накопителя до того, как вы решите загрузить установщик macOS

# Зависает на чёрном экране перед появлением меню выбора

Скорее всего, это какая-то ошибка либо в вашей прошивке, либо в OpenCore, в частности, возникают проблемы с загрузкой всех драйверов и отображением меню. Лучший способ диагностировать это - использовать DEBUG сборку OpenCore, и проверить журналы, действительно ли OpenCore загружен, и если да, то на чем он зависает.

Ситуации, когда OpenCore не загружается:

  • Если логи отсутствуют, даже после настройки DEBUG версии OpenCore с Target установленным в 67, то вероятно проблема связана с:

Ситуации, когда OpenCore загружается:

  • Проверьте последнюю строку в ваших логах, здесь, скорее всего, будут либо загруженные .efi драйверы, либо какие-либо формы ASSERT
    • Если ASSERT, то вы захотите проинформировать разработчиков об этой проблеме здесь: Acidanthera's Bugtracker (opens new window)
    • Если .efi драйверы зависают, проверьте следующее:
      • Проблемы с загрузкой HfsPlus.efi:
        • Вместо этого - попробуйте использовать HfsPlusLegacy.efi (opens new window)
        • Это рекомендуется для процессоров без поддержки RDRAND инструкций, в основном актуально для i3 Ivy Bridge и старее
        • VBoxHfs.efi (opens new window) - другой вариант, однако он гораздо медленее, чем HfsPlus
      • Проблемы с загрузкой HiiDatabase.efi:
        • Скорее всего, ваша прошивка уже поддерживает HiiDatabase, поэтому драйвер конфликтует. Просто удалите драйвер, поскольку он вам не нужен.

# Зависает на no vault provided!

Отключите Vaulting в вашем config.plist в разделе Misc -> Security -> Vault, установив его в:

  • Optional

Если вы уже выполнили sign.command, вам нужно будет восстановить файл OpenCore.efi, так как он был подписан RSA-2048. Вы можете получить новую копию OpenCore.efi здесь: OpenCorePkg (opens new window)

Примечание: Vault и FileVault - это две разные вещи, см. Безопасность и FileVault (opens new window) для получения дополнительной информации

# Зависает на OC: Invalid Vault mode

Скорее всего, это орфографическая ошибка, параметры в OpenCore чувствительны к регистру, поэтому убедитесь, что вы внимательно проверили написание, Optional - правильное написание, которое вы должны ввести в разделе Misc -> Security -> Vault

# Не отображаются разделы с macOS

Главное, что нужно проверить:

  • ScanPolicy установлен в 0, чтобы отображать все диски
  • Присутствие подходящих драйверов прошивки, такие как HfsPlus(Обратите внимание, что ApfsDriverLoader не должен использоваться в 0.5.8)
  • Установите UnblockFsConnect в True в config.plist -> UEFI -> Quirks. Необходимо для некоторых систем HP
  • Установите SATA Mode: AHCI в BIOS
  • Установите в разделе UEFI -> APFS, чтобы видеть APFS диски:
    • EnableJumpstart: YES
    • HideVerbose: NO
    • Если вы и спользуете более старые версии High Sierra(т.е. 10.13.5 или старее), установите следующее:
      • MinDate: -1
      • MinVersion: -1

# Зависает на OCB: OcScanForBootEntries failure - Not Found

Это связано с тем, что OpenCore не может найти ни одного диска с текущим ScanPolicy, установка значения 0 позволит отобразить все варианты загрузки

  • Misc -> Security -> ScanPolicy -> 0

# Зависает на OCB: failed to match a default boot option

То же самое, что и с OCB: OcScanForBootEntries failure - Not Found, OpenCore не может найти ни одного диска с текущим ScanPolicy, установка значения 0 позволит отобразить все варианты загрузки

  • Misc -> Security -> ScanPolicy -> 0

# Зависает на OCB: System has no boot entries

То же самое, что и с двумя выше:

  • Misc -> Security -> ScanPolicy -> 0

# Зависает на OCS: No schema for DSDT, KernelAndKextPatch, RtVariable, SMBIOS, SystemParameters...

Это связано либо с использованием файла конфигурации для Clover с OpenCore, или с использованием конфигураторов, таких как Clover и OpenCore конфигуратор от Mackie. Вам нужно будет начать заново создавать новую конфигурацию, либо узнать какой мусор вам нужно удалить из конфигурации. Это то, почему мы не поддерживаем конфигураторы, они известны такими проблемами

  • Примечание: Такие же проблемы возникнут и при смешивании устаревших файлов конфигурации с более новыми версиями OpenCore. Пожалуйста, обновите их соответствующим образом

# Зависает на OC: Driver XXX.efi at 0 cannot be found

Это из-за того, что запись о драйвере присутствует в вашем config.plist, но самого драйвера нет в вашем EFI. Чтобы решить:

  • Убедитесь, что ваш EFI/OC/Drivers совпадает с вашим config.plist -> UEFI -> Drivers
    • Если нет, запустите Cmd/Ctrl+R чтобы повторно сделать снапшот вашего config.plist

Обратите внимание, что записи чувствительны к регистру.

# Получение "Failed to parse real field of type 1"

Это связано с тем, что значение установлено как real, когда оно не должно быть таковым, обычно Xcode преобразовывает HaltLevel случайно:

<key>HaltLevel</key>
 <real>2147483648</real>

Чтобы исправить, измените real на integer:

<key>HaltLevel</key>
 <integer>2147483648</integer>

# Невозможно ничего выбрать в меню выбора

Это связанно с несколькими вещами

  • Несовместимый драйвер клавиатуры:

    • Отключите PollAppleHotKeys и включите KeySupport, затем удалите OpenUsbKbDxe (opens new window) из вашего config.plist -> UEFI -> Drivers
    • Если способ выше не работает, сделайте наоборот: отключите KeySupport, затем добавьте OpenUsbKbDxe (opens new window) в ваш config.plist -> UEFI -> Drivers
  • Отсутствующий драйвер PS2 клавиатуры(игнорируйте, если используете USB-клавиатуру):

    • Хотя в многих прошивках он будет включен по умолчанию, некоторые ноутбуки и старые компьютеры могут все еще нуждаться в Ps2KeyboardDxe.efi (opens new window) для правильной работы. Не забудьте также это добавить в свой config.plist

# SSDT не добавляются

Таким образом, в OpenCore есть некоторые дополнительные проверки безопасности для ACPI файлов, в частности, что длина заголовка таблицы должна быть равна размеру файла. На самом деле, это ошибка iASL при компиляции файла. Пример того, как его найти:

* Оригинальный заголовок таблицы:
*     Signature        "SSDT"
*     Length           0x0000015D (349)
*     Revision         0x02
*     Checksum         0xCF
*     OEM ID           "ACDT"
*     OEM Table ID     "SsdtEC"
*     OEM Revision     0x00001000 (4096)
*     Compiler ID      "INTL"
*     Compiler Version 0x20190509 (538510601)

Значения Length и checksum - это то, о чем мы заботимся, поэтому, если наш SSDT на самом деле весит 347 байтов, то мы захотим изменить Length на 0x0000015B (347)(015B - это HEX)

Лучший способ исправить это - получить новую купию iASL или копию MaciASL (opens new window) от Acidanthera и переделать SSDT

  • Примечание: MaciASL распространяемый Rehabman, подвержен повреждению ACPI, пожалуйста, избегайте его, поскольку он не поддерживает свои репозитории

# При загрузке OpenCore - происходит перезагрузка в BIOS

  • Неправильная структура EFI папки, убедитесь, что все ваши файлы OC (OpenCore) находятся в EFI папке, расположенной на вашем ESP(системный раздел EFI)
Пример структуры папок

Directory Structure from OpenCore's DOC

# OCABC: Incompatible OpenRuntime r4, require r10

Устаревший OpenRuntime.efi, убедитесь что BOOTx64.efi, OpenCore.efi и OpenRuntime из одной и той же сборки. Несоответствие приведет к поломке загрузки

  • Примечание: FwRuntimeServices был переименован OpenRuntime с версии 0.5.7 и новее

# Failed to open OpenCore image - Access Denied

На новых прошивках устройств Microsoft Surface, загрузка OpenCore приводит к нарушению безопасности, даже когда отключен Secure Boot. Чтобы решить эту проблему, включите UEFI -> Quirks -> DisableSecurityPolicy в своём config.plist. Более подробно см. здесь: Failed to open OpenCore image - Access Denied #1446 (opens new window)

# OC: Failed to find SB model disable halting on critical error

Это опечатка. Убедитесь, что Misc -> Secuirty -> SecureBootModel в вашем config.plist установлен в Disabled