Форум проекта PuppyRus Linux

Дистрибутивы проекта PuppyRus Linux => PuppyRus-A [PRA] => Тема начата: krasnyh от 21 Октябрь 2019, 11:01:25

Название: Переход из BIOS режима в EFI
Отправлено: krasnyh от 21 Октябрь 2019, 11:01:25
Винда с ним будет грузиться, т.е. подписан?
Недавно случайно обнаружил статью Эксплуатация подписанных загрузчиков для обхода защиты UEFI Secure Boot  (https://habr.com/ru/post/446072/)
Важно или нет, не знаю.
Название: Re: Hybrid bootable PRA iso
Отправлено: Pro от 21 Октябрь 2019, 12:09:59
Пробовал. Не понравилось. Скакать из загрузчика в загрузчик и жонглировать сертификатами - неинтересно.
Один наш общий знакомый уверяет что возможность отключить secureboot будет всегда. Я ему верю :)))
Название: Re: Hybrid bootable PRA iso
Отправлено: sfs от 21 Октябрь 2019, 18:03:03
Слепил демку с нашими последними находками в области загрузчиков и пр.
http://file.puppyrus.org/users/pra64/iso/Hybrid_bootable_Grub2-EFI_and_MBR-demo.iso этот исо сделан скриптом iso-make-hybrid.sh - т.е. переход syslinux->grub4dos->grub2
Чтобы получить чистый  grub2 (как в этой теме) - пересоберите этим скриптом iso-make-grub2.sh
Название: Re: Hybrid bootable PRA iso
Отправлено: krasnyh от 23 Октябрь 2019, 19:24:05
Цитата
Сейчас под рукой нет компа с EFI. Будет возможность проверю.
Не первый раз слышу такую фразу. Слышал и от sfs, когда он что-то делал (например, инсталятор) и просил потестировать, т.к. у самого нет uefi.

(Clover,  DUET).

