About Paco Zarabozo

Posts by Paco Zarabozo:

1

Junctions para carpetas de red

Posted by Paco Zarabozo on abril 30, 2011 in Windows |

Muchísima gente, incluyendo expertos en IT, desconoce lo que son los Junction points en Windows (NTFS). Quienes están familiarizados con Linux/Unix, saben lo que es un Symlink, pero muchísimos creen que es una funcionalidad que en Windows no existe, lo cuál es un error.

Para aquellos que no saben lo que es, es similar a un acceso directo. La diferencia radica en que el sistema no lo trata como un accceso directo, sino somo si se tratara de el archivo o la carpeta real en sí. Por ejemplo, si yo tengo la siguiente ruta:

C:\Documents and settings\Paco\Mis documentos\Proyectos\112343\Tareas

…pero quiero acceder a esa ruta desde D:\Tareas, podría crear un acceso directo a dicha carpeta en D:\Tareas. Sin embargo, hay un sinnúmero de motivos por los cuáles yo podría necesitar que el sistema crea que D:\Tareas es una carpeta real. Por ejemplo, algún programa que forzosamente busca esa carpeta, pero yo por cuestiones de espacio, necesito conservarla en su ruta original. Entonces crearía un Junction point para que D:\Tareas sea a la vista de cualquier aplicación una carpeta real. Y si algo se modifica dentro de D:\Tareas, es automáticamente modificado en C:\Documents  and Settings\Paco\Mis documentos\Proyectos\112343\Tareas, ya que en realidad es el mismo punto y ocupa el mismo espacio en el disco duro.

Lo mismo puedo hacer para crear hardlinks a archivos (tal como lo hace el comando ln en Linux). También es necesario utilizar herramientas de terceros o provistas por Microsoft en toolkits de administración. Una vez que creas un link de este tipo, puedos tener el archivo original C:\Documents  and Settings\Paco\Mis documentos\Proyectos\112343\Tareas\Notas.txt y un hardlink a ese archivo en la ruta C:\Notas.txt. Son el mismo archivo. Si modifico uno de ellos el otro se modifica también.

Ciertamente ha existido en el sistema de archivos NTFS desde antes de Windows 2000, pero Microsoft nunca creó documentación al respecto. Existen actualmente herramientas de terceros e incluso algunas provistas por Microsoft para la manipulación de este tipo de links (por ejemplo, junction.exe de SysInternals – ahora de Microsoft).

Todo esto es de gran utilidad para muchísimos fines (mover la ubicación de carpetas de sistema para distribuir el espacio en otros discos, carpetas que un servidor web puede leer, simple comodidad de acceso, etc). Pero te encuentras con un problema cuando lo que intentas hacer es un Junction hacia una carpeta de red o una unidad de red.

Esta es una limitación directa de NTFS. Sin importar la herramienta que se utilice, un Junction hacia una ubicación que no es un disco duro local (como una unidad de red o una carpeta de red) simplemente no funciona. O al menos no funcionaba, hasta la aparición de la nueva versión de NTFS que introdujo Microsoft con Windows Vista y ahora Windows 7.

Desde Windows Vista, existe una herramienta (de línea de comandos/Símbolo del sistema) llamada mklink.exe. Con esta herramienta se pueden crear symlinks, hardlinks, softlinks y junction points. Pero la verdadera novedad es que es posible crear un symlink a una carpeta de red. ¿Por qué querrías hacer esto? Bueno, hay miles de razones diferentes para cada usuario. Pero supongamos lo siguiente:

  • Tengo un equipo de programadores en mi oficina
  • Tengo un servidor de desarrollo en el que se encuentran ciertos archivos que necesito que sean los mismos siempre para todos
  • Necesito cambios en tiempo real antes de pensar en control de versiones
  • El servidor tiene los archivos en la carpeta D:\Archivos
  • Necesito que cada programador, desde su propia máquina, vea/modifique esos archivos en tiempo real como si los tuviera en su propia carpeta local C:\Archivos_del_servidor.

