常用系统smb挂载
systemd挂载smb
适用于系统 Ubuntu, Debian,PVE
- 新建systemd挂载文件
# 文件命名影响挂载目录,如下则是挂载到 /mnt/nasdisk
vim /etc/systemd/system/mnt-nasdisk.mount
- 编辑内容如下
[Unit]
Description=SMB share nasdisk for DSM NAS
After=network-online.target
Wants=network-online.target
[Mount]
What=//192.168.99.3/nasdisk
Where=/mnt/nasdisk
Type=cifs
Options=username=<username>,password=<password>@,uid=1000,gid=1000,dir_mode=0775,file_mode=0664,_netdev
[Install]
WantedBy=multi-user.target
如果要修改挂载后的用户归属,修改上述的uid和gid即可。
如果修改目录,则也要同步修改下文中的Where
- 更新systemd并启动
systemctl daemon-reload
systemctl enable --now mnt-nasdisk.mount
init.d启动方式
tips:info
适用于Openwrt
- 在/etc/init.d下创建nas-mount.sh
- 编辑内容
#!/bin/sh /etc/rc.common
START=99
STOP=15
SERVICE=mnt-nas
############## 只用改这里 ##############
NAS_IP="192.168.99.3" # 服务器地址
NAS_SHARE="nasdisk" # 共享名
NAS_USER="username" # 用户名
NAS_PASS="xxxxx" # 密码
MOUNT_PT="/mnt/nasdisk" # 本地挂载点
SMB_VERS="3.0" # SMB 版本(2.1 / 3.0 / 3.1.1)
UID_GID="0" # 本地 uid/gid(OpenWrt 用 0)
DIR_MODE="0775" # 目录权限
FILE_MODE="0664" # 文件权限
MAX_WAIT="30" # 网络等待秒数
#########################################
start() {
logger -t $SERVICE "Starting NAS mount..."
mkdir -p "$MOUNT_PT"
# 等网络
for i in $(seq 1 $MAX_WAIT); do
ping -c 1 -W 1 $NAS_IP >/dev/null && break
sleep 1
done
# 拼装挂载选项
OPTS="username=$NAS_USER,password=$NAS_PASS,"
OPTS="${OPTS}uid=$UID_GID,gid=$UID_GID,"
OPTS="${OPTS}dir_mode=$DIR_MODE,file_mode=$FILE_MODE,"
OPTS="${OPTS}noserverino,_netdev,rw"
if mount -t cifs -o $OPTS "//$NAS_IP/$NAS_SHARE" "$MOUNT_PT"; then
logger -t $SERVICE "NAS mounted successfully"
else
logger -t $SERVICE "NAS mount failed, retry in 30 s"
sleep 30 && start
fi
}
stop() {
umount "$MOUNT_PT" 2>/dev/null
logger -t $SERVICE "NAS unmounted"
}
- 启动
chmod +x /etc/init.d/mount-nas
/etc/init.d/mount-nas enable
/etc/init.d/mount-nas start