我最近开始在 Linux 中使用 systemd。关于systemd挂载,我有一些观察:
- 当 /etc/fstab 中有条目时,将使用挂载点名称生成挂载单元文件。
我还观察到了下面列出的两种情况:
前提条件:我在 fstab 中有以下条目:
/dev/sda3 /test_mount ext4 rw,acl,nobarrier,nodelalloc 0 0
(因此重启后会在 /var/run/systemd/generator/ 目录下生成 test_mount.mount 文件。)
场景 1:我从 fstab 中删除了该条目并重新启动了计算机。我的期望是 test_mount.mount 文件应该从 /var/run/systemd/generator/ 目录中删除。但该文件并未被删除,并且 systemd 正在尝试挂载设备节点。
场景 2:我修改了 fstab 中的条目。我将安装点重命名为 sec_test_mount 并重新启动机器。我的期望是 test_mount.mount 文件应从 /var/run/systemd/generator/ 目录中删除,并应新创建 sec_test_mount.mount 文件。 sec_test_mount.mount 是新创建的,但 test_mount.mount 并未删除。两个挂载文件都在尝试挂载,并且挂载发生了两次。
答案1
systemd-fstab-generator 在 下创建挂载单元/run
,因为该文件系统是 tmpfs(内存文件系统),不会在重新启动后保留,因此预计每次启动时都会被替换为空卷。
(/var/run
应该是 的符号链接/run
,即 tmpfs 挂载点。该名称的存在只是为了兼容性,现代 Linux/run
在任何地方都直接使用。)
如果你的机器上不是这种情况,我想说这就是问题所在......如果你解决了这个问题,生成器将在每次启动时正确地重新创建挂载单元,因为 tmpfs 每次都会是空的。