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


14

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.


Tem certeza de que montou o sistema de arquivos para leitura / gravação? Você pode criar arquivos? Você está criando arquivos como usuário root ou comum (sim, eu vejo o seu #, mas você pode ter escrito isso manualmente)?
— Janus Troelsen

Você conseguiu resolver isso? Estou tendo um problema semelhante de não conseguir gravar no caminho fs do host montado no convidado.
— Shoan

Eu realmente nunca fiz nenhum progresso nisso. Era um tipo de aplicativo de nicho para mim ... Geralmente, não estou executando convidados do KVM em locais onde o acesso a um sistema de arquivos local seria útil. Comecei a executar o VirtualBox na minha área de trabalho, onde eu realmente quero esse recurso de tempos em tempos.
— larsks

Você vê algum alerta do selinux no host físico ou no convidado?
— C4f4t0r

Respostas:


4

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?


Eu tentei isso no meu caso, que é o mesmo que esta pergunta , mas não consigo fazê-lo funcionar, mesmo com o aparelho desligado.
— Diagon

0

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.