如何在启动序列中尽早挂载 zfs-fuse,以便我可以在 Ubuntu 12.04 上执行 rsyslog?

如何在启动序列中尽早挂载 zfs-fuse,以便我可以在 Ubuntu 12.04 上执行 rsyslog?

我正在尝试使用 zfs-fuse 作为 Ubuntu 12.04 发行版上包含系统日志记录的读/写分区的文件系统驱动程序。我已通过修改相应的配置文件成功将 rsyslog 重定向到那里。但是,在启动时,rsyslog 在 zfs-fuse 驱动器安装之前就启动了,因此它只是愉快地创建目录并开始在根分区上进行日志记录,而当 zfs-fuse 尝试在启动顺序的稍后阶段安装驱动器时,在运行操作系统的 / 安装驱动器上已经有文件,因此 zfs-fuse 无法将驱动器安装在那里。在我修改 rsyslog 配置文件以登录到其他位置之前,zfs-fuse 可以自动正常安装驱动器。

所以,我的问题是:

我如何才能将驱动器的 zfs-fuse 安装移到启动顺序中比 rsyslog 出现更早的位置?我希望 rsyslog 包含所有启动信息,因此我不能只将 rsyslog 移到 zfs-fuse 之后,我必须将 zfs-fuse 移得更早。我可以想出各种方法来解决这个问题,但如果存在一个优雅的解决方案,我希望有一个。我已经在谷歌上搜索了这个问题,但找不到任何解决这个问题并发布解决方案的人。

感谢你给与我的帮助

答案1

好吧,7.5 个月后,我终于找到了一种干净的方法来做到这一点,所以我想回复一下。

Rsyslog 在 12.04 上配置为 upstart 作业。

zfs-fuse 在使用 apt-get install 安装时会自行设置,以便支持命令 service zfs-fuse start。

利用这两个事实,我做了以下事情:

  • 在 /etc/init/rsyslog.conf 中的预启动脚本行后直接添加行“service zfs-fuse start”
  • 运行命令 sudo initctl reload-configuration

现在,在 rsyslog 启动之前,我强制启动 zfs-fuse 服务,然后挂载 zfs 驱动器。现在,我可以确信,除非 zfs-fuse 挂载出现故障,否则当 rsyslog 启动时,zfs-fuse 驱动器将被挂载并准备好写入,这样我就可以从一开始就在那里进行记录。

相关内容