Estou executando uma máquina virtual da Estação de Trabalho Fedora em um host Ubuntu.
Criei uma pasta /home/cl/share
no convidado e montei a pasta compartilhada /media/cl/system/virtual/share
como raiz, seguindo as instruções do linux-kvm :
mount -t 9p -o trans=virtio,version=9p2000.L /host /home/cl/share
Consigo acessar (ler) arquivos e pastas de pastas compartilhadas, mas não consigo gravar neles.
Um exemplo: Eu estou tentando salvar o arquivo mount-share.txt
para a pasta /home/cl/share
.
Ambas as pastas (host e convidado) têm permissões de leitura e gravação, no entanto, recebo o erro
Error opening file '/home/cl/share/mount-share.txt': Operation not permitted.
- Sistema operacional host: Ubuntu 15.10 desktop 64-bit
- Sistema operacional convidado: estação de trabalho Fedora 23 de 64 bits
- Software de virtualização:
qemu
qemu-kvm
virt-manager
- Localização do sistema host: 1º SSD integrado - formato ext4
- Local de armazenamento virtual: 2º disco rígido interno - formato NTFS
- Local das pastas compartilhadas: 2º disco rígido interno - formato NTFS
Como posso compartilhar um diretório entre convidado e host e permitir o acesso de leitura e gravação de convidados?
sudo chmod a+x /media/cl
e sudo chmod -R 777 /media
não mudou a situação.
Sistema convidado:
ls -la /home/cl/share
total 16
drwxrwxrwx. 1 cl cl 4096 20. Jan 14:41 .
drwx------. 18 cl cl 4096 24. Jan 19:11 ..
drwxrwxrwx. 1 cl cl 4096 17. Dez 09:49 fedora
drwxrwxrwx. 1 cl cl 0 5. Jan 11:43 solus
drwxrwxrwx. 1 cl cl 0 6. Jan 12:10 ubuntu
drwxrwxrwx. 1 cl cl 4096 24. Jan 16:58 various
stat /home/cl/share
File: ‘/home/cl/share’
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 25h/37d Inode: 135 Links: 1
Access: (0777/drwxrwxrwx) Uid: ( 1000/ cl) Gid: ( 1000/ cl)
Access: 2016-01-27 10:11:12.566303000 +0100
Modify: 2016-01-26 21:34:48.647707300 +0100
Change: 2016-01-26 21:34:48.647707300 +0100
Birth: -
Sistema host:
ls -ld /media /media/cl/ /media/cl/system /media/cl/system/virtual/ /media/cl/system/virtual/share
drwxr-xr-x 3 root root 4096 Okt 22 16:06 /media
drwxr-x---+ 6 root root 4096 Jan 24 10:49 /media/cl/
drwxrwxrwx 1 cl cl 4096 Jan 19 15:28 /media/cl/system
drwxrwxrwx 1 cl cl 4096 Jan 22 13:43 /media/cl/system/virtual/
drwxrwxrwx 1 cl cl 4096 Jan 20 14:41 /media/cl/system/virtual/share
getfacl /media/cl/
getfacl: Removing leading '/' from absolute path names
# file: media/cl/
# owner: root
# group: root
user::rwx
user:libvirt-qemu:--x
user:cl:r-x
group::---
mask::r-x
other::---
ps aux | grep virt
root 988 0.0 0.2 1207024 39888 ? Ssl 12:48 0:01 /usr/sbin/libvirtd
libvirt+ 1204 0.0 0.0 45268 2720 ? S 12:48 0:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
root 1207 0.0 0.0 45240 368 ? S 12:48 0:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
cl 4204 0.0 0.0 15184 2532 pts/2 S+ 14:06 0:00 grep --color=auto virt
kvm
qemu
virt-manager
cl-netbox
fonte
fonte
Respostas:
Eu poderia reproduzir o problema no meu sistema.
Seu principal problema são as restrições de ACL do seu host.
Por esse motivo, altere os atributos da ACL do
libvirt-qemu
usuário:Altere as Modeconfigurações de Filesystem /host de
Passthrough
paraMapped
.Por quê? Essa é a razão pela qual:
Seu sistema convidado é executado como
libvirt-qemu
usuário e as configurações da ACL restringem as permissões desse usuário.A saída correta de
getfacl
deve ser:fonte
Se seu objetivo principal é apenas compartilhar arquivos de um lado para o outro e você estiver aberto para usar o TCP, basta compartilhar arquivos por ssh ou similar.
Por exemplo, se você redirecionar uma porta local para uma porta sensata no convidado, poderá usar essa porta para acessar. Eu uso SSH / SCP.
Ao iniciar minha VM:
E então, para acessar a VM, eu uso o SSH; Abro um terminal na minha máquina host:
fish
ousshfs
em qualquer gerenciador de arquivos da GUI usado, funciona da mesma forma, desde que você defina a porta.fonte