Al crear un symlink en cada máquina hacia esa carpeta del servidor, cada máquina podrá utilizar esos archivos como si se tratara de archivos locales. Esto es invisible para las aplicaciones en general. Cualquier programa podrá abrir esos archivos creyendo que son archivos locales. Si yo un día modifico archivos en el servidor, no tengo que avisarle nada a nadie, todos tendrán los cambios automáticamente.

El uso de la herramienta mklink es muy sencillo. Basta con escribir ese comando en el Símbolo del sistema para que aparezcan instrucciones de uso. Para hacer, por ejemplo, un symlink como el que puse de ejemplo, utilizaría el siguiente comando en cada estación de trabajo:

mklink /d C:\Archivos_del_servidor \\SERVIDOR\d$\Archivos

La respuesta del comando sería la siguiente:

vínculo simbólico creado para C:\Archivos_del_servidor <<===>> \\DEV\d$\Archivos

Utilizando el modificador /J en lugar de /D, se crean Junction points normales, accesibles en versiones anteriores a Windows Vista. Con el modificador /H se crea un hardlink. Si el link que se quiere crear es de un archivo y no de una carpeta, entonces no se aplica ningún modificador en el comando, sólo la ruta del link a crear seguida de la ruta real al archivo.

Si no tienes experiencia con este tipo de cosas, te recomiendo fuertemente que investigues sobre el problema al eliminar Junction points desde el explorador de Windows. Puedes perder la carpeta original al vaciar tu papelera de reciclaje. Para eliminar Junctions hay que tener cuidado. Herramientas como junction.exe de SysInternals permiten la eliminación correcta. Hay muchas herramientas de terceros que lo hacen correctamente también.

Espero les sea de utilidad. 🙂

Etiquetas: , , , , , , ,

80

Windows 7 – Solución a Error 0x80070490 al instalar SP1 (Service Pack 1)

Posted by Paco Zarabozo on abril 30, 2011 in Windows |

Decidí crear un artículo sobre esto después de pasar muchas horas tratando de solucionar este problema, ya que entre muchas búsquedas que hice, me dí cuenta de que es un problema bastante común. Yo intentaba actualizar el Service Pack 1 de Windows 7 a través de Windows Update (actualizaciones automáticas) y el error no era muy claro. […]

Etiquetas: , , , , , ,

19

Desactivar y eliminar archivo de hibernación en Windows 7 y Windows Vista

Posted by Paco Zarabozo on abril 1, 2011 in Windows |

Es común que la gente desee eliminar el archivo de hibernación en Windows. Es un archivo que llega a medir varios gigas y no es muy útil para quienes realmente no utilizan la función de hibernación. Este archivo normalmente está ligado en tamaño a la cantidad de memoria RAM del equipo. En mi caso, tengo […]

Etiquetas: , , , , ,

15

Habilitar recursos compartidos (shares) administrativos en Windows 7

Posted by Paco Zarabozo on marzo 20, 2011 in Windows |

Esta es una de las situaciónes que más me frustró por un buen rato sobre Windows 7. Mucha gente está acostumbrada a compartir carpetas en red, compartiendo sólo la carpeta que desean compartir. Esto sigue siendo una fuincionalidad normal en Windows 7. Pero para quienes no quieren compartir carpetas específicamente, o para los adminsitradores de […]

Etiquetas: , , , , ,

4

Time::Anytime

Posted by Paco Zarabozo on abril 2, 2010 in Código, Diario IT, Perl |

Este es un proyecto personal en Perl, que deseo compartir con quien desee participar. Me agradaría mucho ver que algo como esto es tomado por manos hispanas y llevado de forma exitosa a CPAN como tal.

Etiquetas: , , , , , , , , , , , , ,

Copyright © 2009-2017 Paco Zarabozo All rights reserved.
This site is using the Desk Mess Mirrored theme, v2.5, from BuyNowShop.com.