Acesso de leitura / gravação para sistemas de arquivos passthrough (9p) com libvirt / qemu?

14

Recentemente, comecei a experimentar o suporte para repasse de sistemas de arquivos em versões recentes do KVM / QEMU / libvirt. Tornar os sistemas de arquivos disponíveis 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 guest:

# 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 do 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, this ) não aborda explicitamente esse problema. Espero que alguém aqui no Serverfault possa me ajudar a configurar um sistema de arquivos de passagem que me permitirá conceder acesso de gravação a um usuário no guest para um sistema de arquivos host.

    
por larsks 20.12.2011 / 17:20

1 resposta

4

Isto parece-me um problema de permissão no anfitrião:

Por padrão, o processo qemu / kvm é iniciado como um usuário não privilegiado (libvirt-qemu no Debian Wheezy). Portanto, apenas arquivos acessíveis (ou graváveis) por esse usuário são acessíveis (graváveis) pelos convidados da VM.

Você pode tentar configurar a propriedade do diretório para o usuário qemu é executado como (veja user = e group = em /etc/libvirt/qemu.conf)

Talvez isso ajude no seu caso?

    
por 20.06.2014 / 13:45