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