Yocto - 创建并填充一个单独的 /home 分区

Yocto - Create and populate a separate /home partition

我正在创建一个非常简单的基于 x86 的 Yocto 图像。

我希望/文件系统是只读的,所以我设置了

IMAGE_FEATURES_append = " read-only-rootfs "

在原始 core-image-minimal.bb 的自定义副本中。不过,我确实希望 /home 可写并位于单独的分区上。

所以,我要添加一行

part /home --ondisk sda --fstype=ext4 --label home --align 1024 --size 600

在 genericx86.wks。这会在最终的 wic 映像中创建实际的 /home 分区,但它自然不会保存任何数据,因为它没有相应的 rootfs。这会导致在启动后出现以下意料之中的消息:No directory, logging in with HOME=/.

令人惊讶的是,互联网上关于此的信息很少。有this解释:

It's much more simpler to create or modify build recipes to prepare one rootfs directory per partition.

我只希望文档或示例中有关于如何实现该目标的任何参考。

我可以看到分区正在由 python 脚本(插件)填充,例如 rootfs.py,并且图像参数 IMAGE_ROOTFS_SIZE 是在提到的图像配方文件中指定的,例如genericx86.wks,但这还不足以让我将这些部分连接在一起。

我已经阅读了 creating-partitioned-images-using-wic and the linked openembedded kickstart 手册,那里没有任何线索。

感谢他人的帮助。

使用 WIC,您可以执行以下操作:

custom.wks.in:

...

part / --source rootfs --ondisk sda --fstype=ext4 --label system --exclude-path=home/    
part /home --source rootfs --rootfs-dir=${IMAGE_ROOTFS}/home --ondisk sda --fstype=ext4 --label home

...

请注意,如果您想在 WKS 文件中使用 ${IMAGE_ROOTFS},请务必以 .in 后缀命名它。