web-dev-qa-db-ja.com

noatimeマウントをデフォルトにするにはどうすればよいですか?

私はUbuntuの派生物を作成しています。noatimeをすべてのファイルシステムのデフォルトのマウントオプションにしたいです(Ubuntuのデフォルトであるrelatimeの代わりに)。

Atimeまたはrelatimeへの切り替え(/ proc/sys/kernel/default_relatimeへの書き込みでも使用可能)を切り替えるためのブールdefault_relatimeカーネルパラメーターがあるようですが、noatimeに相当するものが見つからず、デフォルトではdistroでそれを有効にする方法がわかりません。

データを即座にペンドライブに記録するように設定する方法? は、udevを介してnoatimeマウントパラメーターを追加する方法があることを示唆していますが、それが内部メディアで機能するかどうか、およびその方法がわかりません。

カーネルをデフォルトでnoatimeにする最も侵襲性の低い方法は何ですか?

現在のデフォルトは、「cat/proc/mounts」を使用して表示できます。これは、暗黙的なマウントパラメーターも表示するためです。 「マウント」を信頼しないでください。

はい、読みました noatimeでExt4を調整する価値はありますか? と私はそれをやりたいです。

8
Shnatsel

カーネルは、ATIMEを使用するかRELATIMEを使用するかの設定オプションを使用していました。 NOATIMEのオプションも含まれている場合は、dunno。いずれにせよ、それは今ではなくなっています。

Util-linuxも調べて、mountコマンドに構成可能なデフォルトがあるか、変更できるかどうかを確認しましたが、そうではなかったようです。

ただし、カーネルにパッチを適用してデフォルトの動作を変更できるようです。 2334行目で./fs/namespace.cを変更します。

long do_mount(...)
...
    /* Default to relatime unless overriden */
    if (!(flags & MS_NOATIME))
            mnt_flags |= MNT_RELATIME;
...

それを交換してください:

long do_mount(...)
...
    /* Default to noatime unless overriden */
    if (!(flags & MS_RELATIME))
            mnt_flags |= MNT_NOATIME;
...

そして、それはそれを行う必要があります。

4
Bryce