欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux 挂载 Windows 共享文件夹 cifs

程序员文章站 2022-05-11 21:13:14
...

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