Linux 挂载 Windows 共享文件夹 cifs

一台Windows系统(192.168.1.10),创建一个共享文件夹share。

Windows客户端访问路径就是:

\\192.168.1.10\share

Linux下挂载方法如下(CentOS 7):

1).需要安装cifs-utils软件包

yum install -y cifs-utils

2).不管是开机自动挂载还是手动挂载,我们都首先在/mnt目录下创建一个文件夹,也就是挂载点。

mkdir /mnt/windows

3).手动挂载
手动挂载就是采用Linux的mount命令,终端输入如下命令:

mount.cifs //192.168.1.10/share /mnt/windows/ -o user=administrator,pass=<Windows密码>

说明:

  1. 第一个字段mount.cifs表示采用CIFS(Common Internet File System:通用网络文件系统)挂载将要挂载的目录,linux支持多种文件系统,如ext4, xfs, btrfs, f2fs, vfat, ntfs,CIFS是其中一种,具体可以看man 8 mount手册;
  2. 第二个字段表示将要挂载的文件系统路径或块设备;
  3. 第三个字段表示Linux的挂载点,也就是我们刚才创建的/mnt/windows目录;
  4. 最后一个字段-o 以及后面的所有内容表示挂载选项,各个选项以“,”分隔。比如此挂载需要知道Windows的用户名和密码;
  5. 操作可能需要root权限,可以在命令前面加sudo;

4).自动挂载
编辑fstab,增加一行

vi /etc/fstab
//192.168.1.10/share /mnt/windows/ cifs username=administrator,password=<Windows密码> 0 0

重启测试无效!!!

创建自己的systemd服务

Step1:编写属于自己的unit文件,命令为mount-fs.service,整个文件如下:

echo '
[Unit]
Description=mount-fs Service
#等待网络启动,等待远程文件系统(测试可选)
After=network.target network.service NetworkManager.service remote-fs-pre.target

[Service]
Type=oneshot
ExecStart=/bin/bash /root/mount-fs.sh
StandardOutput=syslog
StandardError=inherit

[Install]
WantedBy=multi-user.target
' > /usr/lib/systemd/system/mount-fs.service

Step2:将上述的文件拷贝到RHEL 7系统中/usr/lib/systemd/system/*目录下

Step3:编写unit文件中ExecStart=/bin/bash /root/mount-fs.sh所定义的mount-fs.sh文件,将其放在定义的目录当中,此文件是服务的执行主体。文件内容如下:

echo '
#!/bin/bash
mount.cifs //192.168.1.10/share /mnt/windows/ -o user=administrator,pass=Passwd123
' > /root/mount-fs.sh

Step4:将mount-fs.service注册到系统当中执行命令:

systemctl enable mount-fs.service

输出:

Created symlink from /etc/systemd/system/multi-user.target.wants/mount-fs.service to /usr/lib/systemd/system/mount-fs.service.

输出表明,注册的过程实际上就是将服务链接到/etc/systemd/system/目录下。

备注:取消

systemctl disable mount-fs.service
rm -f /usr/lib/systemd/system/mount-fs.service
rm -f /root/mount-fs.sh