/ tmpのsystemdのtmpfs自動マウントを無効に/再定義する方法は?

/ tmpのsystemdのtmpfs自動マウントを無効に/再定義する方法は?

背景:私のシステムでは、/tmpこれはパーティション化の一般的な部分/であり、システムのいくつかの重要な機能に使用されます。

現在のsystemdアプローチ:新しいシステムではsystemd、特に起動時または更新中に引き継ぎインストールが開始されましたtmpfs/tmpこの場所は次のとおりです/usr/lib/systemd/system/tmp.mount

/usr/lib/systemd/system/tmp.mount
#  SPDX-License-Identifier: LGPL-2.1+
#
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

[Unit]
Description=Temporary Directory (/tmp)
Documentation=https://systemd.io/TEMPORARY_DIRECTORIES
Documentation=man:file-hierarchy(7)
Documentation=https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
ConditionPathIsSymbolicLink=!/tmp
DefaultDependencies=no
Conflicts=umount.target
Before=local-fs.target umount.target
After=swap.target

[Mount]
What=tmpfs
Where=/tmp
Type=tmpfs
Options=mode=1777,strictatime,nosuid,nodev,size=50%,nr_inodes=400k

質問:数ヶ月前、アップデート中に重要なファイルが/tmp消えたため、実行中のプロセスによってエラーメッセージが書き込まれました。systemd実行中のシステムで更新しても、既存のtmpfsシステムの上に強制的にインストール/tmpできませんでした(「ファイルシステムが使用中です」)。これにより問題が発生します。

部分修正:上記のファイルの最後の5行をコメントアウトして問題を解決しました。また、更新するたびにカスタマイズ内容が失われます/usr/lib/systemd/system/local-fs.target.wants/tmp.mountsystemdどちらのファイルも設定ファイルではありません(wantedファイルはフラグである必要があります)。警告なしに交換されます。

質問: 一時(またはすべて)ファイルシステムのマウントを永久に無効にする方法は/tmpsystemdオプションがありませんか?systemdアップグレード後も持続するソリューションを探しています。

ドキュメントとリンクされているドキュメントを確認しましたが、何の効果もありませんでした。私も試しました

chattr +i /usr/lib/systemd/system/tmp.mount

調整されたファイルにありますが、systemdまったく更新されません。これは確かにオプションではありません。

答え1

私はこれがsystemctl mask tmp.mountあなたに役立つと思います。これにより、デバイスを無効にしてから/dev/nullシンボリックリンクすることで、/etcアップグレード時に再度有効になるのを防ぎます。また、デバイスの手動起動を防ぎます。

# systemctl mask tmp.mount
Created symlink /etc/systemd/system/tmp.mount → /dev/null.

関連情報