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


8

私はUbuntuの派生物を作っています、そしてnoatimeを(Ubuntuのデフォルトであるrelatimeではなく)すべてのファイルシステムのデフォルトのマウントオプションにしたいと思います。

default_relatimeデフォルトをatimeまたはrelatimeに切り替えるためのブールカーネルパラメーターがあるようです(/ proc / sys / kernel / default_relatimeに書き込むことでも利用可能)。noatimeに相当するものを見つけることができず、方法がわかりません。デフォルトでディストリビューションで有効にします。

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

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

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

はい、読みました。NoatimeでExt4をチューニングする価値はありますか?まだやりたいです。


3
Relatimeは、Ubuntu自体ではなく、カーネルのデフォルトオプションです。カーネルを変更するか、にオプションを追加する必要があります/etc/fstab
2011

回答:


4

カーネルは、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;
...

そして、それでうまくいくはずです。


1
2番目の@ブライスの解決策-これがそれを行う唯一の方法のようです。もちろん、これは、このパッチを使用して独自のカーネルアップデートをローリングすることを意味します-これはどの程度侵襲的かはあなた次第です:)
ish

カスタムカーネルビルドを維持する必要があり、セキュアブートで頭痛の種がひどいため、これは本当に侵略的なIMHOです。それでも、+ 1を実行できるためです。
Shnatsel

askubuntu.com/questions/61448/…は、udevルールがマウントパラメータを追加できることを示唆しています。今すぐこのリンクで本文を更新します...
Shnatsel

これらはLinux 3.2の2315以降の行です。lxr.free-electrons.com/ source / fs / namespace.c?v = 3.2#L2315の if (flags & MS_NOATIME) mnt_flags |= MNT_NOATIME; 2326行目を参照してください。ちょっと気になります。ご協力いただきありがとうございます!
Shnatsel 2012
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.