在启动过程中重新挂载不同大小的 tmpfs

在启动过程中重新挂载不同大小的 tmpfs

我有一个自定义的 Linux 发行版(基于 Debian),它有很多自定义工具,例如更改系统配置(如网络等)。

这些配置文件是 .json 文件,它们并不特别适合 Linux,并且是从自定义生成器中检索的,这些生成器从相应的 Linux 配置中的配置文件中生成值。这些生成器是 systemd 单元,它们在系统初始化目标

/etc/fstab 中有一个默认条目,该条目正在被生成器覆盖。之后,我执行sudo -o remount /tmp以正确大小重新安装 tmpfs。有时它可以工作,但有时它不起作用并显示一条错误消息:"not mounted or bad option."
我猜这是一个时间问题。

我还读到,这只能通过使用 systemd (tmp.mount) 来实现。这适用于我的特定用例吗?是否可以在启动过程中生成 tmp.mount 的单元文件,以便以正确的大小安装 tmpfs?

一切都必须自动化。系统不允许人工拦截。

答案1

我有一个默认条目 [for /tmp],/etc/fstab其中正在被生成器覆盖。之后,我正在执行sudo -o remount /tmp以正确大小重新安装 tmpfs。这有时似乎有效,但其他时候重新安装会失败并显示以下内容error: not mounted or bad option。我想这是一个时间问题。

一种方法是确保您的发电机仅在/tmp已安装时运行。您可以使用RequiresMountsFor=服务单元的 systemd 单元文件中的依赖关系:

[Unit]
RequiresMountsFor=/tmp
...

另一种方法是使用标志设置默认/占位符条目,/tmp然后仅在生成器设置了所需大小后才明确挂载。即,在当前使用重新挂载的地方运行挂载命令。/etc/fstabnoauto/tmp


第三种选择是完全取消输入/tmp/etc/fstab让生成器脚本生成并执行systemd-mount [OPTIONS...] --tmpfs [NAME] WHERE命令行挂载/tmp为 tmpfs。

相关内容