Подавление / обход ошибок «файл изменился» при редактировании файлов cifs / Samba

[Первоначально я писал об этом на стек-обмене vi / vim, но становится все более очевидным, что основной проблемой является скорее файловая система, чем редактор, который жалуется на это]

TL; DR – файлы в монтируемом CIFS «меняются» в фоновом режиме, что вызывает тревогу Vim, когда я пытаюсь записать их. Мне нужна помощь либо для успокоения Vim, либо для устранения основного шума «модификации».

Фон:

  • У меня есть гостевая виртуальная машина Linux (Arch / Manjaro-i3 64-bit), запущенная на VirtualBox под хостом Windows 10.
  • Хост-машина имеет раздел в формате NTFS, который предназначен для совместного использования между ними.
  • Общий раздел используется совместно с помощью стандартного общего доступа Windows 10 и монтируется на гостевой системе Linux в качестве диска cifs в / etc / fstab.
  • Я редактирую файлы из гостевой системы, используя vim 8.1.

Проблема:

  • Большую часть времени (по-видимому, наугад) я пытаюсь: написать файл, который я редактирую, в vim, я получаю

ВНИМАНИЕ: файл был изменен с момента его чтения !!!

  • Я знаю, что содержимое не изменилось на диске между двумя записями.

Я хочу предотвратить ложное предупреждение, а также лучше понять, как проверить его происхождение.

По сути, сразу после того, как я записываю файл на диск, что-то вызывает изменение файла. Я подозреваю, что инфраструктура Samba, но я не уверен, как это определить. Я просмотрел журналы strace, но я не очень разбираюсь в этих данных.

Я подозреваю, что проблема заключается в некоторой задержке между тем, когда vim считает, что он пометил время файлом, и тем, какая метка времени записывается Samba, когда он в конечном итоге видит операцию записи, так что vim считает, что она устарела.

Но я не уверен … И если это правда, я все еще не достаточно подкован, чтобы это исправить.

Предложения?

Я бы предложил отключить автоматический оптимизатор диска Windows для этого диска. Linux смотрит на местоположение на диске, поскольку это ведет журнал, Windows не делает. Так что, даже если он немного меняет местоположение, для Linux это уже не то же самое.

Это должно решить вашу проблему!

https://www.top-password.com/blog/disable-automatic-drive-optimization-defrag-in-windows-10/