![如何将 noatime 挂载设为默认?](https://linux22.com/image/1075689/%E5%A6%82%E4%BD%95%E5%B0%86%20noatime%20%E6%8C%82%E8%BD%BD%E8%AE%BE%E4%B8%BA%E9%BB%98%E8%AE%A4%EF%BC%9F.png)
我正在制作一个 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;
...
这样就行了。