有没有办法从 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
有没有办法挂载可移动驱动器?有没有办法访问底层块设备?
答案1
好消息,现在可以在 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/
答案2
有没有办法从 Windows 上的 Bash 中访问可移动媒体?
更新:
显然,从 Windows 10 Build 16176 开始就可以实现。
看https://superuser.com/a/1209701/337631。
不。
目前,安装的驱动器存在限制:
为了使驱动器显示在 /mnt/ 下,它必须满足以下条件:
- 驱动器必须是固定驱动器
- 该驱动器必须格式化为 NTFS。
这已被提出作为一个问题:除 C: 之外的驱动器未安装在 /mnt #1079。它仍被标记为“打开”。
为了便于与 Windows 互操作,WSL 使用 DrvFs 文件系统。WSL 会自动挂载 /mnt 下所有具有受支持文件系统的固定驱动器,例如 /mnt/c、/mnt/d 等。目前仅支持 NTFS 和 ReFS 卷。
进一步阅读
答案3
补充现有答案:如果您为 Windows 安装 ext 驱动程序(例如 Ext2Fsd),则可以像 NTFS 文件系统一样挂载和扩展文件系统。如果您想挂载 Raspberry Pi SDCards,这将很有用。
答案4
如果没有该设备,/dev
很可能您的设置甚至没有检测到驱动器。
该命令lsblk
应列出所有已连接的块设备(驱动器)。如果它未出现在此列表中,则最好的办法是在启动 bash 之前尝试插入该设备。
我没有从您的问题中看到任何关于您找到的在 Windows 上使用 bash 的方法,但对于大多数人来说,重新启动 bash 应该不会太难。
如果lsblk
确实显示了您的驱动器,则找到它列出的路径并输入
mount <path shown by lsblk> <path you want the drive to be mounted to>