Назад | Перейти на главную страницу

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).