WSL无法识别RDP虚拟机中重定向的USB驱动器内容
WSL无法识别RDP虚拟机中重定向的USB驱动器内容
我遇到了一个头疼的问题:把Windows 11主机上的USB驱动器通过RDP重定向到Windows 10虚拟机后,驱动器被挂载成了J盘,在Win10的文件资源管理器里能正常看到所有文件,但切换到WSL环境下,执行ls -lah /mnt/j却显示目录为空;用df -h查看挂载列表时,根本找不到/mnt/j的身影,ls -lah /mnt的输出里也没有j这个目录。
我执行的命令及输出
1. df -h输出
df -h Filesystem Size Used Avail Use% Mounted on C:\ 931G 344G 588G 37% /mnt/c D:\ 299G 43G 256G 15% /mnt/d E:\ 17T 13T 3.5T 80% /mnt/e F:\ 233G 475M 233G 1% /mnt/f G:\ 466G 15G 452G 4% /mnt/g
可以看到,这里完全没有/mnt/j的挂载记录
2. ls -lah /mnt输出
ls -lah /mnt total 24K drwxr-xr-x 13 root root 4.0K Dec 5 2022 . drwxr-xr-x 23 root root 4.0K Mar 8 01:52 .. drwxrwxrwx 1 scott scott 4.0K Mar 8 17:08 c drwxrwxrwx 1 scott scott 512 Mar 8 17:08 d drwxrwxrwx 1 scott scott 4.0K Mar 8 17:08 e drwxrwxrwx 1 scott scott 512 Mar 8 17:08 f drwxrwxrwx 1 scott scott 512 Mar 8 17:08 g
问题原因&解决办法
为什么会这样?
这是因为WSL的自动挂载机制默认只识别Windows系统里的本地物理驱动器,而RDP重定向的USB属于远程映射驱动器,不在WSL自动挂载的范围内,所以才会出现Win10能访问但WSL找不到的情况。
手动挂载步骤
咱们可以手动把J盘挂载到WSL里,操作很简单:
- 先在WSL中创建挂载目录:
sudo mkdir /mnt/j
- 执行挂载命令,将Windows的J盘挂载到刚才创建的目录:
sudo mount -t drvfs J: /mnt/j
- 挂载完成后,再执行
ls -lah /mnt/j,就能看到USB驱动器里的所有文件啦!
实现自动挂载(可选)
如果想让WSL每次启动都自动挂载这个驱动器,可以把挂载配置加到fstab里:
- 编辑
/etc/fstab文件:
sudo nano /etc/fstab
- 在文件末尾添加一行内容:
J: /mnt/j drvfs defaults 0 0
- 保存退出(按
Ctrl+O确认保存,回车,再按Ctrl+X退出编辑器),之后每次启动WSL都会自动挂载J盘了。
权限问题处理(如果遇到)
如果挂载后出现权限不足的情况,可以尝试在挂载命令中添加权限参数:
sudo mount -t drvfs J: /mnt/j -o metadata,uid=1000,gid=1000
(其中uid和gid可以通过执行id命令查看自己的用户ID)
备注:内容来源于stack exchange,提问作者J. Scott Elblein




