背景:私のシステムでは、/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.mount
。systemd
どちらのファイルも設定ファイルではありません(wanted
ファイルはフラグである必要があります)。警告なしに交換されます。
質問: 一時(またはすべて)ファイルシステムのマウントを永久に無効にする方法は/tmp
?systemd
オプションがありませんか?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.