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!

¿Este post te ha ayudado?, ¿has aprendido algo nuevo? Pues ¡ayúdame a ayudar a otros! No te costará nada y puedes conseguir premio. Es muy importante. Pulsa para saber más...
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 (22) -

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

Rafa, me podías indicar como creaste la tarea por favor. Yo hice lo mismo pero cuando el PC reinicia me saca pantalla azul con el siguiente error: Detener código: MEMORY_MANAGEMENT, por lo cual me toca retirar la tarjeta para que el PC reinicie con normalidad y eliminar la tarea. ¿Qué puedo hacer?

Responder

bárbaro!!

Responder

No me funcionó, cuando lo quiero montar me dice que "El disco virtual ya está expuesto"

Responder

by Jose M. Alarcon

Pues entonces, obviamente, es que el disco ya está en uso. Asegúrate de que no está adjuntado previamente, porque sino no te daría ese error.

Responder

Master Jedi

Hasta ahora todo bien solo una duda:

- Le asigne una letra de unidad al disco duro virtual que hice, cree el txt y el bat tal cual, la pregunta es: estuvo bien asignar una letra de unidad a la unidad virtual que ya había creado? Es que de otra manera no me dejaba.

Responder

by Jose M. Alarcon

Hola:

Si por cualquier motivo no te vale la asignación automática de letra y usas siempre una letra que sabes seguro que está libre, no tiene por qué haber problema alguno.

Saludos.

Responder

Hola, te consulto por un problema. Tengo una notebook marca Exo con solamente 32gb de capacidad, con Windows 10 Home Edition, y casi los 32gb están ocupados por defecto por el sistema, salvo 200mb. Esto hace imposible utilizarlo, por obvias razones. Quiero utilizar el disco ssd que trae la máquina, y anexarle una tarjeta micro SD de 32 o más gb para que se sume al disco, haciendo uno sólo donde pueda instalar o copiar cosas, permitiendo tener más espacio del sistema para archivos de intercambio, por ejemplo. En Android lo utilizo con mi celular, pero desconozco si se puede vece en Windows 10. Muchas gracias de antemano por la respuesta.

Responder

by Jose M. Alarcon

Hola:

Con algo como lo que explico en el post te puede servir, pero en este caso concreto sería mucho mejor usar la funcionalidad de Espacios de Almacenamiento de Windows 10 que te permite agregar unidades externas, USB o tarjetas SD al espacio total de almacenamiento, de modo que se vean como un único espacio de almacenamiento.

Tienes indicaciones aquí: support.microsoft.com/.../windows-10-storage-spaces

De todos modos, en cuanto puedas, cámbiale el disco a ese chisme y ponle uno de mayor capacidad!!

Saludos.

Responder

Muchas gracias por tu respuesta, lo voy a probar. Saludos.

Responder

Nancy García

