如何将 noatime 挂载设为默认?

如何将 noatime 挂载设为默认?

我正在制作一个 Ubuntu 衍生产品,我想让 noatime 成为所有文件系统的默认挂载选项(而不是 Ubuntu 中默认的 relatime)。

似乎有一个布尔default_relatime内核参数用于在默认 atime 或 relatime 之间切换(也可以通过写入 /proc/sys/kernel/default_relatime 来实现),但我找不到 noatime 的等效项,而且我不知道如何在发行版默认情况下。

如何配置以立即将数据记录到 pendrive?建议有一种方法可以通过 udev 添加 noatime 挂载参数,但我不知道这是否适用于内部媒体以及如何做到这一点。

使内核默认为 noatime 的最不具侵入性的方法是什么?

可以使用“cat /proc/mounts”查看当前默认值,因为它甚至显示隐式挂载参数;不要相信“mount”。

是的,我读过使用 noatime 调整 Ext4 是否值得?我仍然想这么做。

答案1

内核曾经有一个配置选项,用于决定是否使用 ATIME 或 RELATIME;不知道是否还包括一些 NOATIME 选项。无论如何,现在已经没有了。

我也研究了 util-linux,看看 mount 命令是否具有可配置的默认值或是否可以修改,但事实似乎并非如此。

但是,看起来您可以修补内核以更改默认行为。修改 ./fs/namespace.c,大约 2334 行:

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;
...

这样就行了。

相关内容