Archivos de la categoría Linux y Software Libre

Error al unir el archivo, un problema al copiar archivos grandes a una USB.

Llevo tiempo luchando con este problema. No me pasa frecuentemente, así que se puede decir que es uno de esos detalles escurridizos de Linux.

Les cuento, al copiar archivos grandes, digamos de más de 1 GB en un dispositivo USB, justo antes de terminar la copia aparece el siguiente error:

error al unir el archivo
Error al unir el archivo.

Error al unir el archivo.

Error de entrada/salida

¿Quiere omitirlo?

Lo puedo intentar varias veces y nada, incluso he eliminado archivos para hacerle más espacio y lo mismo.

Si por ejemplo, intento copiar 2 GB en archivos pequeños, en ese caso nunca he tenido problemas, sólo en archivos individuales de gran tamaño.

Al principio creí que era un detalle en la memoria USB, algún problema con la electrónica, pero ya intenté copiar los archivos después de formatearla y vuelve a aparecer el error. Lo mismo ocurre con dispositivos USB de distintas marcas y capacidades.

Lo que le añade un grado extra de dificultad para encontrar una solución es que no siempre pasa, a veces sí, otras no. Me mortifica un poco porque me hace perder tiempo.

Luego pensé que podría ser un bug de Thunar el administrador de archivos de XFCE, pero luego de instalar y hacer algunas pruebas con Archivos ocurre algo muy similar.

Error al unir el archivo - Files
Archivos es el administrador de archivos de GNOME.

Hasta el momento, lo único que me ha funcionado sin falla es copiar los archivos con rsync , de esa forma, la copia funciona perfectamente. Ya sean un archivo grande o muchos pequeños rsync sale airoso.

El buenazo de rsync al rescate.

Si no son los manejadores de archivos, se me ocurre que puede ser un problema con alguna opción del kernel. Pero no he encontrado en internet algo que respalde esta teoría.

Podría ser algún problemilla con FAT32 el sistema de archivos que uso en las USB por tema de compatibilidad, pero rsync completa la tarea sin mayor problema.

¿Les ha pasado algo similar? Cualquier sugerencia será bienvenida.

java coffee

Exception in thread Unsupported major.minor version 52.0, otra vez Java.

Este error no es nuevo para mi, por ejemplo Angry IP Scanner dejó de funcionar, pero supuse que era algún problema con alguna actualización. Algo que es muy frecuente en una distribución rolling release.

El colmo fue que ayer intenté instalar el IDE de Arduino y al intentar ejecutar me di cuenta de dos cosas, que el software esta escrito en Java y que como es tradición trae sus problemas.

El error completo es como este:

Picked up JAVA_TOOL_OPTIONS: 
Exception in thread "main" java.lang.UnsupportedClassVersionError: processing/app/Base : Unsupported major.minor version 52.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:808)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:443)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:65)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:349)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:348)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:430)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:323)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:363)
	at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)`

El problema es la versión de Java.

El mismo mensaje de error menciona un problema de versión de Java. Así que me fui a buscar información por ese lado. Dí con la página del Wiki de Arch (en Manjaro no encontré algo equivalente) relacionada con Java.

Lo primero es identificar cuantas versiones de Java están instaladas y me llevé una sorpresa.

Al ejecutar el comando archlinux-java status me indicó que tenía instalado en mi equipo no una, ni dos, ¡si no tres versiones de Java!.

Available Java environments:
   java-11-openjdk
   java-7-openjdk/jre (default)
   java-8-openjdk

La verdad es que no tenía idea de este dato, pero en fin.

El problema se soluciona cambiando el default a una versión más reciente. Con la versión 8 funciona, con la versión 11 también. Así que dejé esta última con el siguiente comando.

sudo archlinux-java set java-11-openjdk
Arduino IDE trabajando después de ajustar Java. Unsupported major.minor version 52.0
No que no. ¡Listo y funcionando!

Hecho esto, el IDE de Arduino funciona y también Angry IP Scanner así que se puede dar este problema como solucionado.

redireccionamiento de puertos pfsense

Configurar un redireccionamiento de puertos con pfSense

Hacer un redireccionamiento de puertos es algo que ya tenía dominado con ipCop, pero con pfSense no lo había intentado. Tampoco es que sea muy difícil, solo hay que llenar el formulario con la información y en el sitio correcto.

¿Qué es un redireccionamiento de puertos?

Un redireccionamiento de puertos es lograr que un puerto que está en un equipo protegido por nuestro firewall (en este caso pfSense) sea visible y se pueda trabajar desde el exterior.

Por ejemplo, puede ser un servidor Web (puerto 80) que está funcionando en un servidor dentro de mi red local y que quiero que sea visible desde el exterior.

Configurando el redireccionamiento de puertos.

En mi novatez y experiencia previa con ipCop creí que lo conducente era crear una regla en el firewall (menú Firewall – Rules), pero eso no funcionó. Lo apropiado es ir al menú FirewallNAT y agregamos una regla en la parte que dice Port Forward, que dicho sea de paso, la información que tecleamos en esta sección también crea una regla en el firewall, pero eso lo hace en automático.

Agregando la regla del redireccionamiento de puertos.
Agregando la regla del redireccionamiento de puertos.

En realidad es muy simple:

  • Primero hay que elegir la Interface Exterior (WAN).
  • El protocolo, que puede ser TCP o UDP (o ambos).
  • El puerto o el rango de puertos que va a escuchar del lado exterior. Por ejemplo, un servidor web sería el puerto 80.
  • La dirección IP del equipo interno que va a escuchar las peticiones del puerto 80.
  • El Redirect target port generalmente es el mismo que elegiste en la parte exterior, pero no necesariamente.
  • Y un comentario no vendría mal, a veces ayuda a no confundir algunas reglas con otras.

Guardar los cambios y aplicarlos.

Algunas pruebas.

Para revisar si el redireccionamiento funciona se puede echar mano de un escaneador de puertos online. Me gustó HideMy.Name que usa nmap.

Si el puerto en cuestión dice OPEN, ya podemos decir que el redireccionamiento fue todo un éxito.