Linux
Linux 無修改時間(nomtime)
有沒有辦法禁用文件系統的 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 的儲存上進行不必要的擦除循環)。