Embedded 如何使/var/log符号链接到Yocto Rocko中的持久存储

Embedded 如何使/var/log符号链接到Yocto Rocko中的持久存储,embedded,embedded-linux,yocto,systemd,Embedded,Embedded Linux,Yocto,Systemd,我正在构建一个基于Yocto的发行版,其核心是systemd和journald 不幸的是,我无法让Yocto将所有日志存储在/var/log->/data/log中。我需要日志日志以及在multi-user.target之后写入的一些其他日志才能持久/数据是持久性分区 我有一个非常类似的问题,但不幸的是,我无法修改它以在我的设置中正常工作 根据我的理解,有两件事我需要修改: volatiles基本文件中的文件,我希望它是systemd tmpfiles的配置文件。它应该告诉它在运行时创建jou

我正在构建一个基于Yocto的发行版,其核心是systemd和journald

不幸的是,我无法让Yocto将所有日志存储在
/var/log->/data/log
中。我需要日志日志以及在
multi-user.target
之后写入的一些其他日志才能持久/数据是持久性分区

我有一个非常类似的问题,但不幸的是,我无法修改它以在我的设置中正常工作

根据我的理解,有两件事我需要修改:

  • volatiles
    基本文件中的文件,我希望它是
    systemd tmpfiles
    的配置文件。它应该告诉它在运行时创建journald需要的一切。这里我修改了一行:
L+根目录0755/var/log/data/log

  • fs perms.txt
${localstatedir}/log-link/data/log

我还试着用
VOLATILE\u LOG\u DIR
set
“no”
(fs perms perms persistent LOG.txt
修改了,但没有效果。我还向
/etc/tmpfiles.d>添加了一些类似于上面配置的
var.conf
,但也没有起作用

我在生成的rootfs/var
上启动了一个
watch ls-l,看到
var/log
暂时被符号链接到了`/data/log,但后来它在某个地方被覆盖,再次指向volatile/log

我非常感谢任何建议,因为我似乎把这件事复杂化了。这应该很简单。毕竟,这只是让Yocto制作一个符号链接。但我想这是一个相当重要的目录,让我
ln-sf/data/log/var/log

我还想听听这种方法的含义。 除了耗尽我的eMMC之外,我们可以接受这一点,因为与在设备上执行的其他操作相比,日志活动非常低。我最感兴趣的是装载顺序和其他内容。如果我没记错,journald将使用内存缓冲区,直到为它创建了
/var/log/journal
,所以我应该很好。但是应该怎么做呢在刷新日志之前,我需要做什么来确保一切就绪?我是否需要修改systemd服务以包括
requiremounts for
After=

我想尽可能地防守,所以我期待着你们在这个话题上说些什么

编辑:


也许我可以添加一个从/var/log到/data/log的绑定挂载?如果这真的是一个解决方案,我还想知道是否没有隐藏的障碍?

您可以通过调整基本文件配方(base-files.%.bbappend)挂载持久分区


希望这会有所帮助,我还没有在这里对其进行全面测试,但我希望这可以为您提供一些起点。

您找到解决方案了吗?我遇到了同样的问题。。。
do_install_append () {
    cat >> ${D}${sysconfdir}/fstab <<EOF

# Data partition
/dev/mmcblk0p4       /data          auto       defaults,sync,noauto  0  2
EOF
}
dirs755 += "/data"
VOLATILE_BINDS = "\
    /data/var/lib /var/lib\n\
    /data/var/log /var/log\n\
    /data/var/spool /var/spool\n\
    /data/var/srv /srv\n\
"