01.11.2019 21:18, Alexey Shabalin пишет: > Всем привет. > Я для Server-V добавил поддержку grub-efi в инстляторе. > Прошу посмотреть/проверить. Делал только самое необходимое для себя. В > дальнейшем можно наращивать функционал. Например, сейчас нет поддержки > тем для grub, потому что мне не надо было :), мне достаточно > текстового grub. > > 1) поддержка grub-efi в efiboot mkimage > http://git.altlinux.org/people/shaba/packages/mkimage.git?p=mkimage.git;a=commitdiff;h=932c2e80d41c8ace7bbb5da52a48bab49fde575f > > 2) добавил фичу grub для генерации кофигов grub из кусочков, по > аналогии с syslinux. > Пока жесткая завязка на местоположение vmlinuz и full.cz в EFI/BOOT > для grub-efi. > Не уверен, что можно использовать для aarch64, это буду смотреть дальше. > http://git.altlinux.org/people/shaba/packages/mkimage-profiles.git?p=mkimage-profiles.git;a=commitdiff;h=7b9d60d6661cad6e6f02b93e646a42bd07645c51 > > 3) использование конфигов для grub наравне с syslinux > http://git.altlinux.org/people/shaba/packages/mkimage-profiles.git?p=mkimage-profiles.git;a=commitdiff;h=23a460dd3de2147cc9a0db5de52234ececb0b5ef > > 4) переключил server-v с refind на grub-efi > Вместо (+efi use/efi/refind) использую use/efi/grub use/efi/signed > http://git.altlinux.org/people/shaba/packages/mkimage-profiles.git?p=mkimage-profiles.git;a=commitdiff;h=5577800554b2e240146b7cfb039c7a97d13e74d7 > > 5) собираю командой (потому что искать, где это переопределяется, кто > мне помогает и потом определяет эти переменные подругому, тяжело и > муторно) > make ARCH=x86_64 BUILDDIR=~/build-mkimage > APTCONF=~/etc/p9.x86_64-apt.conf DEBUG=1 REPORT=1 IMAGE_PACKTYPE=boot > BOOT_TYPE="isolinux efiboot" EFI_BOOTLOADER=grub-efi server-v.iso > > Спасибо за внимание. Буду рад исправлениям. Доброго времени суток За каникулы серьёзно поработал над mkimage и mkimage-profiles. В задании [#243937] [test-only] EPERM mkimage.git=0.2.30-alt1 сделал следующее: 1. в grubaa64boot сделал структуру файлов как в образе собираемом с efiboot. Так что прошу обратить пристальное внимание на это. 2. в grubaa64boot убрал генерацию grub.cfg из syslinux.cfg, так как она больше не нужна (да и работала некорректно) 3. Добавил новую цель mki-copy-kernel, которую предлагаю вызывать из mkimage-profiles вместо mki-copy-$BOOTLOADER. Мне не нравится, что у нас сейчас mki-copy-$BOOTLOADER вызывается дважды: из mkimage-profiles, чтобы скопировать ядро с образом пропагатора, и второй раз уже в mkimage-profiles, чтобы установить загрузчик. При первом вызове есть ядро, но не готов syslinux.cfg, при втором готов syslinux.cfg, но уже нет ядра. Кроме того, это изменение упростит процесс перехода на использование в образе нескольких ядер. 4. В mki-copy-efiboot для grub-efi ядро копировать в boot, если его ещё там нет. Аналогично для других EFI_BOOTLOADER проверять, есть ли уже ядро в EFI/BOOT, и если есть не копировать. Но основные изменения в mkimage-profiles: 1. Исправил определение default-ного пункта, если не задан (см 0001). 2. Сделал фильтр конфигов по названиям. Например, пункты меню специфичные для EFI должны оканчиваться на _efi.cfg (см 0005) 3. Может генерироваться два конфига grub.cfg, для EFI и всех остальных. Два сразу могут быть только при использовании grub для legacy (не реализован) и grub-efi (см 0005) 4. Исправил $linux_suffix. То условие не работает и генерит при загрузке grub ошибки про не найденные команды (см 0008) 5. Интегрировал по аналогии с syslinux генерацию конфигов grub для install2 и live (см 0012). Для того, чтобы это никому не помешало, в зависимости от выбранных загрузчиков следы grub подчищаются (см 0004 и 0005) 6. Для syslinux тоже сделал такую проверку (см 0015, 0016) Это позволит задать загрузчик grub legacy, не убирая отовсюду syslinux. 7 Вызываю copy-kernel вместо copy-$BOOTLOADER (см 0020) 8 Остальное мелочи. Также я отправил в Сизиф livecd-install, который может восстанавливать ядро не только из syslinux/alt0, но и boot: [#243884] DONE (try 2) livecd-install.git=0.9.12-alt1 Итого, для полного счастья не хватает только выбора языка и графической темы. -- С уважением, Антон Мидюков