You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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里,操作很简单:

  1. 先在WSL中创建挂载目录:
sudo mkdir /mnt/j
  1. 执行挂载命令,将Windows的J盘挂载到刚才创建的目录:
sudo mount -t drvfs J: /mnt/j
  1. 挂载完成后,再执行ls -lah /mnt/j,就能看到USB驱动器里的所有文件啦!

实现自动挂载(可选)

如果想让WSL每次启动都自动挂载这个驱动器,可以把挂载配置加到fstab里:

  1. 编辑/etc/fstab文件:
sudo nano /etc/fstab
  1. 在文件末尾添加一行内容:
J: /mnt/j drvfs defaults 0 0
  1. 保存退出(按Ctrl+O确认保存,回车,再按Ctrl+X退出编辑器),之后每次启动WSL都会自动挂载J盘了。

权限问题处理(如果遇到)

如果挂载后出现权限不足的情况,可以尝试在挂载命令中添加权限参数:

sudo mount -t drvfs J: /mnt/j -o metadata,uid=1000,gid=1000

(其中uidgid可以通过执行id命令查看自己的用户ID)

备注:内容来源于stack exchange,提问作者J. Scott Elblein

火山引擎 最新活动