web-dev-qa-db-ja.com

Linuxの変更時間なし(nomtime)

ファイルシステムのmtimeを無効にする方法はありますか?

ファイルシステムに依存しないnoatimeオプションはありますが、「nomtime」はありません。また、ext4やbtrfsのファイルシステム固有のドキュメントでは、これを見つけることができませんでした。

これは存在しますか?

5

カーネルにはそのようなオプションはありません。

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 */

テスト目的(ユースケース)以外のこのオプションの目的は機能的とは思いません。

オプションは次のとおりです。

  • このオプションを追加するには、カーネルにパッチを適用します
  • 時間の変更に反応しないようにクライアントソフトウェアにパッチを適用します。
6

S_NOCMTIMEinclude/linux/fs.hフラグがあることがわかりました。

#define S_NOCMTIME    128     /* Do not update file c/mtime */

これは必要なことをしているようです。どうやらそれはユーザーに公開されていないようですが、それを使用する例があります(それはgrepだけです)ので、それに応じたファイルシステムの小さなパッチをハックできるはずです。

実際の使用例は、固定サイズの循環バッファにデータの小さなチャンクを書き込むときにiノードの更新を回避することです(たとえば、NANDベースのストレージでの不必要な消去サイクルを回避するため)。

3
Superlexx