我正在尝试使用atime
启动选项挂载我的根分区。我正在运行 Ubuntu 14.04。
我修改了我的/etc/fstab
文件:
UUID=334a0fe1-2636-4ee6-93b5-8748c5313c79 / ext4 atime,errors=remount-ro 0
...但这没有效果:
$ mount | head -n1
# => /dev/sda1 on / type ext4 (rw,errors=remount-ro)
请问我需要做什么?
答案1
从 Fstab 页面:
atime 选项:
以下选项atime
可能会影响驱动器性能。
该
atime
选项表示使用内核默认值。从内核 2.3 左右开始,内核默认值为。如果指定了或 ,relatime
则不需要此选项。defaults
relatime
此
strictatime
选项在每次访问文件时更新文件的访问时间。当 Linux 用于服务器时,这更有用;对于桌面使用来说,它没有太大价值。此strictatime
选项的缺点是,即使从页面缓存读取文件(从内存而不是驱动器读取)仍会导致写入!此
noatime
选项完全禁止每次读取文件时将文件访问时间写入驱动器。这适用于几乎所有应用程序,除了那些需要知道文件自上次修改以来是否被读取的应用程序。启用此选项后,每次写入文件时,文件的写入时间信息都会继续更新。该
nodiratime
选项仅对目录禁用文件访问时间的写入,而其他文件仍可写入访问时间。注意:noatime
暗示nodiratime
。您不需要同时指定两者。该
relatime
选项目前是内核默认值。仅当上次访问时间早于当前修改或更改时间时,它才会更新访问时间。此外,自 Linux 2.6.30 起,如果上次访问时间超过 24 小时,则始终会更新访问时间。当未指定defaults
选项或选项时,将使用此选项。atime
在内核 4.0 及更新版本中,该
lazytime
选项通过仅在内存中维护对 inode 时间戳(访问、修改和创建时间)的更改来减少对磁盘的写入。磁盘上的时间戳仅在以下情况下更新:
a) 文件 inode 需要更新以进行与文件时间戳无关的某些更改,
b) 发生与磁盘的同步,
c) 未删除的 inode 从内存中逐出,或
d) 如果自上次将内存中的副本写入磁盘以来已超过 24 小时。
因此你需要:
UUID=334a0fe1-2636-4ee6-93b5-8748c5313c79 / ext4 strictatime,errors=remount-ro 0 1
如果您拥有内核 4.0 或更新版本,我建议添加“lazytime”以提高性能并减少驱动器写入:
UUID=334a0fe1-2636-4ee6-93b5-8748c5313c79 / ext4 strictatime,lazytime,errors=remount-ro 0 1
资料来源:
https://wiki.archlinux.org/index.php/fstab
https://en.wikipedia.org/wiki/Stat_%28system_call%29#Solutions