fstab 和 /var/log 哪个先出现?

fstab 和 /var/log 哪个先出现?

当 Linux 启动时,它是首先读取fstab并挂载其中的所有内容,还是在此之前启动systemd

我希望这fstab是第一位的,但我不知道如何确认。因此,即使您知道答案,也请告诉我您自己是在哪里学到的,以便我在来这个论坛之前可以更好地了解自己。特别是,我想挂载tmpfs/var/log并且正如我可以推断的那样,所有这些日志都是在systemd启动某些服务后访问和写入的。我想确保在任何程序尝试访问它之前它已安装。

我知道这可以理解为重复问题,但我在那里重新调整了它的用途,因此,在没有更好的想法的情况下,我只是再次询问。这次有明确的表态。

答案1

当 Linux 启动时,它是首先读取 fstab 并从中挂载所有内容,还是先启动 systemd?

系统是什么从它上面安装了一切。 Linux 本身并不知道 fstab 是什么;它让 init 系统处理整个系统的启动。

通常,init 系统将首先启动基本服务,然后是 fstab,最后是系统的其余部分。然而,Systemd 并行完成大部分工作——它有几个主要阶段,但主要依赖于指定的服务显式依赖他们真正需要什么。

例如,服务和安装实际上可以并行启动。但是,如果某个服务定义它需要 /var/log,则保证仅在挂载 /var/log 后才启动它。

我想确保在任何程序尝试访问它之前它已安装。

如果你想确定的话告诉 systemd 进行确认。这是一个基于依赖的系统,你可以从字面上告诉它服务 A依靠因此,如果您的某个服务需要此位置,请相应地将Requires=和添加After=到其服务单元 - 无论是针对特定安装,还是针对对所有本地 fstab 条目进行分组的“目标”。

[Unit]                                 [Unit]
Requires=sys-log.mount                 Requires=local-fs.target
After=sys-log.mount                    After=local-fs.target

(不过,我假设您的意思/var/log不是/sys/log?sysfs 中没有 /sys/log。如果您的 /sys 不是 sysfs,那么您不应该问这个问题...)

相关内容