Recentemente, comecei a experimentar o suporte para sistemas de arquivos de passagem em versões recentes do KVM / QEMU / libvirt. Disponibilizar os sistemas de arquivos para acesso de leitura "apenas funcionou", mas estou um pouco confuso sobre como o acesso de gravação deve funcionar. Depois de montar o sistema de arquivos no convidado:
# mount -t 9p -o trans=virtio /fs/data /mnt
Eu posso modificar um arquivo existente se ele tiver o modo o+w
:
# cd /mnt/work
# ls -l foo
-rw-rw-rw-. 1 root root 17 Dec 20 11:16 foo
# cat foo
this is line one
# echo this is line two >> foo
# cat foo
this is line one
this is line two
Mas, independentemente das permissões de diretório, não consigo criar um novo arquivo ou diretório:
# ls -ld /mnt/work
drwxrwxrwx. 2 root root 4096 Dec 20 11:16 /mnt/work
# cd /mnt/work
# touch bar
touch: setting times of `bar': No such file or directory
# mkdir bar
# mkdir: cannot create directory `bar': Operation not permitted
A documentação que consegui encontrar (por exemplo, isso ) não aborda explicitamente esse problema. Espero que alguém aqui na Serverfault possa me ajudar a configurar um sistema de arquivos de passagem que me permita conceder acesso de gravação a um usuário no convidado a um sistema de arquivos host.
fonte
Respostas:
Isso me parece um problema de permissão no host:
Por padrão, o processo qemu / kvm é iniciado como um usuário não privilegiado (libvirt-qemu no Debian Wheezy). Portanto, apenas os arquivos acessíveis (ou graváveis) por esse usuário são acessíveis (graváveis) pelos convidados da VM.
Você pode tentar definir a propriedade do diretório para o usuário qemu é executado como (consulte user = and group = em /etc/libvirt/qemu.conf)
Talvez isso ajude no seu caso?
fonte
ao inicializar seu monitor qemu no shell, adicione "sudo" como prefixo. Fiz isso para resolver o problema de permissão ao criar arquivo ou pasta. meu ambiente é ubuntu16.04 + qemu-2.12.
fonte