Acceso a medios extraíbles en Bash en Windows

38

¿Hay alguna forma de acceder a los medios extraíbles (por ejemplo, unidades de memoria USB o tarjetas SD) desde Bash en Windows?

Bash en Windows usa DriveFs para montar unidades fijas en la /mntcarpeta, pero no monta automáticamente medios extraíbles. Y no parece que los ponga /devtampoco:

Aaron@MYPC:/$ ls /dev
block  fd  kmsg  lxss  null  ptmx  pts  random  shm  stderr  stdin  stdout  tty  tty0  tty1  urandom  zero

¿Hay alguna forma de montar unidades extraíbles? ¿Hay alguna manera de acceder al dispositivo de bloque subyacente?

Aaron Campbell
fuente
55
Vea esto wpdev.uservoice.com/forums/… .
CodeIt
escriba mounty vea si eso le da pistas. Si usa cygwinbash, la ruta es / cygdrive /.
strobelight
No: Aaron@MYPC:~$ mount rootfs on / type rootfs (rw,relatime) sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=204320k,mode=755)[etc]
Aaron Campbell
Similar, aunque esta pregunta menciona específicamente los medios extraíbles y ese se refiere a los medios fijos. La respuesta mejor calificada en esa publicación solo es parcialmente aplicable a esta pregunta.
Aaron Campbell

Respuestas:

50

Buenas noticias, ahora es posible montar medios USB (incluso formateados como FAT) y recursos compartidos de red con drvfs en Windows 10:

Montar medios extraíbles: (por ejemplo, D :)

$ sudo mkdir /mnt/d
$ sudo mount -t drvfs D: /mnt/d

Para desmontar de forma segura

$ sudo umount /mnt/d

También puede montar recursos compartidos de red sin smbfs:

$ sudo mount -t drvfs '\\server\share' /mnt/share

Necesita al menos Build 16176, por lo que es posible que deba optar por el programa Windows Insider y luego actualizar Windows. Fuente: https://blogs.msdn.microsoft.com/wsl/2017/04/18/file-system-improvements-to-the-windows-subsystem-for-linux/

usuario643011
fuente
44
No publique la misma respuesta a varias preguntas. Si la misma información realmente responde a ambas preguntas, entonces una pregunta (generalmente la más nueva) debería cerrarse como un duplicado de la otra. Puede indicar esto votando para cerrarlo como un duplicado o, si no tiene suficiente reputación para eso, levante una bandera para indicar que es un duplicado. De lo contrario, adapte su respuesta a esta pregunta y no solo pegue la misma respuesta en varios lugares.
DavidPostill
77
Querido David. Siéntase libre de levantar la bandera para la duplicación usted mismo. Esta respuesta se adapta a la pregunta y le invitamos a hacer sugerencias de mejora.
user643011
2
Estimado "usuario", he votado tu comentario aquí asumiendo que lo que dijiste era, bueno, cierto ... Ahora me doy cuenta de que estaba equivocado, pero parece que no puedo deshacer mi voto de comentario, así que tengo que preguntar explícitamente: cómo exactamente ¿Es esto "adaptado a la pregunta", mientras sigue siendo la copia exacta "bit a bit" de su otra respuesta ?
Sz.
Hola Sz! ¿Porque es verdad? Responde exactamente: ¿Hay alguna manera de acceder a los medios extraíbles desde Bash en Windows? Si tiene una mejor respuesta, no dude en responder mejor la pregunta o sugerir una edición para esta. ¡Gracias!
user643011
wrong fs type, bad option, bad superblock on G:, missing codepage or helper program, or other error- también, por favor lea este comentario ; No contestes duplicados.
Financia la demanda de Mónica el
10

¿Hay alguna manera de acceder a los medios extraíbles desde Bash en Windows?

Actualizar:

Aparentemente, ahora es posible a partir de Windows 10 Build 16176.

Ver https://superuser.com/a/1209701/337631 .


No.

Por el momento, existen limitaciones sobre qué unidades están montadas:

Para que una unidad aparezca bajo / mnt / debe cumplir con los siguientes criterios:

  1. La unidad debe ser una unidad fija
  2. La unidad debe estar formateada en NTFS.

Esto se ha planteado como un problema: las unidades que no sean C: no están montadas en / mnt # 1079 . Todavía está marcado como "Abierto".

Para facilitar la interoperabilidad con Windows, WSL utiliza el sistema de archivos DrvFs. WSL monta automáticamente todas las unidades fijas con sistemas de archivos compatibles en / mnt, como / mnt / c, / mnt / d, etc. Actualmente, solo se admiten volúmenes NTFS y ReFS.

Soporte de sistema de archivos WSL de origen


Otras lecturas

DavidPostill
fuente
Ahora hay una solución: superuser.com/a/1209701/182880
user643011
0

Si el dispositivo no está en funcionamiento /dev, es probable que su configuración ni siquiera detecte la unidad.

El comando lsblkdebe enumerar todos los dispositivos de bloque conectados (unidades). Si no aparece en esta lista, lo mejor es intentar enchufar el dispositivo antes de comenzar bash.

No veo en su pregunta ninguna mención de qué método de uso de bash en Windows ha encontrado, pero para la mayoría no debería ser demasiado difícil reiniciar bash.

Si lsblkle muestra su unidad, busque la ruta que enumera y escriba mount <path shown by lsblk> <path you want the drive to be mounted to>

timotree
fuente
mountTodavía no se admiten unidades extraíbles. "WSL monta automáticamente todas las unidades fijas con sistemas de archivos compatibles en / mnt, como / mnt / c, / mnt / d, etc. Actualmente, solo se admiten volúmenes NTFS y ReFS". Ver blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-support
DavidPostill
jajaja Ya lo hice hace algún tiempo :) Vea mi respuesta aquí Manipular archivos de Windows con Linux Bash Shell en Windows 10
DavidPostill