Te recomendamos que pruebes esta resolución en un ambiente controlado antes de enviarlo a producción, un saludo.
Solución:
El servicio Samba integrado de QEMU
el no funcionamiento -net user,smb
La opción fue causada por una incompatibilidad con las versiones más nuevas de Samba (>= 4). Esto se solucionó en QEMU v2.2.0 y más reciente con estos cambios:
- b87b8a8 slirp/smb: Mover el directorio ncalrpc a tmp (desde v2.1.0)
- 44d8d2b net/slirp: especifique la base de registro para smbd (desde v2.2.0)
- 7912d04 slirp/smbd: modifica/establece varios parámetros en el smbd.conf generado (desde v2.2.0, también deshabilita la impresora)
(Debian ha adaptado los dos últimos parches a 2.1+dfsg-6, que está presente en Jessie).
Uso
Puede exportar una carpeta como \10.0.2.4qemu
cuando se utiliza la red de usuarios:
qemu-system-x86_64
-net user,smb=/absolute/path/to/folder
-net nic,model=virtio
...
Cuando QEMU se inicia con éxito con estas opciones, un nuevo /tmp/qemu-smb.*-*/
se creará un directorio que contiene un smb.conf
. Si es lo suficientemente rápido, este archivo podría modificarse para hacer que las rutas sean de solo lectura o exportar más carpetas.
Modo de operación
El demonio samba se ejecuta cada vez que se accede a los puertos 139 o 445 a través de una red de “usuario”. La comunicación ocurre a través de la entrada/salida/error estándar del proceso smbd. Esta es la razón por la cual fallaron los demonios más nuevos, escribirían su mensaje de error en la tubería en lugar de los mensajes de protocolo.
Debido a este método de operación, el daemon no escuchará en los puertos del host y, por lo tanto, solo será accesible para el invitado. Por lo tanto, otros clientes en la red e incluso los usuarios locales no pueden obtener acceso a las carpetas utilizando este demonio.
Dado que el uso compartido de impresoras QEMU v2.2.0 está completamente deshabilitado a través de la configuración de samba, otra preocupación se ha ido aquí.
La velocidad depende del adaptador de red, por lo que se recomienda utilizar el virtio netkvm
controlador bajo Windows.
También tenga en cuenta que el daemon se ejecuta por su ruta absoluta (típicamente /usr/sbin/smbd
) como se especifica en tiempo de compilación (usando el --smbd
opción). Siempre que necesite probar un nuevo binario o interponer smbd
, deberá modificar el archivo en esa ruta.
Otras advertencias
ejecutables (*.exe
) debe ser ejecutable en el host (chmod +x FILE
) para que el invitado tenga permisos de ejecución. Para permitir la ejecución de cualquier archivo, agregue el acl allow execute always = True
opción a una acción.
Ejemplo solo lectura Configuración de smb.conf que permite la ejecución de cualquier archivo (basado en QEMU v2.2.0):
... [qemu] path=/home/peter/windows read only=yes guest ok=true force user=peteracl allow execute always = True
En 2018 una forma sencilla de compartir una carpeta entre un linux anfitrión & ventanas máquina virtual es habilitar PDR en las ventanas guest
y conectarse a la vm
con Remmina Remote Desktop Client y habilite una carpeta compartida:
Esto crea una carpeta bajo esta computadora (carpeta compartida en Linux hostname
) & a \tsclientshared-folder-name
recurso compartido de red dentro del guest
. También puede asignar una unidad de red:
-
Esta solución hace no exigir
samba
estar corriendo -
Probado bajo
libvirt
/virt-manager
pero debería funcionar con cualquier virtualización.
Tienes la posibilidad recomendar este tutorial si te valió la pena.