Saltar al contenido

Carpeta compartida entre el invitado QEMU Windows y el host Linux

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:

Configuración de Remmina RDP

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:

Recursos compartidos de la carpeta de invitados de Windows

  • 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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *