Acessando mídia removível no Bash no Windows

38

Existe uma maneira de acessar mídia removível (por exemplo, pen drives ou cartões SD) de dentro do Bash no Windows?

O Bash no Windows usa os DriveFs para montar unidades fixas na /mntpasta, mas não monta automaticamente mídia removível. E também não parece que os coloca /dev:

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

Existe uma maneira de montar unidades removíveis? Existe uma maneira de acessar o dispositivo de bloco subjacente?

Aaron Campbell
fonte
5
Consulte este wpdev.uservoice.com/forums/… .
CodeIt
digite mounte veja se isso lhe dá pistas. Se estiver usando o cygwinbash, o caminho é / cygdrive /.
Strobelight 19/10/16
Não: 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
Semelhante, embora essa pergunta mencione especificamente mídia removível e que se refira à mídia fixa. A resposta com a classificação mais alta nessa postagem é apenas parcialmente aplicável a esta pergunta.
Aaron Campbell

Respostas:

50

Boas notícias, agora é possível montar mídia USB (incluindo formatada como FAT) e compartilhamentos de rede com drvfs no Windows 10:

Monte mídia removível: (por exemplo, D :)

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

Para desmontar com segurança

$ sudo umount /mnt/d

Você também pode montar compartilhamentos de rede sem smbfs:

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

Você precisa pelo menos da compilação 16176, portanto, pode ser necessário ativar o programa Windows Insider e atualizar o Windows. Fonte: https://blogs.msdn.microsoft.com/wsl/2017/04/18/file-system-improvements-to-the-windows-subsystem-for-linux/

user643011
fonte
4
Não publique a mesma resposta em várias perguntas. Se a mesma informação realmente responder a ambas as perguntas, uma pergunta (geralmente a mais recente) deve ser fechada como duplicata da outra. Você pode indicar isso votando para fechá-lo como duplicado ou, se você não tiver reputação suficiente para isso, levante uma bandeira para indicar que é uma duplicata. Caso contrário, adapte sua resposta a essa pergunta e não cole a mesma em vários lugares.
DavidPostill
7
Querido David. Sinta-se à vontade para levantar a bandeira para duplicação. Esta resposta é personalizada para a pergunta e você é bem-vindo para fazer sugestões de aprimoramento.
User643011 16/04
2
Caro "usuário", votei no seu comentário aqui assumindo que o que você disse foi, bem, verdade ... Agora percebo que estava errado, mas não consigo desfazer o meu comentário, então preciso perguntar explicitamente: como exatamente isso é "adaptado à pergunta", enquanto continua sendo a cópia exata "bit a bit" da sua outra resposta ?
Sz.
Hey Sz! Porque é verdade? Responde exatamente: Existe uma maneira de acessar mídia removível de dentro do Bash no Windows. Se você tiver uma resposta melhor, sinta-se à vontade para responder melhor à pergunta ou sugerir uma edição para esta. Obrigado!
user643011
wrong fs type, bad option, bad superblock on G:, missing codepage or helper program, or other error- leia também este comentário ; não responda duplicatas.
Fund Monica Monica,
10

Existe uma maneira de acessar mídia removível a partir do Bash no Windows?

Atualizar:

Aparentemente, agora é possível a partir do Windows 10 Build 16176.

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


Não.

No momento, existem limitações sobre quais unidades estão montadas:

Para que uma unidade seja exibida em / mnt /, ela deve atender aos seguintes critérios:

  1. A unidade deve ser uma unidade fixa
  2. A unidade deve ser formatada para NTFS.

Isso foi levantado como um problema: Unidades diferentes de C: não estão montadas em / mnt # 1079 . Ainda está marcado como "Aberto".

Para facilitar a interoperabilidade com o Windows, o WSL usa o sistema de arquivos DrvFs. O WSL monta automaticamente todas as unidades fixas com sistemas de arquivos suportados em / mnt, como / mnt / c, / mnt / d, etc. Atualmente, apenas os volumes NTFS e ReFS são suportados.

Suporte ao sistema de arquivos WSL de origem


Leitura adicional

DavidPostill
fonte
Agora existe uma solução: superuser.com/a/1209701/182880
user643011 16/17
0

Se o dispositivo não estiver em /dev instalado, é provável que sua instalação nem esteja detectando a unidade.

O comando lsblk deve listar todos os dispositivos de bloco conectados (unidades). Se ele não aparecer nesta lista, sua melhor aposta é tentar conectar o dispositivo antes de iniciar o bash.

Não vejo da sua pergunta nenhuma menção de qual método de uso do bash no Windows você encontrou, mas para a maioria não deve ser muito difícil reiniciar o bash.

Se lsblkmostrar sua unidade, encontre o caminho listado e digite mount <path shown by lsblk> <path you want the drive to be mounted to>

timotree
fonte
mountainda não há suporte para unidades removíveis. "O WSL monta automaticamente todas as unidades fixas com sistemas de arquivos suportados em / mnt, como / mnt / c, / mnt / d, etc. Atualmente, apenas os volumes NTFS e ReFS são suportados." Consulte blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-support
DavidPostill
ri muito. Eu já fiz isso há algum tempo :) :) Veja minha resposta aqui Manipular arquivos do Windows com o Linux
Bash