Как сгенерировать мультизагрузочный образ Grub EFI WI C из Yocto - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь реализовать процесс обновления программного обеспечения для системы c x86_64, использующей Yocto и SWUpdate. Я хотел бы иметь два root раздела, а SWUpdate перезаписывает неактивный (стратегия двойного копирования). Я пытаюсь создать образ WI C для проверки этого в virtualbox (образ .wi c .vdi)

Моя проблема заключается в создании образа с двойным rootfs. Пока у меня есть файл .wks:

bootloader --ptable gpt
part /boot --source rootfs --rootfs-dir=${IMAGE_ROOTFS}/boot --sourceparams="loader=grub-efi" --ondisk sda --label msdos --active --align 1024 --use-uuid
part / --source rootfs --fstype=ext4 --label image1 --align 1024 --exclude-path boot/
part / --source rootfs --fstype=ext4 --label image2 --align 1024 --exclude-path boot/
part swap --ondisk sda --size 1024 --label swap --fstype=swap

Это создает образ wi c с правильными разделами, но загрузчик в первом толстом разделе кажется недопустимым - он не загружается в virtualbox.

Если я изменю загрузочный раздел на

part /boot --source bootimg-efi --sourceparams="loader=grub-efi" --ondisk sda --label msdos --active --align 1024

Теперь он загрузится, но я не могу контролировать данные в загрузочном разделе через файлы bbappends. Мне нужно иметь возможность редактировать grub.cfg и добавить файл среды grub. Насколько я могу судить, bootimg-efi создан системой WI C, поэтому я не могу это легко переопределить.

...