如何在运行于 Rasberry Pi 3b+ 的 Ubuntu 服务器 20.04.1 中使用 etc/fstab 加载带有 cifs 的 NAS 共享

如何在运行于 Rasberry Pi 3b+ 的 Ubuntu 服务器 20.04.1 中使用 etc/fstab 加载带有 cifs 的 NAS 共享

我有一台运行 Ubuntu 服务器 20.04.1 的 Rasberry Pi 3B+。我试图在启动时从我的 NAS 加载共享,以便与 minimserver 音乐服务器库一起使用。在进行了一些网络搜索后,我成功地在 ubuntu@ubuntu 的终端中输入了下面的行。

sudo mount -t cifs //192.168.0.70/Playlists /home/ubuntu/Music/Playlists -o username=admin,password=mypassword,uid=1000,vers=1.0,sec=ntlm

但是,当我尝试通过使用 nano 将其粘贴到 etc/fstab 中以在启动时加载它时,它不会在启动时加载共享,我正在尝试找出如何解决这个问题。

我对此还很陌生,但大致理解了上面的行。是否需要以某种方式修改此行才能在 etc/fstab 中工作?但我并不完全确定该怎么-t-o。我认为首先与所需的 smb 版本有关,其次与安全性有关,所以感谢任何人能给我的帮助。

答案1

输入格式fstab与您在终端中运行的命令略有不同。它应该看起来像这样:

//192.168.0.70/Playlists /home/ubuntu/Music/Playlists username=admin,password=mypassword,_netdev,auto 0 0

但是,您可以并且鼓励保存您的密码用户名在你的系统上的文件中,如下所示:

username=value
password=value

并在选项部分中指定此文件的路径,credentials=而不是username=admin,password=mypassword

阅读此处这里了解其他选项的含义和用法示例。

答案2

我的 Diskstation-1 和 Pi 18.04.5 也遇到了同样的问题:

  1. 我无法使挂载像您从 cli 使用 -o username-admin 等进行的操作那样工作。
  2. 我无法让 fstab 在启动时工作,因此我编写了一个脚本(在帖子末尾)并使用 crontab 条目调用它。
  3. 我可以使用这个使用凭证文件的命令从命令行挂载:sudo mount -t cifs -o credentials=/usr/local/etc/.cifscredentials-backup,vers=2.0 //diskstation-1/backup /backup/
  4. .cifscredentials-backup 文件包含以下条目:
username=backup-admin 
password=backup-admin-password 
domain=diskstation-1

这是我在 Synology NAS 上为备份设置的帐户,该帐户具有对 //diskstation-1/backup 共享的读写权限。

这是脚本:

#!/bin/sh
#
# $Id: mountcifs_backup.sh,v 1.2 2019/06/11 22:25:36 pacal683 Exp $
#
umask=133
PATH=/usr/sbin:/bin:/usr/bin
HOSTNAMESHORT=`hostname -s`
os=`uname`
# The touchfile is created by hand from cli after manually mounting the share
TOUCHFILE=/backup/.$HOSTNAMESHORT
if [ -f $TOUCHFILE ]; then
        echo "CIFS mounted OK"
else
        if [ ! -f $TOUCHFILE ]; then
                cmd=`sudo umount /backup > /dev/null`
                eval $cmd
                cmd=`sudo mount -t cifs -o credentials=/usr/local/etc/.cifscredentials-backup,vers=2.0 //diskstation-1/backup/home.net /backup/`
                eval $cmd
        fi
        if [ -f $TOUCHFILE ]; then
                echo "CIFS mounted OK"
        else
                echo "Mounting CIFS failed: $cmd"
        fi
fi
umask 022
##
# $Log: mountcifs_backup.sh,v $
# Revision 1.2  2019/06/11 22:25:36  pacal683
# redid logic flow for checking if already mounted
# had problem with while event loop previously used
#
# Revision 1.1  2019/06/11 22:16:19  pacal683
# Initial revision
#

相关内容