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



我正在创建一个基于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

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

令人惊讶的是,互联网上关于这方面的信息很少。有这样的解释:

创建或修改构建要简单得多 为每个分区准备一个 rootfs 目录的配方。

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

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

我已经阅读了使用wic创建分区映像和链接的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后缀,这一点很重要。

我遇到了同样的问题,Nayfe提出的解决方案确实对我有用(一点):它创建了分区并用/home的内容填充了它。但是分区没有挂载,/home中的文件权限被破坏了。

为了挂载分区,我在/etc/fstab中添加了一个条目(帮助:Yocto 配方以更新/etc/fstab)

为了解决所有权/权限问题,我使用了--change-directory=home而不是--rootfs-dir=${IMAGE_ROOTFS}/home。(它还修复了do_image_wic期间发出的警告,这有助于搜索问题的根源:.../pseudo folder does not exist. Usernames and permissions will be invalid)

相关内容

  • 没有找到相关文章

最新更新