本文和网上描述不同的一点主要在于,samba服务器搭建在Windows 10系统上,而非Ubuntu中。通过Ubuntu中配置在/etc/fstab中自动挂载命令,将Windows中的共享文件夹开机自动挂载到系统中,从而实现文件共享。

Windows搭建Samba服务

启用Samba功能

win+r中执行命令optionalfeatures,然后做如图选择:

启用自带的SMB功能

重启设备。

创建访问账户

win+r中执行命令compmgmt.msc,添加用户share,如图所示:

增加share账户

启用文件共享

省略

Ubuntu虚拟机挂载

手动挂载

sudo mount -t cifs //192.168.100.1/E ~/windows_share -o username=share,password=18159676,rw,file_mode=0777,dir_mode=0777,uid=1000,gid=1000 

自动挂载

/etc/fstab中自动挂载:

$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda2 during curtin installation
//192.168.100.1/E   /home/blduan/windows_share  cifs    defaults,user=share,password=18159676,rw,file_mode=0777,dir_mode=0777,uid=1000,gid=1000,   0   0

使用systemd脚本自动挂载:

systemdmount脚本可以用来实现挂载,并且可以设置开机启动,比/etc/fstab好的地方在于如果出现错误,不会导致无法开机。

文件名要以.mount结尾,mount单元的名称必须根据其封装的文件系统挂载点路径命名。比如挂载/home/xxx/windows_share目录下,则文件名需要为/home-xxx-windows_share.mount

[Unit]
Description=mount samba
After=network-online.target systemd-networkd-wait-online.service
Requires=network-online.target systemd-networkd-wait-online.service
Before=remote-fs.target
# 增加启动失败自动重试                                                                                                                              StartLimitIntervalSec=60
StartLimitBurst=5
[Mount]
What=//192.168.100.1/d
Where=/home/blduan/windows_share
Type=cifs
Options=username=samba,password=samba,uid=1000,gid=1000,_netdev
TimeoutSec=15
[Install]
WantedBy=multi-user.target