JASoft.org

El blog de José Manuel Alarcón Aguín. Programación web y mucho más...

MENÚ - JASoft: JM Alarcón

TRUCO: Auto-montar un disco virtual en una tarjeta SD al iniciar Windows 10

Este es un truco genérico que, de hecho, puede servirte para muchas otras cosas...

Si tienes un tablet o un ordenador convertible barato con Windows 10, lo habitual será que no vayan muy sobrados de almacenamiento. Muchos de estos dispositivos vienen con tan solo 32GB de almacenamiento, ya que esto suele ser lo más caro del aparato. Windows 10 de hecho, se suele "comer" al menos 8 o 10 de estos GB por lo que no solemos andar muy sobrados de espacio. Todos estos aparatos suelen tener almacenamiento expandible mediante tarjetas MicroSD. En la actualidad este tipo de almacenamiento externo es muy barato. Puedes comprar una de 64GB de clase 10 y 100MB/s por menos de 30€, por lo que la verdad es que la opción de utilizarlas en este tipo de dispositivos no está nada mal.

El caso es que, te compras la estupenda y rapidísima tarjeta microSD pero, oh sorpresa, no puedes instalar nada en ella porque al ser extraíble el sistema no te lo permite, e incluso algunos programas no te permiten usarla tampoco para almacenamiento. ¡Qué contrariedad! Cosas de Windows...

Un ejemplo muy claro de esta molestia es OneDrive. Si intentas decirle a OneDrive que quieres usar una carpeta en la tarjeta microSD para almacenar los archivos que sincronizas te dice que no es posible usar un medio extraíble.

Y es que, una de las cosas que solemos hacer muchos para tener nuestros archivos siempre a mano es sacarle partido a algún almacenamiento en la nube estilo Dropbox, Google Drive, OneDrive o pCloud (uno de mis grandes descubrimientos recientes, con interesantes características y además son europeos). El caso es que estos servicios (menos pCloud) requieren mucho espacio en disco para almacenar los archivos que tengas en la nube. Y aunque ahora la moda es incluir una funcionalidad para que solo se sincronicen los archivos que quieras, en el caso de OneDrive aunque fueron los pioneros retiraron esta capacidad al lanzar Windows 10 (vergüenza debiera darles, cuando ahora todos les copian) y Dropbox solo lo incluye en las versiones para empresas (ni siquiera si les pagas la versión Plus, ya les vale). GDrive es el único que lo tiene, con el nuevo Google Drive Stream que están lanzando estos días, pero a medida que accedes a las carpetas o si sincronizas muchas cosas te acaba ocupando mucho espacio también ya que la caché de los archivos la hace en tu perfil de usuario, o sea, en C: y no deja cambiar esta ubicación. El único amistoso en este sentido es pCloud, que no lo necesita al ser una carpeta en la nube directamente, y la pequeña caché local que utiliza, no obstante, te deja colocarla donde quieras.

Debido a ellos, este tipo de aplicaciones son muy avariciosas con el espacio en disco, y no se llevan bien con el hecho de usar una tarjeta externa que puedes retirar en cualquier momento...

Además de este tipo de aplicaciones, el caso es que para muchos programas almacenar en la tarjeta microSD no es una opción. Ahora te voy a contar cómo deshacerte de esta limitación.

Discos virtuales

Desde hace mucho tiempo, desde Windows 7 si no me equivoco, el sistema operativo Windows tiene la capacidad de gestionar discos duros virtuales nativamente. Se trata de archivos con la extensión .vhd (Virtual Hard Drive) o .vdhx (un formato ma´s moderno y extensible) que son los mismos que usa Hyper-V, el producto de virtualización de Microsoft, también incluido de serie con Windows (aunque no instalado por defecto).

Gracias a esta capacidad es muy sencillo crear un disco virtual, que se verá como un disco real a todos los efectos, y podremos utilizarlo como si se tratase de una unidad física existente. Esto incluye archivos de disco virtual guardados en un medio de almacenamiento externo como una tarjeta microSD.

Lo único que tenemos que hacer para crear un nuevo disco virtual en Windows 10 es pulsar con el botón derecho en el botón de inicio y elegir la opción "Gestión de disco" (yo tengo el sistema en inglés, pero debe de ser aproximadamente eso):

Otra opción es buscar "Computer management" en el inicio y asegurarnos de arrancarlo con permisos de administrador (opción el pulsarlo con el botón derecho), ya que sin ellos no podremos hacer nada en este caso:

Esto nos abre una nueva ventana en la que tenemos todos los discos del sistema para gestionar. En el menú "Acciones" tenemos dos opciones relacionadas con la gestión de discos virtuales: crearlos y adjuntarlos:

Si escoges crear un nuevo disco virtual te aparece una pantalla como la siguiente:

En ella deberás introducir la ruta donde quieres crear el VHD, que en este caso sería la tarjeta SD, y el tamaño del disco en MB o GB. Escoge bien el tamaño adecuándolo a tus necesidades.

