RAMディスクから別のパーティションに/ tmpを移動する

RAMディスクから別のパーティションに/ tmpを移動する

DebianのRAMが不足しているため、/ tmpをSSDドライブに移動する必要があります。しかし、これを使用しているプログラムが/ tmpパスの下でアクセスを継続できるようにするには、これを行う方法がわかりません。

だから基本的に私が達成したいのは、/tmpをRAMディスクから/home/tmpに移動することです。 /tmp経由でアクセスできます。

答え1

systemctl mask tmp.mount

このコマンドは、/ tmpにRAMベースのファイルシステム()をマウントしないsystemdように指示します。tmpfs変更を適用するには、システムを再起動する必要があります。

ほとんどの場合、これはあなたがしなければならないすべてです。 /tmp を /home/tmp または他の場所にリダイレクトする必要はありません。この方法は正式に推奨されますシステム文書 -

tmpfsがサポートしている/tmpを削除したい!

3つのオプションがあります。

  1. ルートと同じ物理ファイルシステムに常駐するように、/ tmpのすべてのマウントを無効にします。これを行うには、次を実行します。 systemctl mask tmp.mount
  2. 他の物理ファイルシステムを/ tmpにマウントします。これを行うには、他のファイルシステムと同様に、/ etc / fstabにそのエントリを作成するだけです。
  3. /tmp を維持しますが、サイズを増減します。これを行うには、他のtmpfsファイルシステムと同様に、/ etc / fstabにそのエントリを作成し、正しいsize =オプションを使用するだけです。

たとえば、/tmpを/home/tmpにリダイレクトする必要がないのはなぜですか?

上記は/tmpを内部書き込み可能ディレクトリ/(ルートファイルシステム)として残す必要があります。 Debianまたは他のほとんどのLinuxディストリビューション用ソフトウェアしなければならないルートファイルシステムのスペース不足を心配する必要がないように、小さなファイルセットにのみ/ tmpを使用してください。この要件は、主に/ tmpがRAMファイルシステムである可能性があるという考えに由来します。

時間が経つにつれて、/ tmpが古いファイルでいっぱいになるのを心配する必要はありません。 / tmpは起動時に自動的にクリーンアップされます。

$ cat /usr/lib/tmpfiles.d/tmp.conf
#  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.

# See tmpfiles.d(5) for details

# Clear tmp directories separately, to make them easier to override
D /tmp 1777 root root -
#q /var/tmp 1777 root root 30d

# There are more lines here, but they are not important to this answer
# ...

関連情報