[devel-distro] grub-efi в инсталяторе
Alexey Gladkov
legion at altlinux.ru
Mon Feb 10 12:51:47 MSK 2020
On Mon, Feb 10, 2020 at 09:58:54AM +0700, Антон Мидюков wrote:
> 12.01.2020 22:18, Антон Мидюков пишет:
> > 09.01.2020 21:39, Антон Мидюков пишет:
> > > 09.01.2020 2:29, Антон Мидюков пишет:
> > > >
> > > > [...]
> > > >
> > > > 4. В mki-copy-efiboot для grub-efi ядро копировать в boot, если
> > > > его ещё там нет. Аналогично для других EFI_BOOTLOADER проверять,
> > > > есть ли уже ядро в EFI/BOOT, и если есть не копировать.
> > > >
> > > Копировать ядро в boot, видимо, плохая идея. В qemu грузится, на
> > > железе же ядро не находит.
> > > > [...]
> > >
> > В связи с этим переделал задание 243937 (mkimage), всё хорошенько
> > перепроверил и исправил очепятки.
> >
> > Количество правок сократил. Убрал упоминание несуществующего grubx86boot.
> >
> > Без патча
> > 0017-sub.in-stage1-call-copy-kernel-instead-of-copy-BOOTL.patch для
> > mkimage-profiles будет работать по-старому.
> >
> > Прошу аппрув для задания 243937 (mkimage).
> Повторяю просьбу. Если что-то сделал неправильно, не молчите, пожалуйста.
Письма про EPERM я игнорирую. Это не pull-request. Они значат лишь то, что
кто-то собирает ваш пакет.
В будущем пожалуйста присылайте нормальный запрос с описанием того, что вы
делаете.
Теперь конкретно по таску 243937.
1f2ab51466760f2c614f33d916d8b7fefa90dd95 ("mki-copy-kernel: initial target for copying kernel")
Описание коммита не поясняет зачем он нужен вообще. Не вызывать
mki-copy-$BOOTLOADER дважды ? Не вызывайте, если не нужно. Какую проблему
вы решаете этим коммитом ?
> [ x$EFI_DESTINATION != 'x' ]
Пожалуйста, не пишите так.
В mki-copy-kernel вы анализируете ${BOOTLOADER:-}. Такой переменной нет в
mkimage. Если это новый параметр, то его нужно требовать в скрипте и
описать. Есть параметр BOOT_TYPE. Вы его имели в виду ?
Вы проверяете BOOTLOADER только на значения isolinux, syslinux, pxelinux,
ieee1275boot. Типов загрузчиков в mkimage больше. Если они не должны
обрабатываться, то задокументируйте это.
Также вы вынесли код копирования ядра в отдельный таргет продублировав код
из соответствующих mki-copy-$BOOTLOADER. Это плохое решение. Это приведёт
к рассинхронизации кода в будущем. Также следующий кто будет добавлять
новый вариант загрузчика скорее всего пропустит этот скрипт.
Я не против вынести копирование ядра в отдельный таргет, если это
необходимо. Но мне не нравится, как это реализовано. Если вы хотите это
сделать, то убирайте соответствующий код из mki-copy-*. Например, пусть
они сами вызывают новую утилиту с параметром `mki-copy-kernel $DESTDIR`.
e0501c5fcf9bde41d1cfc88c0941b7282e23bcdb ("mki-copy-grubaa64boot, mki-pack-efionly-isoboot: replaced grub to EFI/BOOT")
Опять же описание коммита не совсем понятно. Вы создаёте EFI/BOOT и
копируете части grub туда потому что директории вне EFI могут быть не
доступны. Когда не доступны ? Вы наверно имели в виду, что для grub во
время загрузки может быть доступен только EFI раздел ? (просто угадываю
сейчас).
> +[ -f "$chroot/.image/$imgdir/EFI/BOOT/grub.cfg" ] ||
> + message "Warning: /.image/$imgdir/EFI/BOOT/grub.cfg: not found."
Зачем этот варнинг, если внизу есть код, который создаёт этот конфиг ?
> +mkdir $verbose -p EFI/BOOT
Вот тут вы можете написать EFI/BOOT/fonts чтобы не проверять и создавать
эту директорию ниже.
--
Rgrds, legion
More information about the devel-distro
mailing list