首页 > 解决方案 > 如何从 Yocto 生成多引导 Grub EFI WIC 映像

问题描述

我正在尝试使用 Yocto 和 SWUpdate 为通用 x86_64 系统实现软件更新过程。我想要两个根分区,SWUpdate 覆盖非活动的一个(双拷贝策略)。我正在尝试创建一个 WIC 映像以在 virtualbox 中进行测试(.wic.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

这将创建一个具有正确分区的 wic 映像,但第一个胖分区中的引导加载程序似乎无效 - 它不会在 virtualbox 中引导。

如果我将引导分区更改为

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

它现在将启动,但我无法通过 bbappends 文件控制启动分区中的数据。我需要能够编辑 grub.cfg 并添加一个 grub 环境文件。据我所知,bootimg-efi 是由 WIC 系统创建的,所以我不能轻易地覆盖它。

标签: virtualboxyoctoswupdateyocto-wic

解决方案


推荐阅读