WSL访问U盘方法

——

当你的 U 盘是 Linux 格式(如 ext4),或你需要在 WSL 内进行底层块设备操作(如烧录镜像、格式化)时,需要使用此方法。它通过 USB/IP 协议将整个 USB 设备从 Windows “直通”给 WSL2,使其在 Linux 中显示为 /dev/sdX 块设备。

前提条件:
确保 WSL2 内核版本足够新(2.5.7 及以上),其已内置 USB 存储驱动模块。可通过 wsl –update 更新。

操作步骤:

在 Windows 端安装 usbipd-win:以管理员身份打开 PowerShell,运行:

powershell
winget install usbipd

在 Windows 端绑定 U 盘:插入 U 盘,在管理员 PowerShell 中列出设备,找到你的 U 盘对应的 BUSID(例如 1-3):

powershell
usbipd list

然后绑定该设备:

powershell
usbipd bind --busid 1-3

注意:绑定后,Windows 将无法再访问该 U 盘,直到你在 WSL 中使用完毕并解绑。

将设备附加到 WSL:保持 WSL 终端处于打开状态,在 PowerShell 中执行:

powershell
usbipd attach --wsl --busid 1-3

在 WSL 中挂载:进入 WSL 终端,你现在应该能看到 U 盘对应的块设备(如 /dev/sdb1):

bash
lsblk
sudo mkdir /mnt/usb
sudo mount /dev/sdb1 /mnt/usb

之后即可通过 /mnt/usb 访问 U 盘内容。

使用完毕后,在 Windows PowerShell 中运行 usbipd detach –busid 1-3 解绑,将 U 盘归还给 Windows。