最近遇到程序代码在windows, 用到的数据在linux的问题,想着让linux把数据传到windows上,使用了Linux使用mount挂载Windows共享文件夹。

1.在windows主机上添加共享文件夹

,右键选择属性
![在这里插入图片描述](https://img-blog.csdnimg.cn/6d546713ecc74c2199c215f8bcfc52f2.png)
在共享页面选择高级共享
![在这里插入图片描述](https://img-blog.csdnimg.cn/839ca62dfc764647830d1f125169fa08.png)
勾选共享此文件夹,并设置权限
![在这里插入图片描述](https://img-blog.csdnimg.cn/ea703c0b4a1f4d36985de4ffc5adc07c.png)


共享设定完成后,客户端访问共享文件夹

Windows系统直接使用

\IP的方式访问即可

linux复制IOS文件到电脑 linux数据复制到windows_linux复制IOS文件到电脑


或者用net share,在windows上打开命令面板,查看共享

linux复制IOS文件到电脑 linux数据复制到windows_windows_02

2.linux主机上利用 mount 命令进行挂载

例如,我想将windows的192.168.5.59的datasets目录挂载到linux的192.168.5.74的 /opt/xxx/data/adc_datasets 目录:

mkdir adc_datasets
sudo mount -t cifs -o username=xxx,password=xxxxxx,gid=1000,uid=1000,dir_mode=0777,file_mode=0777 //192.168.5.79/datasets /opt/xxx/data/adc_datasets

属性中的

  • username、password是windows主机的登录账号和密码
  • gid、uid 是你想要让挂载属于哪个用户的gid和uid。至于这个gid和uid,你可以使用id username 来获得,其中 username是linux上的用户名。比如说我的xxx,用户获得的gid和uid就是1000;
  • ** dir_mode、file_mode用于设定挂载目录的读写权限。** 如果不添加这两个参数,会在挂载成功之后在Linux中发现可以访问挂载目录,但不能修改。同时使用ls -l adc_datasets 会发现adc_datasets目录所有者和用户组均是root,即使使用sudo chmodsudo chown修改权限也提示权限不够。这样修改挂载以后,该gid用户可以正常读写目录adc_datasets了;
3.查看挂载在状态

使用

df -h
#或
mount

查看挂载是否成功

4. 卸载mount文件

如果想取消挂载,可以

# umount /xjl/share/data
5.可能遇到的错误

问题: umount 时提示错误 target is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))
解决办法: 你可以先切换到别的目录再试一次 , 原因也可能是其他进程可能在使用目录 , 可以先关闭使用该目录的进程 , 然后再 umount
命令如下:
(使用 fuser 需安装 psmisc # yum install psmisc)

# fuser -m /usr/local/bin/code
/usr/local/bin/code:  2806c
# ps aux | grep 2806
root      2806  0.0  0.5 116040  2836 pts/0    Ss   11:31   0:00 -bash
root      2925  0.0  0.1 112648   960 pts/0    S+   14:36   0:00 grep --color=auto 2806
# kill -9 2806
# umount /usr/local/bin/code