Recientemente comencé a experimentar con el soporte para sistemas de archivos passthrough en versiones recientes de KVM / QEMU / libvirt. Hacer que los sistemas de archivos estén disponibles para el acceso de lectura "simplemente funcionó", pero estoy un poco desconcertado acerca de cómo se supone que funciona el acceso de escritura. Después de montar el sistema de archivos en el invitado:
# mount -t 9p -o trans=virtio /fs/data /mnt
Puedo modificar un archivo existente si tiene 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
Pero independientemente de los permisos del directorio, no puedo crear un nuevo archivo o directorio:
# 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
La documentación que he podido encontrar (por ejemplo, esto ) no aborda explícitamente este problema. Espero que alguien aquí en Serverfault pueda ayudarme a configurar un sistema de archivos de transferencia que me permita otorgar acceso de escritura a un usuario en el invitado a un sistema de archivos host.
fuente
Respuestas:
Esto me parece un problema de permiso en el host:
Por defecto, el proceso qemu / kvm se inicia como un usuario sin privilegios (libvirt-qemu en Debian Wheezy). Por lo tanto, solo los archivos accesibles (o modificables) por ese usuario son accesibles (modificables) por los invitados de la VM.
Puede intentar configurar la propiedad del directorio para que el usuario qemu se ejecute como (vea user = y group = en /etc/libvirt/qemu.conf)
Tal vez esto ayude en tu caso?
fuente
cuando inicie su monitor qemu en shell, debe agregar "sudo" como prefijo. Lo hice para resolver el problema de permisos al crear un archivo o carpeta. mi entorno es ubuntu16.04 + qemu-2.12.
fuente