当前位置: 首页 > 电脑网络 > 正文

一、前言

从飞牛刚公测,就在建议区提意见希望相册支持远程挂载,同样是官方应用-影视早早就支持了,相册也有过短暂支持的,后面被官方撤下了。官方理由是相册远程挂载的稳定性受网络环境影响比较大,暂不考虑添加远程挂载。

所有论坛也有很多解决方案,最简单的方案就是将远程挂载目录添加为我的收藏,然后在相册里面就可以通过收藏添加目录,但是显示的时候,不能显示文件夹名,添加多个目录的时候,不方便管理。

找到一个完美方案,是通过mount挂载目录,这样就可以完美解决。

二、临时挂载方法

使用mount挂载远程目录

sudo mount -t cifs //192.168.2.2/相册 /vol1/1000/相册 -o username=用户名,password=密码,uid=1000,gid=1000,nounix

三、持久化挂载方法1-通过shell脚本挂载

1、创建凭据文件

sudo touch /etc/smb-credentials.conf
sudo chmod 600 /etc/smb-credentials.conf
sudo echo "username=your_username" >> /etc/smb-credentials.conf
sudo echo "password=your_password" >> /etc/smb-credentials.conf

2、创建shell脚本

sudo nano /usr/local/bin/mount_smb.sh

文件内容

#!/bin/bash

# 定义多个SMB挂载任务的配置(数组)
declare -a MOUNT_TASKS=(
    # 格式:[服务器IP, 共享路径, 挂载点, 凭据文件, SMB版本]
    "192.168.2.2,/相册,/vol1/1000/挂载/相册,/etc/smb-credentials.conf,3.0",
    "192.168.2.2,/手机,/vol1/1000/挂载/手机,/etc/smb-credentials.conf,3.0",
    "192.168.2.2,/影视,/vol1/1000/挂载/影视,/etc/smb-credentials.conf,3.0"
)

# 遍历数组,逐个挂载
for TASK in "{MOUNT_TASKS[@]}"; do
    # 解析配置参数(按逗号分割)
    IFS=',' read -r SERVER_IP SHARE_NAME MOUNT_POINT CRED_FILE SMB_VERSION <<< "TASK"
    echo "===== 开始挂载:{SERVER_IP}{SHARE_NAME} 到 {MOUNT_POINT} ====="
    # 1. 创建挂载点目录(若不存在)
    sudo mkdir -p "MOUNT_POINT"
    # 2. 执行挂载命令(根据配置参数动态生成)
    mount -t cifs "//{SERVER_IP}{SHARE_NAME}" "MOUNT_POINT" \
        -o credentials="CRED_FILE",vers="SMB_VERSION",uid=1000,gid=1000
    # 3. 检查挂载是否成功
    if mountpoint -q "MOUNT_POINT"; then
        echo "✅ 挂载成功:{MOUNT_POINT}"
    else
        echo "❌ 挂载失败:{MOUNT_POINT}" >&2
    fi
done

设置权限

sudo chmod +x /usr/local/bin/mount_smb.sh

3、设置脚本开机自启动(通过systemd)

sudo nano /etc/systemd/system/smb_mount.service

文件内容

[Unit]
Description=SMB Share Auto Mount
After=network.target
Requires=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStartPre=sleep 10
ExecStart=/usr/local/bin/mount_smb.sh

[Install]
WantedBy=multi-user.target

启用并启动服务

sudo systemctl daemon-reload  # 重新加载服务配置
sudo systemctl start smb_mount.service   # 测试挂载
sudo systemctl status smb_mount.service  #检查状态
sudo systemctl enable smb_mount.service  # 开机自启

四、持久化挂载方法2-通过fstab挂载

1、将配置写入/etc/fstab

sudo nano /etc/fstab
//192.168.2.2/相册 /vol1/1000/相册 cifs username=用户名,password=密码,vers=3.0,uid=1000,gid=1000,file_mode=0664,dir_mode=0775,iocharset=utf8,_netdev,x-systemd.after=network,x-systemd.timeout=60 0 0

按Ctrl+O键保存文件,按Ctrl+X键退出编辑器。

第一次添加的时候,命令添加错误,造成无法开机,最后重刷了两遍飞牛系统。

后面对命令进行了修改,添加了_netdev和nofail参数

添加了_netdev选项 - 声明这是一个网络设备,等网络就绪后再挂载

添加了nofail选项 - 挂载失败时不报错(不阻塞启动)

但是新问题出现了,开机无法自动挂载,但论坛没看到其他人反馈有问题,不晓得是不是个例。

2、重新加载/etc/fstab文件并挂载所有fstab条目

sudo systemctl daemon-reload
sudo mount -a

3、检查挂载是否成功:

df -hT | grep 相册

飞牛相册使用远程挂载目录的解决方案:等您坐沙发呢!

发表评论

gravatar