在 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 在文件权限/属性之类差异导致的。
参考: