Блокируем загрузку в EFI

Это модуль, который заставляет грузится только с винчестера, несмотря на настройки в сетапе биоса. В архиве два файла: с расширением efi - не сжатый и ffs - сжатый. Билд для 64 разрядного EFI биоса. Я протестировал его на АМИ биосе. Не блокирует загрузку EFI, только легаси устройств. Может пригодится?

ВложениеРазмер
bl.ZIP3.67 КБ
Если данная информация оказалась полезной/интересной - плюсаните, пожалуйста:

А исходниками можете поделиться?

Да... Исходники были бы кстати.
Ну или принцип блокировки поподробнее.

пытаясь проверить BootLock.efi, в очередной раз напоролся, что не все EFI одинаковы, и x64 не всегда x64 :(

поясняю, имеется в наличии AMI/UEFIx64/Core 4.6.3.5/чипсет Calpella (i5/7,x57)

модули разработанные/скомпилированные в среде разработки от AMI (т.е. Visual eBIOS)
нормально вызываются в Shellx64.efi, а модули собранные в "IntelEFIToolkit2...." (x64)
вываливаются с сообщением: Image is not an application/Exit status code: Invalid Parameter

команда "ver" в Shellx64
EFI Specification Revision: 2.0
EFI Vendor : American Megatrends
EFI Version : 4.635

хотя в самой среде разработки ("IntelEFIToolkit2...." т.е. эмуляторе ) работают:(
(и наоборот, модули из АМИ не стартуют в эмуляторе)

полезно было бы еще разобраться в терминологии "Блокируем загрузку в EFI" и "Не блокирует загрузку EFI, только легаси устройств" и "заставляет грузится только с винчестера"

по моему(глубоко личному) разумению терминов, "легаси" в эпоху до EFI означало "устройства висящие за SuperIO/Мультиком?" (ну и PS/2 если он висит за/на ЕС), в эпоху EFI "легаси" это все, за что отвечает CSM16,
"EFI Boot устройство" - загрузочное устройство с GPT вместо MBR, но мне интересно и мнение других на этот счет

в связи с этим USB-HDD (и FDD-USB)вроде как не в CSM16 и каждый из них может быть "UEFI boot" устройством, их тоже блокируем ?

PS: кстати , модуль самописный или внешний, если самописный то будет интересна идеология используемых методов ограничения загрузки (какие драйвера/протоколы/интерфейсы используются)

ау!!!

... иди туда, незнаю куда, возьми то, не знаю что ... (C) Русские народные сказки

Аватар пользователя savely

Цитата:
"EFI Boot устройство" - загрузочное устройство с GPT вместо MBR, но мне интересно и мнение других на этот счет

Согласен.
А Legacy - как бы не только железо... Тот же хард (или USB-девайс), обслуживаемый стандартным INT13 или CDROM c El-Torito CD - легаси. Но если на харде есть GPT или CD записан как EFI-Boot - уже вроде как EFI, хотя и int13 работает. А массив в последней линейке серверов IBM, обслуживаемый EFI-BIOS - EFI. Причем что интересно - штатным там является EFI-Way загрузки и CSM16 как бы вообще не поднимается (не отрабатывают неEFI Addon BIOSы). Но если суешь El-Torito CD - по полной отрабатывает CSM16.

А кому счас легко...

Цитата:
хотя в самой среде разработки ("IntelEFIToolkit2...." т.е. эмуляторе ) работают:(
(и наоборот, модули из АМИ не стартуют в эмуляторе)

Наверняка, неправильно указаны компиляторы в сборочных файлах.
Я использовал EDK, там были такие же проблемы. Поднастроил, заработало.
Тут в ветках про UEFI были ссылки на статьи.

P.S. А товариСЧ-то куда-то пропал ...

Попробую найти исходник, если не удалил. Он не составляет никакого секрета. Ещё пару месяцев и вернусь к своему компу.

Модуль работает как обычный DXE driver. Когда диспетчер его вызывает, он регистрирует свою функцию на событие ReadyToBoot. По этому событию функция находит BBS table и проходит по всем девайсам там, ставя всем, кроме HDD приоритет "Do Not Boot". Всё просто, но могут быть нюансы, если есть другие модули по такому же событию.

Интересное решение. А вот как бы обратную процедуру реализовать? Зарегестрировать свое устройство (виртуальное) как загрузочное...

--
With Best Wishes, A. Woland

Спасибо, мне помогло!

Спасибо за модуль. Не удалось ли найти исходники?

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей