A razão pela qual isso é, em princípio, não confiável é o armazenamento em cache - provavelmente tanto no kernel host quanto no guest (tanto a VM quanto o SO). No primeiro caso, o kernel do host armazena em cache as gravações e não percebe que os dados no arquivo de imagem da VM montados em algum lugar foram alterados.
No último caso, a VM (eu me KVM ou outra coisa) provavelmente armazenará em cache as gravações na imagem e somente executará a gravação (ou seja, fornecendo os dados para o kernel do host, o que de longe não significa os dados vai ser escrito para o meio subjacente, a propósito) em um momento mais conveniente. Isso pode ser aliviado solicitando que a VM faça as gravações imediatamente (para QEMU / KVM, consulte a opção cache
para o argumento -drive
na página qemu(1)
man). Além disso, o sistema operacional da missão também faz alguma forma de armazenamento em cache, portanto, pode demorar um pouco até que os dados atinjam o limite do convidado / VM.
Dito isto, o compartilhamento de dados geralmente é feito via rede - suas opções são numerosas. Para o Windows, a opção óbvia é CIFS / SMB, desde que tenha suporte a convidado nativo. Tudo o que você precisa fazer é descobrir a configuração apropriada do Samba no host. Se acontecer de você estar usando o QEMU / KVM, ele pode até mesmo fazer um compartilhamento básico de samba para você - veja -net user,smb=...
(a mesma fonte acima). Você também pode configurar o FTP ou o WebDAV no seu host, embora o último possa ser um pouco mais complicado do que o Samba. O SSH / SFTP é outra opção.
Específico para o QEMU (/ KVM) é o virtual fat , que permite exportar um diretório existente - sujeito a restrições, não deixe de ler o parágrafo "O que você nunca deve fazer" - como um sistema de arquivos FAT para o convidado.