Suprimir / ignorar erros de "arquivo foi alterado" ao editar arquivos cifs / Samba

3

[Originalmente postei sobre isso no stackexchange do vi / vim, mas está cada vez mais claro que o problema principal é mais o sistema de arquivos do que o editor que está reclamando]

TL; DR - Arquivos em uma montagem CIFS estão "mudando" no fundo de uma forma que alarma o Vim quando tento escrever para eles. Preciso de ajuda para acalmar o Vim ou remover o ruído subjacente de "modificação".

Antecedentes:

  • Eu tenho uma máquina virtual Linux Guest (Arch / Manjaro-i3 de 64 bits) em execução no VirtualBox em uma máquina com Windows 10 Host.
  • A máquina host tem uma partição formatada como NTFS que deve ser compartilhada entre os dois.
  • A partição compartilhada é compartilhada por meio do compartilhamento padrão do Windows 10 e montada no convidado do Linux como uma unidade cifs em / etc / fstab.
  • Estou editando arquivos do sistema Guest usando o vim 8.1.

Problema:

  • Na maior parte do tempo (aparentemente aleatoriamente) eu tento: escrever um arquivo que estou editando no vim, recebo
WARNING: The file has been changed since reading it!!!
  • Sei que o conteúdo não foi alterado no disco entre as duas gravações.

Eu quero evitar o aviso falso e também entender melhor como examinar sua proveniência.

Basicamente, imediatamente depois de gravar um arquivo no disco, algo está fazendo uma modificação no arquivo. Eu suspeito da infraestrutura do Samba, mas não tenho certeza de como definir isso. Eu olhei para logs de strace, mas eu não sou super habilidoso em entender esses dados.

Eu suspeito que o problema é alguma latência entre quando o vim acha que registrou o arquivo timestamped, e qual timestamp é gravado pelo Samba quando ele eventualmente vê o write-op, tal que o vim acha que pode estar fora de data.

Mas não tenho certeza ... E se isso for verdade, ainda não sou experiente o suficiente para corrigir isso.

Sugestões?

    
por traeki 02.07.2018 / 16:54

1 resposta

1

Eu sugeriria desativar o otimizador de disco automático do Windows para esse disco. O Linux analisa a localização no disco, uma vez que é journaling, o Windows não. Portanto, mesmo que mude de local um pouco, para o Linux, não é mais o mesmo.

Isso deve resolver seu problema!

link

    
por 29.11.2018 / 18:11