/ tmpをRAMに移動します


16

私は/tmpRAM に移動し、良い習慣に従うようにしています:

  • /var/tmptmpfs再起動に耐える必要があるため、に配置しないでください

  • /tmpスタンドアロンとしてマウントするのでtmpfsはなく/dev/shm/run/shm

ただし、2.6カーネルと3.2カーネルの間で状況は変わりました:

tmpfsファイルシステムの構成とデフォルトの変更

3.2カーネルでは、で使用RAMTMP=yes/etc/default/tmpfsます。

私の質問は、古いカーネルでこの目標をどのように達成できますか?

私の選択は/ etc / fstabもこれも変更しないことです:

mkdir /dev/shm/tmp
chmod 1777 /dev/shm/tmp
mount --bind /dev/shm/tmp /tmp

RAMTMP2.6カーネルのようなものはありますか?


1
tmpfs有害と考えられます。思考の糧。
sr_

8
@sr_申し訳ありませんが、リンクされた記事には強く反対します。/tmp一時ファイルに使用することができ、使用する必要があります。それが全体のポイントです。/tmp再起動(そのために使用/var/tmp)後、RAM +スワップの半分のサイズの電子メールを作成する(保存せずに)生き残ることは想定されていませんか?
マルコ

@Marco確かに、私は関連すると思われる何かを投げていた。
sr_

詳細なコンテキスト:fedoraproject.org/wiki/Features/tmp-on-tmpfs
ニモ

回答:


19

あなたは、あなただけマウントできる、というすべてを行う必要はありません/tmpようtmpfsに、次のような行を使用して/etc/fstab

tmpfs /tmp tmpfs mode=1777,nosuid,nodev 0 0

ライブで実行することもできます(ただし/tmp、現在のファイルシステム上にあるものは、iノードと現在開いているファイル記述子を除いてアクセスできないため、実際に変更/etc/fstabして再起動する必要があります)。

mount -o mode=1777,nosuid,nodev -t tmpfs tmpfs /tmp

tmpfsスワップできることに注意してください。本当にRAMのみのファイルシステムが必要な場合は、を使用してくださいramfs


クリス、私のポイントは「ベストプラクティス」です。開発者は、... / shmの上に/ tmpをマウントするネイティブサポートを追加しました。同じtmpfsを再利用する方が良いと読みました。
マッシモ

3
@Massimo私の意見では、ベストプラクティスはマウントをバインドしないことです。不要な複雑さが追加されます。
クリスダウン

5
@Massimoこの「ベストプラクティス」はどこにありますか?私はマウントに対して見ることができる唯一の理由/tmpあなたが今まで記入し、より多くのメモリ(使用できる2つの潜在的なtmpfsのファイルシステムがあるためtmpfsのようである/tmpとします/dev/shm)。ただし、2つのtmpfsマウントをいっぱいにすることに本当に懸念がある場合は、tmpfsマウントの最大サイズを小さくすることができます。
パトリック

@ChrisDownバインドマウントの何が悪いのですか?また、単一のtmpfsがあると、物事がより簡単になりますか?
CMCDragonkai 14年

2
@CMCDragonkaiバインドマウントは内部的には単純なものではなく、意図しない警告がいくつかあります(特に公開されているのは、読み取り専用マウントの再マウントが必要なドラマです)。tmpfs代わりに2つのマウントを使用してください。
クリスダウン14年

17

/etc/default/tmpfsfor sysvinit、for systemd(jessie以降のデビアンのデフォルト)は、あなたがする必要があるのは:

systemctl enable tmp.mount

およびDebian Stretchで

cp /usr/share/systemd/tmp.mount /etc/systemd/system/
systemctl enable tmp.mount

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=787542#74の変更ログを参照してください


ありがとう!これは、Jessieで/ tmpをtmpfsに移動する正しい方法です。
ヤシルG

どうもありがとうございます!gentooでは、/ tmpがtmpfsでマウントされている理由がわかりませんでした。systemdスクリプトtmp.mountがそれを行います。
ufk

4

私はこれがかなり古いことを知っていますが、Debianタイプのディストリビューションでは、/ etc / default / tmpfs(/ etc / default / rcSまたはwheezyの前)でSet RAMTMP、RAMRUN、およびRAMLOCKを設定しても同じ仕事をします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.