mount.nfs:指定了不正确的安装选项

mount.nfs:指定了不正确的安装选项

我花了一整天的时间尝试连接我的 pi (乌班图) 到我的 nas。我只想共享一个特定的文件夹。 nas 目录称为 DATA。

然后有一个我要访问的文件夹的路径。无论我做什么,我总是会遇到上述错误。我以各种不同的方式尝试过这一点。

sudo mount -t nfs -O nfsvers=3,rw,credentials=/home/user/nas-credentials
192.168.x.x:/volume1/DATA/path/to/linux-file-host/ /home/username/nas

例如,我改为nfsvers=3nfsvers=4vers=3,到vers=4没有。

我的用户名和密码是credentials=/home/user/nas-credentials这样的:username=myname,password=mypassword

我也有/home/user/nas这样的:~/nas

以上所有内容我都有各种配置。

我想将目录永久挂载到 pi,所以我/etc/fstab像这样编辑:

proc            /proc           proc    defaults          0       0
PARTUUID=ef82352c-01  /boot           vfat    defaults          0       2
PARTUUID=ef82352c-02  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that

# mount nas
192.168.178.55:/volume1/DATA/path/to/linux-file-host/ /home/user/nas nfs rw,nfsvers=3,credentials=/home/user/nas-credentials,noauto 0 0

我这里也有各种各样的变化。

我对linux了解不多(这可能是显而易见的)。

当我在终端中输入mount或时df -h,会显示一堆内容,但没有显示/home/user/nas

sudo mount -a不返回任何内容,也不执行任何操作。

这是我的 Synology nas 配置:

Synology-nas-nfs-配置

Synology-nas-nfs-配置详细信息

我真的很感谢你的每一点帮助,但请注意,我对 Linux 非常陌生,可能不知道你在说什么。

更新!

我已成功使用以下命令挂载共享文件夹:

sudo mount -t nfs -O rw,username=username,password=password 192.168.x.x:/volume1/DATA/path/to/linux-file-host /nas

Nas 给我一个访问被拒绝的错误。事实证明,在上面的 nfs 规则中包含客户端主机名并不是一个好主意。将其更改为其 IP 地址并正确安装。

永久安装/etc/fstab仍然无法正常工作,并且返回与往常相同的错误:

mount.nfs: an incorrect mount option was specified

答案1

好的,既然前面提到的命令

sudo mount -t nfs -O rw,username=username,password=password 192.168.x.x:/volume1/DATA/path/to/linux-file-host /nas

问题还出在工作上/etc/fstab

我将向您展示我的文件的内容并解释我做错了什么。

192.168.x.x:/volume1/DATA/path/to/linux-file-host /home/user/nas nfs rw,user=username 0 0

首先是主机 IP 地址,然后是特定目录的路径。正如我在更新中已经提到的,在 NFS 设置中包含客户端主机名对我来说不起作用。我必须输入正确的 IP 地址。这可能仅适用于 Synology 的软件。

接下来是您要安装共享点的路径。我希望它位于~/nas.出现~/nas/nas导致错误。你必须写下整个路径! -> /home/user/nas

请注意,这仅适用于/etc/fstab配置。要临时安装它,sudo mount -t nfs -O rw, ...您必须使用/nas.这样做/home/user/nas会创建一条名为 的路径/home/user/home/user/nas

真正的问题在于凭证。 username不被nsf认可,它必须是userpassword或者pass两者都不被识别。事后看来,这对于 nfs 来说是有意义的。您可能甚至不需要用户。

再次,不同的是sudo mount -t nfs -O rw, ...。在这里,usernamepassword被识别(或被忽略,不知道)。

我错过的另一个步骤是启用 NFSv4.1 支持在我的 Synology 设置中。这非常重要,因为否则它将无法工作。 启用 NFSv4.1 支持

我错过的另一件事是“将根映射到管理员”在我的 Synology 设置中。也非常重要。这是对我有用的唯一方法。 将根映射到管理员

我希望有人发现这些信息有用,并且不必花费数小时来设置简单的文件共享。

我发现非常有用的东西但不知道直到聊天GPT随机建议这是一个调查/var/log/syslog。有一些非常有用的信息可以帮助您找出某些东西不起作用的原因。

答案2

在您的mount命令中,您正在使用该-O选项。这是不是用于提供安装选项。挂载选项的标志是-o(小写o而不是大写O)。

请参阅手册页对于mount命令:

-o,- 选项 选择
   选项用 a 指定-o标志后跟逗号分隔的字符串
   的选项。例如:

mount LABEL=mydisk -o noatime,nouser

...

-O,--测试选项 选择

    结合使用-A,限制文件系统集-A 
    被申请;被应用。喜欢-t在这方面除了它是无用的之外
    在这样的背景下-A。例如,命令:

挂载-a -O no_netdev

    挂载除具有该选项的文件系统之外的所有文件系统_netdev指定的
    在选项字段中/etc/fstab文件。

重要的部分-O除非在 -a 的上下文中,否则它是无用的。

由于您没有使用该标志,这意味着您在( )-a之后提供的选项实际上并未用于安装选项。实际上,您的命令忽略了这些选项。-Orw,username=username,password=passwordmount

此外,如果您使用-o而不是-O,您的mount命令将会失败,因为它无法识别usernamepassword选项:

$ sudo mount -t nfs -o rw,username=username,password=password 192.168.x.x:/volume1/DATA/path/to/linux-file-host /nas
mount.nfs: an incorrect mount option was specified

(参见手册页nfs(5)了解nfs安装的有效选项是什么。你不会在那里usernamepassword或者credentials- 这意味着这些都不是有效的安装选项nfs

结论

从您的命令成功挂载该区域的事实来看,sudo mount ...即使它忽略了您的选项,您也可以推断出您实际上并不需要usernamepassword选项来挂载文件系统。而且由于您不需要它们来执行mount命令,因此您也不需要它们在/etc/fstab.

所以你需要的行fstab只是:

192.168.x.x:/volume1/DATA/path/to/linux-file-host /home/user/nas nfs defaults 0 0

您的mount命令应该如下所示:

sudo mount -t nfs 192.168.x.x:/volume1/DATA/path/to/linux-file-host /nas

相关内容