Linux

Linux 無修改時間(nomtime)

  • April 10, 2018

有沒有辦法禁用文件系統的 mtime?

有一個文件系統獨立 noatime 選項,但沒有“nomtime”。同樣在 ext4 和/或 btrfs 的文件系統特定文件中,我找不到這個。

這存在嗎?

核心中沒有這樣的選項。

包括/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 ),所以應該能夠為相應的文件系統破解一個小更新檔。

一個實際的案例是在將小塊數據寫入固定大小的循環緩衝區時避免 inode 更新(例如,避免在基於 NAND 的儲存上進行不必要的擦除循環)。

引用自:https://serverfault.com/questions/787940