Тут я нашел несколько тем в инете, выложу ссылки, может пригодится:
Загрузка BIOS, GPT, GRUB4DOS, MEMDISK, DUET и SHELLx64.EFI (https://www.linux.org.ru/forum/general/14144944)
Загрузка с GPT диска из BIOS  (https://habr.com/ru/post/336686/)

По первой ссылке много нерабочих url, ссылка на пакет с rtf файлом, который дает новую ссылку https://github.com/CloverHackyColor/CloverBootloader/releases
Цитата
Release v2.5k-5097
Clover.of.Hacky.Color_5097_rus.pdf
CloverISO-5097.tar.lzma
CLOVERX64.efi
Clover_v2.5k_r5097.pkg

Очень интересно почитать Clover.of.Hacky.Color_5097_rus.pdf:
Цитата
Что есть что?
Вкратце еще раз, Кловер осуществляет четыре основные функции:
1.Перехватывает управление, чтобы не БИОС грузил операционную систему, чтобы это делалось через Кловер. БИОС вызывает Кловер, а тот грузит операционку, кстати еще и спросит пользователя, какую из нескольких операционок загружать.
.........

При включении или при перезагрузке компьютера загрузка операционной системы с помощью Кловера происходит по следующему пути.
Вариант А. Компьютер основанный на БИОС (легаси-загрузка)BIOS→MBR→PBR→boot→CLOVERX64.efi→OSloader  (boot.efi в случае MacOSX,bootmgfw.efi для Windows, grub.efi для Linux).
Вариант Б. Компьютер, основанный на УЕФИ БИОС (новая схема, УЕФИ-загрузка)UEFI_BIOS→CLOVERX64.efi→OSloader (либо BootX64.efi)

Цитата
RealEFI должен был бы быть прошит вместо БИОСа, но для тех, у кого материнская плата на основе BIOS, придуман загружаемый EFI. Эта система загрузки EFI на машине с BIOS придумана Intel, и сейчас находится в активной разработке с открытыми исходными кодами на сайте tianocore.org. Собственно этот загрузчик называется DUET.
Название: Re: Переход из BIOS режима в EFI
Отправлено: sfs от 24 Октябрь 2019, 09:09:13
Clover,  DUET
Дайте пошаговый проверенный рецепт перехода из биос в ефи
Название: Re: Переход из BIOS режима в EFI
Отправлено: Pro от 24 Октябрь 2019, 15:25:20
Если применительно к моему варианту флешки, то пользы от переключения из bios в efi никакой т.к. Bios умеет загружать больше вариантов чем efi.
Вот обратное переключение дало бы больше пользы т.к. Через memdisk можно много образов запускать.

И в принципе переход такой можно сделать, теоретическое обоснование я себе сделал.
Название: Re: Переход из BIOS режима в EFI
Отправлено: sfs от 24 Октябрь 2019, 16:11:34
пользы от переключения из bios в efi никакой
Кроме возможности тестирования EFI без EFI
в принципе переход такой можно сделать
Было бы интересно.... Может и в grub4dos можно? Чтобы одно меню...
Название: Re: Переход из BIOS режима в EFI
Отправлено: krasnyh от 24 Октябрь 2019, 19:37:03
Для затравки, начальные этапы (ссылки на файлы здесь (http://forum.puppyrus.org/index.php?topic=22134.msg162222#msg162222)):
1. Разбить флешку в gpt (gdisk)
% fdisk -l |grep sdb
Диск /dev/sdb: 7,3 GiB, 7862353920 байт, 15356160 секторов
/dev/sdb1    2048   411647   409600   200M EFI
/dev/sdb2  411648 15356126 14944479   7,1G Microsoft basic data
2. Скачать CloverISO-5097.tar.lzma, распаковать, смонтировать. Извлечь из /usr/standalone/i386 файлы boot0af, boot1f32.
3. Скриптом прописать их в mbr/pbr
Цитата
#! /bin/bash

MBR=/dev/sdb
PBR=${MBR}1

dd if="${MBR}" count=1 bs=512 of=origMBR
cp origMBR newMBR
dd if=boot0af of=newMBR bs=1 count=440 conv=notrunc
dd if=newMBR of="${MBR}" count=1 bs=512

dd if="${PBR}" count=1 bs=512 of=origbs
cp boot1f32 newbs
dd if=origbs of=newbs skip=3 seek=3 bs=1 count=87 conv=notrunc
dd if=newbs of="${PBR}" count=1 bs=512
4. Скопировать в sdb1 (EFI раздел) Clover-v2.5k-5097-X64.iso/efi. Папки efi, boot, clover переименовать в верхний регистр (надо/ненадо не перепроверял). Так же и файлы /boot/bootx64.efi и clover/cloverx64.efi.
5. В корень sdb1 положить Clover-v2.5k-5097-X64.iso/usr/standalone/i386/x64/boot7 перименовав в boot.

Все, clover грузится. Как грузить PRA, куда копировать не разобрался. 'Плаваю' слегка в uefi.
Скрин.

upd. Из меню эмулятора вручную запустил загрузчик pra64 (BOOTx64.efi).


upd2. Вроде достаточно одного boot0af для запуска clover с gpt диска. Скрипт примет следующий вид:
#! /bin/bash

MBR=/dev/sdb

dd if="${MBR}" count=1 bs=512 of=origMBR
cp origMBR newMBR
dd if=boot0af of=newMBR bs=1 count=440 conv=notrunc
dd if=newMBR of="${MBR}" count=1 bs=512
Название: Re: Переход из BIOS режима в EFI
Отправлено: Coalxe от 24 Октябрь 2019, 22:04:08
переход syslinux->grub4dos->grub2
Много дубликатов или переходов.
Цитата
[4.03+] ISOLINUX searches for isolinux.cfg and then for syslinux.cfg in "/boot/isolinux/" before searching for the same files in "/isolinux/", "/boot/syslinux/", "/syslinux/", and "/", in this order.
Название: Re: Переход из BIOS режима в EFI
Отправлено: sfs от 25 Октябрь 2019, 09:11:07
clover грузится
Но задача-то была протестировать grub2-EFI. Т.е. получается это здесь не поможет и вообще не понятно зачем нужно...
Много дубликатов или переходов.
По сути  для BIOS по прежнему на все случаи хватает g4d. Он даже gpt теперь может. Главная фишка - один маленький инсталлер под все ОС (даже винду). С груб 2 тут сложнее
Остальная чехарда с grub2 нужна только для проверки конфигов grub2-EFI
Т.к. g4d не живет с EFI
У ISOLINUX , вроде есть проблемы с ntfs. И по любому еще один форимат конфигов осваивать желания нет
Название: Re: Переход из BIOS режима в EFI
Отправлено: krasnyh от 25 Октябрь 2019, 09:30:36
Но задача-то была протестировать grub2-EFI. Т.е. получается это здесь не поможет и вообще не понятно зачем нужно...
Не надо делать поспешных выводов. Я же сказал, что не разобрался толком.
Выложил свои наработки сразу, не дожидаясь, пока пройдет уйма времени и я достигну дзен в его понимании.

upd. Из меню эмулятора вручную запустил загрузчик pra64 (BOOTx64.efi).
Из uefi вручную все грузится. Для проверки правильности загрузочной записи PRA из uefi, уже этого достаточно. Для начала.
Скрин.


upd. При желании, можно вообще убрать папки efi/boot и efi/clover (скопированные из Clover-v2.5k-5097-X64.iso). Файл boot (boot7) является модифицированным загрузчиком DUET и его достаточно, чтобы попасть в окно UEFI (скрин2) и вручную запустить загрузчик PRA (BOOTx64.efi).