Je gère une machine virtuelle de poste de travail Fedora sur un hôte Ubuntu.
[.____] J'ai créé un dossier /home/cl/share
Dans l'invité et monté le dossier partagé /media/cl/system/virtual/share
En tant que root suivant les instructions de Linux-kvm :
mount -t 9p -o trans=virtio,version=9p2000.L /Host /home/cl/share
Je suis capable d'accéder aux fichiers et aux dossiers (lire) des dossiers partagés, mais je ne peux pas écrire à eux.
Un exemple: j'essaie d'enregistrer le fichier mount-share.txt
au dossier /home/cl/share
.
Les deux dossiers (hôte et invité) ont des autorisations en lecture-écriture, je reçois néanmoins l'erreur
Error opening file '/home/cl/share/mount-share.txt': Operation not permitted.
qemu
qemu-kvm
virt-manager
Comment puis-je partager un répertoire entre invité et hôte et permettre à l'accès en lecture-écriture invité?
Sudo chmod a+x /media/cl
et Sudo chmod -R 777 /media
n'a pas changé la situation.
Système invité:
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: -
Système hôte:
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
Je pourrais reproduire le problème sur mon système.
[.____] Votre problème principal sont les restrictions ACL de votre hôte.
[.____] Pour cette raison, changez les attributs ACL du libvirt-qemu
utilisateur :
Sudo setfacl -R -m u:libvirt-qemu:rwx /media/cl
Changer la Mode Paramètres pour Filesystem /Host de Passthrough
à Mapped
.
Pourquoi? C'est la raison pour laquelle :
Votre système d'invités fonctionne comme libvirt-qemu
Utilisateur et vos paramètres ACL restreignent les autorisations de cet utilisateur.
user:libvirt-qemu:--x
La sortie correcte de getfacl
devrait être:
user:libvirt-qemu:rwx
Si votre objectif principal est juste de partager des fichiers d'avant en arrière et que vous êtes ouvert à l'utilisation de TCP, vous pouvez simplement partager des fichiers sur SSH ou similaire.
Par exemple, si vous redirigez un port local à un port sensible de l'invité, vous devriez pouvoir utiliser ce port d'accès. J'utilise SSH/SCP.
Lors du lancement de mon VM:
qemu-kvm [all your usual qemu options] -net nic -Net User -redir tcp:22122::22
Et ensuite pour accéder à la machine virtuelle, j'utilise SSH; J'ouvre un terminal sur ma machine hôte:
scp -P22122 myfile.txt klaatu@localhost:~/ssh-share-dir
fish
ou sshfs
Dans quel que soit le gestionnaire de fichiers de l'interface graphique que vous utilisez des fonctionnalités, aussi longtemps que vous définissez le port.