我花了一整天的时间尝试连接我的 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=3
,nfsvers=4
到vers=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 配置:
我真的很感谢你的每一点帮助,但请注意,我对 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认可,它必须是user
!password
或者pass
两者都不被识别。事后看来,这对于 nfs 来说是有意义的。您可能甚至不需要用户。
再次,不同的是sudo mount -t nfs -O rw, ...
。在这里,username
和password
被识别(或被忽略,不知道)。
我错过的另一个步骤是启用 NFSv4.1 支持在我的 Synology 设置中。这非常重要,因为否则它将无法工作。
我错过的另一件事是“将根映射到管理员”在我的 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
之后提供的选项实际上并未用于安装选项。实际上,您的命令忽略了这些选项。-O
rw,username=username,password=password
mount
此外,如果您使用-o
而不是-O
,您的mount
命令将会失败,因为它无法识别username
和password
选项:
$ 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
安装的有效选项是什么。你不会在那里username
,password
或者credentials
- 这意味着这些都不是有效的安装选项nfs
)
结论
从您的命令成功挂载该区域的事实来看,sudo mount ...
即使它忽略了您的选项,您也可以推断出您实际上并不需要username
和password
选项来挂载文件系统。而且由于您不需要它们来执行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