在此服务器系统上,为了保证可靠性和寿命,我们一直在卸载高写入负载的 SSD 系统“磁盘” /
,并且遵循一个策略,我们转向了一个新的策略,一切似乎都正常。
然而,我们发现我们犯了一个错误,忘记删除 中的符号链接/
。该链接的目的是避免必须重新启动并提供分区,我们后来已经这样做了。因此,该链接指向树的新磁盘空间/var
。新策略仅使用 的挂载点/var
。我们重新启动后,一切似乎都正常。但如果不删除符号链接,那就很奇怪了:一切似乎都正常工作,但如果删除realpath
中的符号链接/var
,它似乎在错误的磁盘上?!
因此,我们删除了symlink
并重新启动,并删除了符号链接,这时事情就出错了。
预期安装的邮件文件/var
已经完全更新,这令人惊讶。因此,/var
用以前的位置(据说的位置)覆盖realpath
当前位置似乎是一个坏主意。但是,Postfix
无法启动!
它说:
Failed to start postfix.service: Unit var.mount is masked.
到目前为止,我们处于“系统瘫痪”的情况!
当然,我们的两个磁盘树仍然完好无损!
要求提供更多数据
我认为 var.mount 是一种服务 - 直到现在才知道,但是:
systemctl unmask var.mount
静默完成。后续尝试启动var.mount
或postfix.service
重复有关被屏蔽的原始错误消息。systemctl status var.mount
说:
systemctl status var.mount ● var.mount Loaded: masked (Reason: Unit var.mount is masked.) Active: active (mounted) since Sat 2023-10-28 12:06:09 PDT; 5h 19min ago Where: /var What: /dev/sda1 CPU: 2ms CGroup: /system.slice/var.mount
Notice: journal has been rotated since unit was started, output may be incomplete.
根据我在下面评论中的疑问,我进行了网络搜索,发现本文,因此我运行了以下命令:
# systemctl list-unit-files | grep masked
-.mount masked-runtime disabled
boot.mount masked-runtime disabled
...所有挂载都采用与 boot.mount 完全相同的形式,只是其他挂载名称中的斜杠被破折号代替。
到目前为止,取消屏蔽的尝试都没有成功,但我只使用 systemctl 的 unmask 命令......
...仍在深入研究!
非常欢迎建议!
答案1
我在网上搜索了“ masked-runtime
”,结果找到了... (鼓声)systemctl
手册页?!哇哦,谁会想到 MAN 页面上会有答案呢?
这让我了解了这个systemctl
选项--runtime
,当我在挂载点上的 unmask 命令上使用它时,我就能以postfix
通常的方式启动!好极了!
# systemctl unmask var.mount --runtime
从那里开始,我只是以postfix
通常的方式开始 - 使用另一个systemctl
命令!
现在,postfix
不开心是因为dovecot
不开心,但是现在至少这个问题已经解决了!