admin管理员组

文章数量:1530842

起因

实验室的许多文件都是通过NAS或者其他人电脑的共享文件夹共享的,在Windows下可以很方便地根据路径访问文件,但是WSL并不会帮你做这一点,WSL默认只会挂载Windows默认盘符的盘,即便对共享文件夹做映射也是这样的,因此需要自己想办法挂载

手动方法

网上大部分的方法都是手动方法,也就是直接通过命令进行挂载,命令如下:

# 假设\\192.168.1.139\docker是Windows下访问的路径,想要把它挂载为WSL下的z盘

# 首先需要在/mnt下创建这个文件夹,记得改一下文件夹权限
sudo mkdir /mnt/z
sudo chmod 777 /mnt/z

# 挂载
sudo -S mount -t drvfs '\\192.168.1.139\docker\' /mnt/z

通过上述方法可以把\\192.168.1.139\docker\ 挂载到WSL下的/mnt/z 下,但是这种方法不持续,下次重启就没了,之前想了一个很蠢的方法,就是把挂载脚本写在~/.zshrc 之类的启动文件里,让shell自动做这件事,这里还要把明文密码写进去(好不安全…)

# 写到shell里的文件,还是在这里记录一下just in case
# XXXXXX是你的sudo明文密码
sudo echo -e "XXXXXX\n" | sudo -S mount -t drvfs '\\192.168.1.139\docker\' /mnt/z

自动方法

今天刚发现,WSL下(或者是Linux下)有一个文件叫/etc/fstab ,本来就是写了文件挂载点,感觉自己好蠢…最原始的文件如下:

LABEL=cloudimg-rootfs   /    ext4   discard,errors=remount-ro   0 1

把自己想挂载的文件夹按上述格式写进去就好了,注意这里把最后的0 1 改成了0 0 ,是因为不想让每次挂载的时候扫描检查整个盘,具体这两个数字是干什么的参见/etc/fstab文件的详解

改过后的/etc/fstab

LABEL=cloudimg-rootfs   /    ext4   discard,errors=remount-ro   0 1
\\192.168.1.139\docker\     /mnt/z  drvfs   defaults        0 0

注意这里还是要先创建/mnt/z 并且sudo chmod 777 /mnt/z 的,里面的drvfs 是文件系统,可能是wsl自己的一种文件系统吧,反正其他地方没见过

update:今天还发现
WSL自己有一个启动时配置文件/etc/wsl.conf ,改这个也可以,参见Automatically Configuring WSL

参考

credit: https://www.public-health.uiowa.edu/it/support/kb48568/

本文标签: 文件系统正确方法下挂载Windows