# Solución de Problemas de Montaje FUSE

Este documento proporciona pasos detallados para solucionar problemas comunes con el montaje FUSE del Contenedor Cuántico.

## Síntomas de fallo en el montaje FUSE

Si ves mensajes como estos durante la ejecución:
```
DEBUG: Esperando a que el sistema de archivos FUSE se monte...
DEBUG: No se pudo detectar el montaje FUSE.
DEBUG: Usando modo de copia física...
```

Significa que el sistema está funcionando, pero ha fallado al montar el sistema de archivos FUSE y está usando el modo de copia física como respaldo.

## Requisitos previos para FUSE

1. **WinFSP instalado correctamente**
   - Descargar WinFSP desde: https://github.com/winfsp/winfsp/releases/latest
   - Instalar con permisos de administrador
   - Reiniciar el sistema después de la instalación

2. **Módulos de Python requeridos**
   - Ejecutar `pip install fusepy zstd numpy Pillow anytree psutil`
   
3. **Permisos de administrador**
   - Ejecutar el programa como administrador
   - Usar PowerShell o CMD con permisos elevados

## Pasos de solución

### 1. Verificar la instalación de WinFSP

```powershell
# Verificar si el servicio WinFSP está en ejecución
sc query WinFsp.Launcher

# Si no está en ejecución, iniciarlo
net start WinFsp.Launcher
```

### 2. Limpiar el punto de montaje

El punto de montaje puede estar bloqueado por otros procesos:

```powershell
# Desmontar cualquier montaje existente
net use c:\contenedor_cuantico_1\.venv\mountpoint /DELETE /Y

# Limpiar el directorio
Remove-Item -Path c:\contenedor_cuantico_1\.venv\mountpoint\* -Force
```

### 3. Usar el script dedicado de montaje

Ejecutar el script de montaje dedicado (como administrador):

```powershell
python c:\contenedor_cuantico_1\mount_quantum_fs.py "C:\ruta\a\archivos"
```

### 4. Diagnóstico detallado

Utilizar las herramientas de diagnóstico incluidas:

```powershell
python c:\contenedor_cuantico_1\winfsp_diagnostic.py
```

### 5. Reparación completa

Si los problemas persisten:

```powershell
python c:\contenedor_cuantico_1\fix_fuse_mount.py
```

### 6. Reinstalar WinFSP

Si ninguna solución funciona, reinstalar WinFSP:

```powershell
# Como administrador
powershell -ExecutionPolicy Bypass -File c:\contenedor_cuantico_1\setup_winfsp.ps1
```

## Funcionamiento en modo de copia física

El Contenedor Cuántico sigue siendo completamente funcional en modo de copia física:

1. **Identificación de archivos**: Los archivos en el directorio mountpoint tendrán un sufijo `_c` para indicar que son copias físicas.

2. **Actualización de copias**: Usar el botón "Refrescar archivos físicos" en la interfaz gráfica para actualizar las copias cuando sea necesario.

3. **Ventajas/desventajas**:
   - **Ventaja**: Acceso directo a los archivos sin depender de FUSE.
   - **Desventaja**: Ocupan espacio adicional en disco.

## Casos comunes de problemas

### Problemas de permisos en Windows

En Windows 10/11, las restricciones de seguridad pueden impedir que FUSE funcione correctamente:

1. Verificar que WinFSP está instalado para todos los usuarios
2. Ejecutar programas como administrador
3. Desactivar temporalmente Windows Defender o añadir excepciones
4. Comprobar Políticas de Grupo que puedan estar bloqueando drivers de terceros

### Errores de Python

Los errores comunes incluyen:

1. **ImportError con fusepy**: Reinstalar con `pip install fusepy`
2. **AttributeError**: Actualizar paquetes con `pip install --upgrade fusepy zstd`
3. **PermissionError**: Ejecutar como administrador

### Conflictos con antivirus

Algunos antivirus pueden bloquear operaciones de montaje FUSE:

1. Añadir la carpeta del proyecto a las exclusiones del antivirus
2. Desactivar temporalmente la protección en tiempo real durante el montaje

## Otras recomendaciones

1. **Utilizar PowerShell**: Proporciona mejor manejo de errores que CMD
2. **Reiniciar**: Muchos problemas de montaje se solucionan con un reinicio
3. **Logs detallados**: Revisar `quantum_mount.log` para diagnóstico avanzado

## Contacto para soporte

Si ninguna de estas soluciones funciona, puedes buscar ayuda adicional:

1. Abrir un issue en el repositorio del proyecto
2. Proporcionar los logs de error (quantum_mount.log)
3. Describir detalladamente tu entorno (versión de Windows, Python, etc.)
