飞牛OS 远程挂载 Unraid 共享文件夹到存储空间1(/vol1/1000)

作为相册文件夹。

在 Linux 主机上通过命令行挂载 Unraid 共享文件,主要可以通过 SMB/CIFSNFS 两种协议实现。

特性 SMB/CIFS 挂载 NFS 挂载
适用场景 通常用于挂载 Windows 系统(包括 Unraid)创建的共享,兼容性好 常见于 Linux/Unix 系统间的文件共享,性能可能更优
所需软件包 cifs-utils nfs-common(Ubuntu/Debian) 或 nfs-utils(RHEL/CentOS)
基本挂载命令 sudo mount -t cifs //<Unraid_IP>/<共享名> /mnt/mountpoint -o username=<用户名>,password=<密码> sudo mount -t nfs <Unraid_IP>:/<共享路径> /mnt/mountpoint
自动挂载 (/etc/fstab) //<Unraid_IP>/<共享名> /mnt/mountpoint cifs credentials=/etc/credentials.txt,file_mode=0777,dir_mode=0777 0 0 <Unraid_IP>:/<共享路径> /mnt/mountpoint nfs defaults 0 0

安装必要工具:根据你选择的协议,在 Linux 主机上安装对应的客户端软件包。

  • SMB/CIFS:安装 cifs-utils包 。

  • NFS:安装 nfs-common(Ubuntu/Debian) 或 nfs-utils(RHEL/CentOS) 包 。

一、使用 SMB/CIFS 协议挂载

创建本地挂载点:在 fnOS 上创建一个目录,作为远程共享的访问入口。

sudo mkdir /mnt/unraid_share

执行挂载命令:使用 mount命令进行挂载。下面提供两种方式,推荐使用更安全的凭证文件方式。

  • 方式一:命令行直接指定参数(简单,但密码明文显示)

    sudo mount -t cifs //你的Unraid_IP/共享名称 /mnt/unraid_share -o username=你的Unraid用户名,password=你的Unraid密码
    
  • 方式二:使用凭证文件(推荐,更安全)

    首先,创建一个存储凭据的文件,例如 /etc/unraid.cred

    username=你的Unraid用户名
    password=你的Unraid密码
    # 如果Unraid设置了工作组(Domain),可以添加下一行
    # domain=WORKGROUP
    

    然后,设置该文件权限,只允许 root 用户读写:

    sudo chown root: /etc/unraid.cred
    sudo chmod 600 /etc/unraid.cred
    

    最后,使用凭证文件挂载:

    sudo mount -t cifs //你的Unraid_IP/共享名称 /mnt/unraid_share -o credentials=/etc/unraid.cred,file_mode=0777,dir_mode=0777
    

    参数 file_modedir_mode可以设置挂载后文件和目录的权限 。

二、使用 NFS 协议挂载

如果你的 Unraid 共享已启用 NFS ,可以使用此方法。

  1. 创建本地挂载点(同上):

    sudo mkdir /mnt/unraid_nfs
    
  2. 执行挂载命令:

    sudo mount -t nfs 你的Unraid_IP:/共享路径 /mnt/unraid_nfs
    

    例如,如果共享名称为 media,命令通常是 sudo mount -t nfs 192.168.1.100:/mnt/user/media /mnt/unraid_nfs。你可以在 Unraid 的共享设置中查看准确的 NFS 路径。

三、设置开机自动挂载

手动挂载的共享在重启后会失效,需要将其添加到 /etc/fstab文件以实现开机自动挂载。

  1. 使用 sudo nano /etc/fstab命令编辑该文件。

  2. 在文件末尾根据你的协议添加一行配置:

    • SMB/CIFS 示例

      //你的Unraid_IP/共享名称 /mnt/unraid_share cifs credentials=/etc/unraid.cred,file_mode=0777,dir_mode=0777 0 0
      
    • NFS 示例

      你的Unraid_IP:/共享路径 /mnt/unraid_nfs nfs defaults 0 0
      
  3. 保存并退出编辑器。

  4. 使用以下命令测试配置是否正确,如果没有报错则表示正常:

    sudo mount -a
    

AI 提示(自行验证):

  1. 验证与管理挂载

    • 验证挂载:挂载成功后,可以使用 df -h命令查看所有已挂载的文件系统,确认你的 Unraid 共享是否在列表中 。**

    • 卸载共享:当需要移除挂载时,使用 umount命令:

      sudo umount /mnt/unraid_share
      

      如果提示“设备正忙”,可以尝试使用 lazy卸载(sudo umount -l /mnt/unraid_share)或找出占用进程并结束 。

  2. 常见问题与安全提示

    • 密码安全:强烈建议使用凭证文件而非在命令或 fstab中直接写入密码,以避免密码泄露 。
    • 权限问题:如果挂载后无法读写,请检查 Unraid 共享本身的用户权限设置,以及挂载命令中使用的用户名和密码是否正确。SMB/CIFS 挂载时可通过 uidgid参数指定文件所有者,例如 -o uid=1000,gid=1000(1000 通常是第一个创建的普通用户的ID)。
    • 协议版本:如果遇到连接问题,可以尝试在 SMB/CIFS 挂载命令中指定协议版本,例如 -o vers=2.0

四、问题处理

  1. 报错提示:access denied by server

    # 在 /etc/fstab 中添加的命令:
    192.168.1.100:/test /vol1/1000/test nfs defaults 0 0
    
    # 运行 sudo mount -a 报错:
    mount.nfs: access denied by server while mounting 192.168.1.100:/test
    

    但尝试手动挂载正常:

    sudo mount -t nfs 192.168.1.100:/test /vol1/1000/test
    

    原因:手动挂载成功而 /etc/fstab自动挂载失败,核心问题极有可能出在 NFS 的共享路径上:路径不匹配

    在 Unraid 系统中,共享文件夹(例如名为 test 的共享)在 NFS 协议下的实际导出路径通常是 /mnt/user/<共享名>,而不是简单的 /<共享名>。因此,当您在 fstab 中使用 /test 时,Unraid 的 NFS 服务器会认为这个路径没有被导出(not exported),从而拒绝挂载请求。

    所以需要修正 /etc/fstab 中的路径:

    192.168.1.100:/mnt/user/test /vol1/1000/test nfs defaults 0 0
    

    随后取消手动挂载后再试一次:

    sudo umount -f /vol1/1000/_lan/remote_mount/unraid/backup
    
    sudo mount -a
    
  2. 挂载报错提示:mount: (hint) your fstab has been modified

    异常含义:/etc/fstab文件(系统自动挂载配置文件)已经被修改,但 systemd(系统初始化进程)仍然在使用旧的配置版本,导致新的挂载设置无法生效。

    需要重新加载 systemd 配置:

    sudo systemctl daemon-reload
    
posted @ 2025-12-02 17:36  Yogile  阅读(0)  评论(0)    收藏  举报