Windows 8.1 UEFI x64 не может загрузить образы UEFI

Windows 8.1 UEFI x64 не может загрузить образы UEFI

Вопрос появился после того, как я задал этот вопросодин. Похоже, что диспетчер загрузки Win8.1 UEFI x64 не может загрузить ничего, кроме самой Windows (winload.efi). Попытка запустить любой другой образ UEFI (.efi) из него приводит к ошибке с кодом 0xC000007B, и я почти уверен, что это не из-за отсутствующего файла, а из-за того, что файл «недопустим», поскольку при переименовании этого файла ошибка меняется на 0xC000000F. Я отключил безопасную загрузку, но безуспешно.

В данный момент я пытаюсь интегрироватьпересмотретьзагрузчик. Могу сказать, что его образ UEFI работает, так как он может загружаться с USB-флешки с помощью прошивки. Однако использование диспетчера загрузки Windows дает те же результаты, что и описанные выше (код ошибки 0xC000007B). На данный момент моя конфигурация BCD такова (рисунок):

Скриншот командной строки http://imageshack.com/a/img811/7857/kbth.png

As F:\rEfit\refind— это каталог, в котором хранится refind, а «refind_x64.efi» — это образ программы.

ПРИМЕЧАНИЕ: Мне также интересно, разрешена ли загрузка только образов UEFI (файлов .efi) в Windows с UEFI, а также каков формат образов без UEFI (например, ntldr, bootmgr)?

EDIT: Перемещение rEFInd в стандартный каталог («EFI») не решило проблему.

решение1

Спустя год я снова столкнулся с той же проблемой. К счастью, на этот раз я нашел решение. Чтобы добавить OsLoader в диспетчер загрузки Windows, который загружает образы UEFI, отличные от Windows, вам нужно вручную отредактировать реестр BCD. В RegEdit есть ключ с именем "HKEY_LOCAL_MACHINE\BCD00000000", который загружается из системного раздела Windows EFI, и редактирование его подразделов напрямую редактирует файл BSD. Под ним есть ключ с именем "Description", но мы сосредоточимся на другом, под именем "Objects". Под ним вам нужно создать новый объект (или изменить существующий). Затем под именем target-object-GUID-name вам нужно отредактировать значение типа "Description" на "0x10100003" (что означает приложение прошивки osloader - кредиты за эту находку см. здесьстраница). Вот и все — затем элементы «path» и «device» этого объекта указывают файл UEFI, который будет загружен при выборе загрузчика ОС.

БОЛЬШОЕ ПРЕДУПРЕЖДЕНИЕ:

Не делайте все вышеперечисленное просто для проверки — загрузка Uefi таким образом записывает его в конфигурацию загрузки Uefi, и после загрузки вы, возможно, не сможете снова загрузить Windows (если только загруженное вами приложение не сбросит конфигурацию загрузки Uefi) — поэтому используйте этот способ, только если вы в нем уверены.

Я так и сделал, а затем мне нужно вручную исправить загрузку Windows с помощьюКонфигурация загрузки Uefi. Что предпочтительнее использовать.

EDIT: Я забыл добавить, что сначала вам нужно иметь разрешение на редактирование "HKEY_LOCAL_MACHINE\BCD00000000", что легко - просто нажмите "Свойства" и измените разрешения ;).

EDIT: Это открытие показывает, что наиболее мощный (и простой - по крайней мере для меня) способ редактирования Windows BSD - это использование реестра. Поведение, которого я добился, сделав это - невозможно ни с помощью BCDedit, ни с помощью BCD WMI.

решение2

ЭФИ — этопредварительная загрузкасреда. Таким образом, EFI сам по себе не является инструментом Windows, инструментом Linux или любым другим инструментом уровня ОС. Я хочу прояснить это, потому что некоторые из ваших фраз звучат так, будто вы считаете, что EFI является частью Windows. Это не так.

Путь rEfit\refindнеобычен для загрузочной программы EFI. Такие программы обычно располагаются в подкаталогах каталога EFIна ESP, как в EFI\refindили EFI\Microsoft. Хотя такое нестандартное расположение вряд ли будет источником вашей проблемы, я не могу исключить такую ​​возможность. Таким образом, использование более обычного расположения — это мое первое предложение.

Я не очень хорошо знаком с выводом команды Windows bcdedit, которую вы показали, поэтому не могу прокомментировать его; однако, я могу предложить вам ознакомиться с инструкциями по установке rEFInd для установки из Windows. Вполне возможно, что вы ошиблись при вводе одной из команд.

Если это не поможет, попробуйте установить rEFInd из другой ОС. Вероятно, вы установили rEFInd для загрузки чего-то еще вместе с Windows. Для большинства людей это Linux, и если инструменты Windows не работают, вы должны иметь возможность установить rEFInd из Linux.

решение3

Все менеджеры загрузки/загрузчики efi должны находиться на разделе ESP; refind не может быть на диске F:, который, вероятно, отформатирован как диск NTFS. Системы EFI ищут в определенном разделе, который обозначен как "ESP" и отформатирован как fat32. Системы EFI не имеют драйверов для других файловых систем.

refind включает драйверы для ext2/4 reiserfs btrfs и iso9660, но как вы видите, ваш загрузчик Windows EFI находится в \EFI\Microsoft\Boot\bootmgfw.efi. Этот раздел не виден из Windows, так как он скрыт, но если вы загрузитесь с Linux Live (например, с помощью gparted), то вы сможете его увидеть. Затем вам нужно поместить refind в \EFI\refind, чтобы загрузчик rEFInd находился в \EFI\refind\bootx64.efi

Затем вы можете попытаться заставить его выполнить цепочку загрузки из загрузчика Windows, но было бы гораздо лучше указать вашей системе файл .efi refind в качестве загрузчика по умолчанию, так как это просканирует вашу систему и предоставит вам значки, представляющие доступные вам параметры загрузки efi/legacy. Я использую refind, и когда я включаю свой ноутбук, у меня есть значок Windows 7, значок Windows 8, значок Ubuntu, значок Fedora и значок UbuntuStudio на выбор. Если у меня вставлены загрузочные USB-накопители или DVD-диски, для них также появится значок.

Он отлично работает с настройками по умолчанию, но также легко настраивается. Вы не сможете загрузить загрузчик efi из любого раздела, кроме раздела fat32 ESP, хотя после загрузки refind из раздела ESP он может получить доступ к загрузчикам efi и устаревшим загрузчикам на других разделах.

Связанный контент