web-dev-qa-db-fra.com

Comment puis-je rendre noatime mounts default?

Je suis en train de créer un dérivé d'Ubuntu et je veux faire de noatime l'option de montage par défaut pour tous les systèmes de fichiers (au lieu de relatime, qui est la valeur par défaut dans Ubuntu).

Il semble exister un paramètre de noyau default_relatime booléen pour passer de la valeur par défaut à atime ou relatime (également disponible en écrivant dans/proc/sys/kernel/default_relatime), mais je ne trouve pas d'équivalent pour noatime. sais pas comment activer ça dans une distro par défaut.

Comment configurer pour enregistrer les données sur une clé USB instantanément? suggère qu'il existe un moyen d'ajouter le paramètre de montage noatime via udev, mais je ne sais pas si cela fonctionnera pour le support interne et comment le faire.

Quelle est la manière la moins invasive de rendre le noyau par défaut à noatime?

La configuration par défaut actuelle peut être visualisée avec "cat/proc/mounts", car elle affiche même les paramètres de montage implicites. ne faites pas confiance à "monter".

Oui, j'ai lu Vaut-il la peine de régler Ext4 avec noatime? et je veux toujours le faire.

8
Shnatsel

Auparavant, le noyau avait une option de configuration permettant d'utiliser ATIME ou RELATIME; Je ne sais pas si cela incluait également une option pour NOATIME. En tout cas, c'est parti maintenant.

J'ai aussi étudié util-linux pour voir si la commande de montage avait des valeurs par défaut configurables ou si elle pouvait être modifiée, mais cela ne semblait pas être le cas.

Cependant, il semble que vous puissiez corriger le noyau pour changer le comportement par défaut. Modifiez ./fs/namespace.c, autour des lignes 2334:

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

Échangez cela autour de:

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

Et cela devrait le faire.

4
Bryce