28
  • 我在 dev/ 上没有关于 USB 的文件或路径
  • 当我插入闪存盘时,dev/ 或 mnt/ 或 media/ 上没有显示任何关于它的内容。
  • sudo lsusb返回:

    unable to initialize libusb: -99
    

我应该怎么做才能在 bash 上启用 USB 访问?

4

3 回答 3

44

好消息,现在可以在 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/

于 2017-05-16T12:41:57.113 回答
13

编辑:
根据 Microsoft 的博客文章,此功能现在已从 build 16176 及更高版本中修复。

https://blogs.msdn.microsoft.com/wsl/2017/04/18/file-system-improvements-to-the-windows-subsystem-for-linux/

目前没有 USB 支持。只有固定磁盘会(自动)安装在 /mnt 中。

也不支持其他存储(除了自动安装的固定磁盘),这包括 CD-ROM 驱动器、环回设备和网络共享。

这是开发人员反馈页面的链接: 无法从 bash 访问 USB 设备

于 2016-08-16T10:57:23.353 回答
0

虽然可以使用 WSL 2 安装驱动器,但 WSL 本身并不支持将 USB 设备连接到 WSL,例如闪存驱动器或 SD 卡读卡器。

但是,现在支持使用USBIPD-WIN 开源项目将 USB 设备连接到 WSL。要将 USB 设备连接到通过 WSL 2 运行的 Linux 发行版:

  1. 安装USBIPD-WIN 项目(下载并运行 usbipd-win_x.msi 安装程序文件)。
  2. 通过打开您的发行版(即 Ubuntu)并运行sudo apt install linux-tools-5.4.0-77-generic hwdata.
  3. 编辑与您的 Linux 发行版关联的 /etc/sudoers 文件以允许权限:sudo visudo然后找到该secure_path部分,在路径部分的开头,添加工具位置:/usr/lib/linux-tools/5.4.0-77-generic
  4. 确保打开 WSL 命令行(因此 VM 处于活动状态)并连接您的 USB 设备。
  5. 打开 PowerShell 并使用以下命令列出连接到 Windows 计算机的 USB 设备:usbipd wsl list.
  6. 选择要附加到 WSL 的设备的总线 ID 并运行以下命令:usbipd wsl attach --busid <busid>
  7. 打开 Ubuntu(或您首选的 WSL 命令行)并列出连接的 USB 设备:lsusb.

您应该会看到刚刚连接的设备,并且能够使用普通的 Linux 工具与之交互。根据您的应用程序,您可能需要配置 udev 规则以允许非 root 用户访问设备。

于 2021-11-15T22:13:18.770 回答