在 Linux 处理组学数据,硬盘真是经不起消耗的东西。而本地办公的电脑主要以开浏览器、看文献、交流、做PPT等为主,除了C盘小的时候容易炸,其他磁盘使用量很少。所以我最近遇到了工作站没法装大点的测序数据,但 PC 却有好几个盘上 T 的空闲。这篇文章就简单做个笔记,记录下如何将 Windows 的磁盘共享给 Linux 存数据使用。

首先要获取 PC 的 IP 地址,这个应该很简单,百度一下就知道怎么搞了。我的是:

本地ip 192.168.120.96

然后在你要共享的磁盘下面新建一个文件夹,假设是 F 盘,像下面拷贝的截图。然后右键点击新建文件夹,查看属性,查看共享一栏,点击共享。

image-1676448919527❝

这里主要可能要设置共享的账号和权限,如果是新建用户,那要添加读写权限;一般电脑默认是 Administrator 用户,这个默认就有读写权限,我就直接选这个了。

如果共享成功的话,你就可以在文件资源管理器中输入 \192.168.120.96,看到共享的文件夹。

image-1676449049483

如果上述 Okay 的话就可以登陆服务器进行挂载了,挂载命令如下:

sudo mount //192.168.120.96/share /home/wangsx/share -o username=Administrator,iocharset=utf8,dir_mode=0777,file_mode=0777

上面首先需要你自己 mkdir 创建一下 /home/wangsx/share 这个目录,另外注意上面操作需要 sudo 权限,而且我们设置了 777 权限模式,不让如果你自己的用户账号是没法读写这个文件夹的。

搞定了可以查看下:

$ df -h
Filesystem              Size  Used Avail Use% Mounted on
devtmpfs                 63G     0   63G   0% /dev
tmpfs                    63G     0   63G   0% /dev/shm
tmpfs                    63G  725M   62G   2% /run
tmpfs                    63G     0   63G   0% /sys/fs/cgroup
/dev/sda2                99G   74G   20G  80% /
/dev/sda1               976M  239M  671M  27% /boot
/dev/sdc1               9.1T  8.1T  580G  94% /data2
/dev/sdb1               9.1T  8.2T  381G  96% /data1
/dev/sdd1               9.1T  8.4T  236G  98% /data3
tmpfs                    13G   20K   13G   1% /run/user/42
tmpfs                    13G     0   13G   0% /run/user/0
tmpfs                    60M     0   60M   0% /var/log/rtlog
tmpfs                    13G     0   13G   0% /run/user/1002
tmpfs                    13G     0   13G   0% /run/user/1004
tmpfs                    13G     0   13G   0% /run/user/1012
tmpfs                    13G     0   13G   0% /run/user/1001
//192.168.120.96/share  3.7T  829G  2.9T  23% /home/wangsx/share

如果要取消挂载的话使用 umount 命令,注意不要在挂载的目录内使用,这样无法成功。

这样在终端进行读写就完全没有问题了,写程序去读取文件也没有问题,但需要注意不要在程序中添加写入共享文件夹的操作,这样基本是失败的(我尝试过,会看到一些无法设置文件读写权限之类的失败提示)。具体原因我也不清楚,可能是 win 和 linux 在文件权限/属性之类差异导致的。

参考:

首先要获取 PC 的 IP 地址,这个应该很简单,百度一下就知道怎么搞了。我的是:

本地ip 192.168.120.96

然后在你要共享的磁盘下面新建一个文件夹,假设是 F 盘linux挂载,像下面拷贝的截图。然后右键点击新建文件夹,查看属性,查看共享一栏,点击共享。

image-1676448919527❝

这里主要可能要设置共享的账号和权限,如果是新建用户,那要添加读写权限;一般电脑默认是 Administrator 用户,这个默认就有读写权限,我就直接选这个了。

如果共享成功的话linux挂载,你就可以在文件资源管理器中输入 \192.168.120.96,看到共享的文件夹。

image-1676449049483

如果上述 Okay 的话就可以登陆服务器进行挂载了,挂载命令如下:

sudo mount //192.168.120.96/share /home/wangsx/share -o username=Administrator,iocharset=utf8,dir_mode=0777,file_mode=0777

上面首先需要你自己 mkdir 创建一下 /home/wangsx/share 这个目录,另外注意上面操作需要 sudo 权限,而且我们设置了 777 权限模式,不让如果你自己的用户账号是没法读写这个文件夹的。

搞定了可以查看下:

$ df -h
Filesystem              Size  Used Avail Use% Mounted on
devtmpfs                 63G     0   63G   0% /dev
tmpfs                    63G     0   63G   0% /dev/shm
tmpfs                    63G  725M   62G   2% /run
tmpfs                    63G     0   63G   0% /sys/fs/cgroup
/dev/sda2                99G   74G   20G  80% /
/dev/sda1               976M  239M  671M  27% /boot
/dev/sdc1               9.1T  8.1T  580G  94% /data2
/dev/sdb1               9.1T  8.2T  381G  96% /data1
/dev/sdd1               9.1T  8.4T  236G  98% /data3
tmpfs                    13G   20K   13G   1% /run/user/42
tmpfs                    13G     0   13G   0% /run/user/0
tmpfs                    60M     0   60M   0% /var/log/rtlog
tmpfs                    13G     0   13G   0% /run/user/1002
tmpfs                    13G     0   13G   0% /run/user/1004
tmpfs                    13G     0   13G   0% /run/user/1012
tmpfs                    13G     0   13G   0% /run/user/1001
//192.168.120.96/share  3.7T  829G  2.9T  23% /home/wangsx/share

如果要取消挂载的话使用 umount 命令,注意不要在挂载的目录内使用,这样无法成功。

这样在终端进行读写就完全没有问题了,写程序去读取文件也没有问题,但需要注意不要在程序中添加写入共享文件夹的操作,这样基本是失败的(我尝试过,会看到一些无法设置文件读写权限之类的失败提示)。具体原因我也不清楚,可能是 win 和 linux 在文件权限/属性之类差异导致的。

参考: