当 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,那么您不应该问这个问题...)