mount 命令(三) —— Linux 挂载 Windows 共享目录

本文最后更新于:2021年12月11日 上午

在工程中遇到了Linux系统需要挂载Windows目录的需求,本文记录实现方法。

Windows 系统设置

打开SMB服务

打开 控制面板 -> 程序和功能 -> 启动SMB 1.0/CIFS文件共享支持 -> 重启计算机

设置共享文件夹

需要共享的文件夹 -> 右键 属性 -> 共享 -> 共享设置 ->添加Everyone用户 -> 设置需要为该用户开放的权限

配置完共享设置后可以在网络中看到自己共享的目录:

此时在你的windows系统中,该目录网络路径为 \\计算机名\路径名,其他网络中的用户也可以使用该地址访问你共享的内容:

设置共享是否需要密码

打开 控制面板 -> 网络和共享中心 -> 高级共享设置 -> 所有网络 -> 配置密码保护的共享 即可

报错修复

可能会在挂载时出现错误 mount error(13): Permission denied Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

  • 此时可以尝试取消密码需求(改为无密码保护的共享),看看是否可以挂载成功
  • 改变本地策略:
    • cmd输入gpedit.msc 进入本地计算机策略
    • 计算机配置=》Windows设置=》安全设置=》本地策略=》安全选项=》网络访问:本地账户的共享和安全模型
    • 改为经典即可

防火墙设置

在可以为可用性牺牲安全性的场景中可以关闭防火墙

  • 如果防火墙没有关闭可能报错:
1
mount error(115): Operation now in progress

解决方案

  1. 关闭windows防火墙

  2. 不关闭防火墙。设置防火墙入站规则中,关于文件和打印机共享中关于samba的ip允许设置

    控制面板/系统和安全/Windows防火墙/高级设置/入站规则/文件和打印机共享(SMB-In)公用/属性/作用域/远程IP

    从本地子网改为任何IP

Linux 设置

安装相关包

1
2
3
sudo apt-get install nfs-common
sudo apt-get install smbfs
sudo apt-get install cifs-utils

执行 mount 命令

mount 前需要手动建立文件夹,命令不会自动创建

1
$ sudo mount -t cifs -o username=Everyone //10.0.2.19/temp win_disk/

注:在Windows的\\计算机名\路径名地址在Linux挂载中不好用,需要将计算机名换为Windows计算机的IP地址。

参考资料