摘要
在新的WSL中,现在允许您使用DrvFs文件系统手动安装Windows驱动器。之前,当您启动bash时,WSL会自动安装所有固定的NTFS驱动器,但是不支持安装其他存储,例如可移动驱动器或网络位置。
现在,您不仅可以手动在系统上挂载任何驱动器,而且还增加了对其他文件系统(如FAT)的支持,以及对网络位置的支持。这使您能够从WSL内访问Windows中所有驱动器,包括可移动USB记忆棒或CD,以及在Windows中可以访问的任何网络位置。
挂载DrvFs
为了使用DrvFs挂载Windows驱动器,可以使用常规的Linux挂载命令。例如,要安装可移动驱动器D:作为/mnt/d目录,请运行以下命令:
$ sudo mkdir /mnt/d
$ sudo mount -t drvfs D: /mnt/d
现在,您将可以在下访问D:驱动器的文件/mnt/d。例如,当您希望卸载驱动器以便可以安全地将其卸下时,请运行以下命令:
$ sudo umount /mnt/d
挂载网络路径
当您希望挂载网络路径时,可以在Windows中创建一个映射的网络驱动器,然后如上所述进行挂载。但是,也可以使用UNC路径直接挂载它们:
$ sudo mount -t drvfs '\\server\share' /mnt/share
注意:这里UNC路径用’’(单引号)括起来,目的是避免了字符的转义。如果您未在UNC路径中用单引号引起来,则需要通过将它们加倍来避开反斜杠(例如\\\\server\\share
)。
WSL没有提供任何方法去使用网络共享,如果您要是用共享网络,需要通过Windows共享网络或net use
命令,列出资源管理器中的共享路径并使用它们。net use
或通过interop
从WSL内部调用net.exe use
。输入net.ext help use
可以获得帮助信息。
挂载空的NTFS文件夹
之前WSL仅自动安装带有驱动器号的卷如(c:,d:
),现在WSL可以指定挂在某驱动器下的路径,只需要指定挂载点路径即可:
$ sudo mount -t drvfs 'C:\mountpoint' /mnt/myvolume
不同文件系统的DrvFs行为
drvfs的行为方式可能会有所不同,具体取决于基础文件系统。某些功能可能不适用于所有文件系统。例如,FAT文件系统不区分大小写,并且不支持硬链接或符号链接。
对于网络文件系统,DrvF不会在文件上设置正确的Linux许可权位;而是报告所有文件都具有完全访问权限(0777),并且确定您是否可以实际访问该文件的唯一方法是尝试打开它。网络文件系统也不区分大小写,并且不支持符号链接。