Me has salvado la vida.... Me enviaron a comprar una nueva laptop para mí pequeño negocio y sin fijarme compré una con disco duro de 32GB , primero pensé "no hay problema... Compro uno de mayor capacidad...." Pero me di cuenta que no se puede al ser un disco emmc :(  con esto puedo medio resolver el problema ... Solo una duda, se pueden instalar programas en este disco duro virtual? Y cuánto tiempo de vida le calculas a la micro sd?

Responder

buenos días,
no puedo ni siquiera pasar del primer punto, me sale no se puede completar la operación solicitada por una limitación del sistema de archivos.
tengo una sd de 128 gb y un portátil con 32 gb.
gracias por su orientación

Responder

juan mejia

ya pude hacer el paso de crear el disco pero ahora no puedo crear la imagen del disco duro y como no soy muy técnico no se que hacer, me dice que la imagen de disco no se inicializó, contiene particiones no reconocibles.

Responder

El tutorial está fantástico, muy claro e instructivo. Seguí todos los pasos al pie de la letra, con la creación del disco virtual ningún problema, lo cree en una microsdxc de 256 Gb. También seguí al pie de la letra las instrucciones para la creación del script. Después de innumerables pruebas no pude lograr que me reconozca el disco virtual en el inicio, debo clickear sobre él y allí aparece con su letra correspondiente, tanto en el explorador como en el administrador de discos. Tendrías alguna sugerencia en cuanto a cual podría ser el inconveniente? Gracias por anticipado!

Responder

Seguí el tutorial paso a paso, anteriormente lo trate de hacer con el Programador de Tareas pero al reiniciar el computador genera un error de pantalla azul: Detener código: MEMORY_MANAGEMENT, por lo tanto tuve que eliminar la tarea. Luego de seguir este tutorial, el computador reinicia perfecto, pero no monta el disco virtual de manera automática, ¿Qué puedo hacer?

Responder

by Jose M. Alarcon

Hola David:

La verdad es que no tengo ni idea de por qué te puede ocurrir esto.

Si montas el disco a mano, desde la línea de comandos, una vez ya iniciada la sesión: ¿te lo monta bien? Porque si falla en ese caso también quizá sea alguna incompatibilidad de la tarjeta que utilizas. Si lo monta bien a mano pero no en el inicio quizá sea alguna configuración de seguridad, pero no tengo ni idea pues nunca me lo he encontrado. Buscando en Google tampoco encuentro nada similar. Me suena a incompatibilidad de hardware o algo así.

Lamento no poder ayudarte más.

Saludos.

Responder

Jose, buen día!

Te cuento lo siguiente, como te lo había manifestado al reiniciar el equipo, no se monta el disco automáticamente, me toca hacerlo de forma manual y no presenta algún inconveniente, pero me di cuenta de lo siguiente:

1. No  había apagado el pc desde que inicie el proceso, siempre estuvo encendido, lo máximo que hice fue reiniciarlo cada vez.
2. Tuve que apagar mi equipo y trasladarme a otro sitio de trabajo, al encender el equipo el disco se monto de manera automática sin inconvenientes.
3. Reinicie el pc para ver si (por algún motivo desconocido) ya había quedado resulto el tema y el disco seguía montándose de manera automática, vaya sorpresa... no, no sucede.
4. Pero bueno, si sucedió una vez, algo tuvo que haber desencadenado en que funcionara, muy bien, pues hice un par de pruebas más y obtuve el siguiente resultado, por lo cual quería consultarte y saber si hay una explicación y como se podría solucionar permanentemente:
4.1. Reiniciar el pc con el disco aún montado, obviamente sin retirar la SD, no funciona
4.2. Reiniciar el pc con el disco sin montar, pero obviamente con la SD insertada, no funciona
4.3. Apagar el pc con el disco sin montar, volver a encenderlo, pero nuevamente con la SD insertada, no funciona
4.4 Apagar el pc con el disco montado, volver a encender el pc, obviamente con el SD insertada, SI FUNCIUONA, sin problema alguno, al verificar el disco esta montado y funcional!!!!

Que puede ser? te agradezco me des luces, por que me tiene loco jajaja

Responder

by Jose M. Alarcon

Hola de nuevo:

Lo siento mucho, pero la verdad es que no tengo ni idea. Yo esto lo tuve bastante tiempo montado así como lo explico en un equipo y me funcionaba bien. Eso sí, hay que tener en cuenta que el proceso tarda y sólo funciona una vez hayas accedido al sistema con tu usuario. Es decir, no está disponible cuando todavía no te has logueado por lo que si hay un proceso o servicio que está en ejecución antes y que intenta acceder no funcionará porque la unidad no está todavía. Y una vez entres en tu sesión, tarda unos segundos en estar disponible tambien.

Saludos y si logras solucionarlo, por favor, coméntalo aquí para que le sirva a más gente. Gracias.

Responder

Listo Jose, estaré revisando y si logro dar con la solución lo comentare.

Muchas gracias.

Responder

tengo windows 10 home en una galaxy book, compre una micro sd de 256 gb, al momento de poner el comando gpedit no puedo hacerlo, lei que puedo ser a causa que la versión es la home, hay alguna solución? saludos y muchas gracias

Responder

by Jose M. Alarcon

Hola Erick:

Si no me equivoco, en Windows 10 Home viene incluido el programador de tareas (Task Scheduler). Puedes crear una tarea de la misma manera e indicar en el "disparador" (trigger) del evento que lo lance cuando el usuario se olguee o incluso cuando arranque el sistema.

Saludos.

Responder

me aparece al intentar crear disco virtual :  NO SE PUEDE COMPLETAR LA OPERACION SOLICITADA POR UNA LIMITACION DEL SISTEMA DE ARCHIVOS

Responder

Agregar comentario