ファイルシステムのmtimeを無効にする方法はありますか?
ファイルシステムに依存しないnoatimeオプションはありますが、「nomtime」はありません。また、ext4やbtrfsのファイルシステム固有のドキュメントでは、これを見つけることができませんでした。
これは存在しますか?
カーネルにはそのようなオプションはありません。
include/linux/statfs.h:
#define ST_NOATIME 0x0400 /* do not update access times */
#define ST_NODIRATIME 0x0800 /* do not update directory access times */
#define ST_RELATIME 0x1000 /* update atime relative to mtime/ctime */
テスト目的(ユースケース)以外のこのオプションの目的は機能的とは思いません。
オプションは次のとおりです。
S_NOCMTIME
にinclude/linux/fs.h
フラグがあることがわかりました。
#define S_NOCMTIME 128 /* Do not update file c/mtime */
これは必要なことをしているようです。どうやらそれはユーザーに公開されていないようですが、それを使用する例があります(それはgrepだけです)ので、それに応じたファイルシステムの小さなパッチをハックできるはずです。
実際の使用例は、固定サイズの循環バッファにデータの小さなチャンクを書き込むときにiノードの更新を回避することです(たとえば、NANDベースのストレージでの不必要な消去サイクルを回避するため)。