在Windows上以Bash访问可移动媒体


37

有没有办法从Windows上的Bash中访问可移动媒体(例如拇指驱动器或SD卡)?

Windows上的Bash 使用DriveFs/mnt文件夹中安装固定驱动器,但它不会自动挂载可移动媒体。它看起来不像是把它们放入/dev其中:

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

有没有办法安装可移动驱动器?有没有办法访问底层块设备?



输入mount并查看是否能为您提供线索。如果使用cygwinbash,路径为/ cygdrive /。
strobelight

Nope: 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


类似的,虽然这个问题特别提到可移动媒体,而且一个是指固定媒体。该帖子中评分最高的答案仅部分适用于此问题。
Aaron Campbell

Answers:


48

好消息,现在可以在Windows 10上安装带有drvfs的USB介质(包括格式化为FAT)和网络共享:

挂载可移动媒体:(例如D :)

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

安全卸载

$ sudo umount /mnt/d

您也可以在没有smbfs的情况下挂载网络共享:

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

您至少需要Build 16176,因此您可能必须选择加入Windows Insider程序然后更新Windows。来源:https//blogs.msdn.microsoft.com/wsl/2017/04/18/file-system-improvements-to-the-windows-subsystem-for-linux/


4
请不要在多个问题上发布相同的答案。如果相同的信息确实回答了这两个问题,那么一个问题(通常是较新的问题)应该作为另一个问题的副本关闭。您可以通过投票将其作为副本关闭来表明这一点,或者如果您没有足够的声誉,则举起一个标志以表明它是重复的。否则定制你对这个问题的答案,不要只是在多个地方粘贴相同的答案。
DavidPostill

7
亲爱的大卫。随意自己提升复制标志。这个答案是针对这个问题量身定做的,欢迎您提出改进建议。
user643011

2
亲爱的“用户”,我在这里赞成你的评论假设你所说的是,嗯,真实......现在我意识到我错了,但似乎无法撤消我的评论upvote,所以我必须明确地问:究竟是怎么回事这是“量身定制的问题”,同时仍然是你的另一个答案的确切“按位”副本?
Sz。

嘿Sz!因为这是真的吗?它完全回答:有没有办法从Windows上的Bash中访问可移动媒体。如果您有更好的答案,请随时更好地回答问题或建议编辑此问题。谢谢!
user643011

wrong fs type, bad option, bad superblock on G:, missing codepage or helper program, or other error- 另外,请阅读此评论 ; 不回答重复。
Nic Hartley

10

有没有办法从Windows上的Bash中访问可移动媒体?

更新:

显然现在可以从Windows 10 Build 16176开始。

请参阅https://superuser.com/a/1209701/337631


没有。

目前安装的驱动器存在限制:

为了使驱动器显示在/ mnt /下,它必须满足以下条件:

  1. 驱动器必须是固定驱动器
  2. 必须将驱动器格式化为NTFS。

这已成为一个问题:C:以外的驱动器未安装在/ mnt#1079中。它仍被标记为“开放”。

为了促进与Windows的互操作性,WSL使用DrvFs文件系统。WSL自动使用/ mnt下支持的文件系统安装所有固定驱动器,例如/ mnt / c,/ mnt / d等。目前,仅支持NTFS和ReFS卷。

WSL文件系统支持


进一步阅读


现在有一个解决方案:superuser.com/a/1209701/182880
user643011

0

如果设备不在,/dev则可能是您的设置甚至没有检测到驱动器。

该命令lsblk应列出所有连接的块设备(驱动器)。如果它没有出现在此列表中,最好的办法是在开始bash之前尝试插入设备。

我没有从你的问题中看到任何关于在你发现的Windows上使用bash的方法的提及,但对于大多数人来说,重启bash应该不会太难。

如果lsblk确实显示了您的驱动器,则找到它列出的路径并键入 mount <path shown by lsblk> <path you want the drive to be mounted to>


mount尚不支持可移动驱动器。“WSL自动将所有固定驱动器安装在/ mnt下支持的文件系统,例如/ mnt / c,/ mnt / d等。目前,只支持NTFS和ReFS卷。” 请参阅blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-support
DavidPostill

大声笑。我已经做了一段时间了:)在这里看到我的答案在Windows 10中使用linux bash shell操作windows文件
DavidPostill
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.