windows11的ubuntu子系统如何识别到U盘

这是 WSL 的设计限制 + Windows 对 USB 的管理方式 导致的,不是你系统坏了。

WSL(包括 Windows 11 的 Ubuntu 子系统)默认是"看不到"U 盘的块设备的。

  • ❌ 看不到 /dev/sdX

  • ❌ 不能直接 mount /dev/sdb1

  • ✅ 只能通过 Windows 挂载 → WSL 访问 Windows 文件系统

  • 或使用 usbipd 把 USB 设备"直通"给 WSL2

一、为什么 WSL 识别不到 U 盘?

1️⃣ WSL2 不是完整物理 Linux

WSL2 架构是:Windows └─ Hyper-V 虚拟机(WSL2 Linux Kernel)

  • USB 控制器在 Windows

  • Linux 内核 不直接接管 USB

  • 所以:

    • /dev/sdb

    • /dev/sdc

    • /sys/block

👉 默认不存在


2️⃣ Windows 已经"占用"了 U 盘

插 U 盘后:

  • Windows 会:

    • 识别分区

    • 自动挂载

    • 分配盘符(如 E:)

👉 这个设备已经被 Windows 独占

👉 WSL 不能再直接访问

二、正确访问 U 盘的 3 种方式(推荐顺序)


✅ 方式 1(最推荐):通过 /mnt 访问 Windows 挂载的 U 盘

操作步骤

1️⃣ 先在 Windows 里插 U 盘

  • 比如分配为 E:

2️⃣ 在 WSL 里访问

ls /mnt/e

优点

  • 最稳定

  • 不折腾权限

  • 不破坏 Windows

缺点

  • ❌ 不能做:

    • mkfs

    • dd

    • smartctl

    • 底层块设备操作

👉 只适合文件读写


⚠️ 方式 2:usbipd 直通 U 盘到 WSL2(高级)

这是唯一能在 WSL 里看到 /dev/sdX 的方式

适用场景

  • 需要:

    • dd

    • mkfs

    • 测试 U 盘

    • 固件工具

    • 烧录镜像


步骤(Windows 11)

1️⃣ 安装 usbipd

winget install usbipd

2️⃣ 插入 U 盘,查看设备

usbipd list

会看到类似:

BUSID VID:PID DEVICE 1-3 0781:558a SanDisk Ultra

3️⃣ 绑定到 WSL

usbipd bind --busid 1-3

usbipd attach --wsl --busid 1-3

4️⃣ 进入 WSL

lsblk

你现在就能看到:

sdb └─sdb1

⚠️ 注意(非常重要)

  • 绑定后:

    • Windows 无法再访问该 U 盘
  • 用完要解绑:

usbipd detach --busid 1-3


相关推荐
qq_455760857 小时前
docker - 虚拟化和容器化
linux·运维·服务器
小年糕是糕手7 小时前
【C++】string类(一)
linux·开发语言·数据结构·c++·算法·leetcode·改行学it
大聪明-PLUS8 小时前
常见的 Docker 问题及解决方法
linux·嵌入式·arm·smarc
Howie Zphile8 小时前
在 WSL Ubuntu 上从零到数据迁移:通过 pgloader 将 SQL Server 转 PostgreSQL 实战笔记
笔记·ubuntu·postgresql
fendouweiqian8 小时前
warm-flow 生产环境静态资源 404,本地正常的原因与 Nginx 配置解决方案
运维·nginx
顾安r8 小时前
12.17 脚本网页 创意导航
java·linux·前端·游戏·html
艾莉丝努力练剑8 小时前
【Linux进程(二)】Linux进程的诞生、管理与消亡:一份基于内核视角的完整分析
大数据·linux·运维·服务器·c++·安全·centos
原神启动18 小时前
Ansible(一)—— 自动化运维工具 Ansible:集中化管理服务器
运维·自动化·ansible
取加若则_8 小时前
Linux权限
linux·c++