Luego te da a elegir dos cosas más muy importanes:

  • El formato del disco virtual: el VHD debería ser suficiente ya que no necesitas tener un tamaño mayor de 2TB, pero por otro lado yo te recomendaría que elijas el VHDX porque es más resistente a fallos (como que retires la tarjeta de golpe sin avisar, aunque jamás debieras hacerlo). Eso sí, si escoges VHDX no podrás leerlo en Windows 7 si te levas la tarjeta a este sistema en algún momento.
  • El tipo de disco: si escoges el tamaño fijo el disco ocupará ese espacio máximo desde el primer minuto, aunque no le metas información dentro. Aunque está recomendado el de tamaño fijo yo suelo elegir el de tamaño dinámico porque le puedes poner el tamaño que quieras y solo te ocupará lo que realmente sea necesario para la información que contiene. De este modo podrías tener una tarjeta SD pequeña de 16GB pero decirle que el disco sea de 128GB, y funcionaría bien. Solo debes tener cuidado de no pasarte de 16Gb. En el futuro cuando necesites más espacio, simplemente copias el archivo .vhdx a una nueva tarjeta más grande y listo.

Listo. Una vez creado puedes adjuntarlo a tu sistema usando la otra opción de menú. Se le asignará una letra y podrás acceder a él como una unidad de disco física normal, solo que en realidad estarás usando el almacenamiento extraíble. OneDrive te dejará poner su carpeta en la nueva unidad, y podrás crear enlaces simbólicos o juntions para redirigir carpetas a dicha unidad 8de esto, si me lo pedís, hablaré otro día pues es un tema muy interesante).

Pero no nos llega solo con esto...

Adjuntarlo automáticamente

Lo anterior está bien pero no nos sirve de mucho si en cuanto arranca el sistema no tenemos de nuevo la unidad adjunta. Y es que adjuntar manualmente una unidad como acabamos de hacer no es una operación persistente. Es decir, cuando el sistema operativo se reinicie por una actualización o cualquier otro motivo, la unidad no estará ahí. Ouch!

Para lograr que siempre esté disponible lo que tenemos que hacer es adjuntarla automáticamente con un script antes siquiera de que el usuario se loguee en el sistema. Para ello abrimos una línea de comandos con permisos de administrador, y escribimos gpedit para lanzar el gestor de políticas del sistema, y nos vamos al nodo Configuración de la computadora·Ajustes de Windows·Scripts (inicio/cierre):

Al editar esta política nos sale la ventana en primer plano de la figura anterior que nos permite asignar ciertos scripts para ser ejecutados cuando arranca el equipo, antes de que ningún usuario se loguee siquiera.

Lo que tenemos que hacer es escribir un pequeño script a ejecutar que haga lo que queremos: adjuntar el VHDX como una unidad, antes de nada.

Vete a la carpeta del SD en el que has creado el disco virtual, y en el mismo sitio crea un archivo de texto (por ejemplo adjunta-VHDX.txt) con el siguiente contenido:

select vdisk file="D:\Discos\OneDrive.vhdx"
attach vdisk

siendo lo que va entre comillas dobles la ruta a tu unidad de disco virtual.

Este archivo de texto lo usaremos como argumento del comando diskpart que gestiona los discos desde la línea de comandos. Así que crea otro archivo de texto con el mismo nombre pero con extensión .bat y dentro pon lo siguiente:

diskpart /s "D:\Discos\adjunta-VHDX.txt"

siendo lo que va entre comillas la ruta al archivo de texto anterior.

Ahora en el diálogo que tenías abierto en el gestor de políticas, asigna ese script pulsando sobre "Añadir" y poniendo la ruta al .bat que acabas de crear.

¡Listo! Ahora, cada vez que arranque el equipo se adjuntará una unidad de disco, a todos los efectos como otra cualquiera, solo que estará sustentada en un disco virtual guardado en tu tarjeta microSD, y podrás utilizarla como verdadero almacenamiento adicional, como si le hubieras colocado un disco duro interno nuevo al ordenador.

Esto además de lo que he contado tiene otras ventajas como por ejemplo que puedes mover de golpe miles de archivos que estén dentro de la unidad virtual copiando un único archivo (el .vhdx), por lo que copiarlo a cualquier lado es mucho más rápido (se copia mucho más rápido un archivo que miles de ellos aunque el espacio que ocupen sea el mismo). 

Solo un consejo: ahora sí, antes de retirar la tarjeta microSD asegúrate de desvincular el disco o podrías tener problemas. De hecho si es un tablet, lo mejor es que si necesitas quitar la tarjeta antes lo apagues, y luego la pongas de nuevo antes de encenderlo.

¡Espero que te sea útil!

José Manuel Alarcón José Manuel Alarcón
Fundador de campusMVP.es, el proyecto de referencia en formación on-line para programadores en lengua española. Autor de varios libros y cientos de artículos. Galardonado como MVP de Microsoft desde 2004. Gallego de Vigo, amante de la ciencia y la tecnología, la música y la lectura. Ayudando a la gente en Internet desde 1996.
Descarga GRATIS mi último libro (no técnico): "Tres Monos, Diez Minutos".
Banner

Comentarios (2) -

Algo parecido tengo yo pero usando el programador de tareas, que se dispara cuando inicio sesión.
Lo uso dentro de mi HD, con cosas de trabajo, así cuando quiero una copia de seguridad desmonto el disco y copiar el fichero donde quiera.

https://i.imgur.com/U6BkodT.png

Responder

bárbaro!!

Responder

Agregar comentario