创建两个 NFS 共享:一个读/写,一个只读

创建两个 NFS 共享:一个读/写,一个只读

希望这是一个简单的问题!

背景:我目前使用 Ubuntu 12.04 作为运行 MythTV 的家庭媒体服务器,并使用 XBMC 作为 Windows 和 Ubuntu 上的前端。我的媒体通过 SMB 和 NFS 共享,但我主要将 NFS 用于 XBMC 前端,因为较低的开销意味着更好的性能。

我想要的:我想要做的是为我的媒体文件创建两个 NFS 共享。一个共享我希望是读/写的,另一个共享我希望是只读的。这样,我就可以为我的室友设置一个前端,例如,他可以访问文件进行查看,但不会搞砸任何事情。

由于我无法创建两个相同的 NFS 共享(一个读/写,一个只读),因此我尝试创建两个挂载来区分它们。

在 /etc/fstab 中,我安装了以下设备:

/dev/stb1 /mnt/Media ext4 defaults 0 0

在 /etc/exports 中,我有以下 NFS 共享:

/mnt/Media *(rw,async,all_squash,insecure,anonuid=1001,anongid=122,no_subtree_check)

上述方法对于读/写访问来说效果很好。我的目的是创建第二个只读挂载,然后通过 NFS 将其导出为 /mnt/Media_ReadOnly。因此,我尝试按如下方式创建第二个挂载:

/dev/stb1 /mnt/Media_ReadOnly ext4 ro,auto,user,noexec 0 0

但我收到一个错误:

mount: according to mtab, /dev/sdb1 is mounted on /mnt/Media

所以我想我不能安装同一个设备两次?

如何以只读格式通过 NFS 导出相同路径?

答案1

一次挂载不能有两个完全相同的目标,句号。无论是在 NFS 中还是在系统中。

但你要做的是创建一个虚拟目录结构,例如/export/rw/export/rw/ro。您的数据在后者中;前者仅包含目录ro。然后您/export/rw通过 NFS 导出为读/写,并/export/rw/ro通过 NFS 导出为只读权限。我没有测试过,但它应该可以工作。然而,我不确定这是否是个好主意。

或者,考虑调整 Samba 性能——实际上,这将是我的首选。它实际上应该比 NFS 更快(或者至少不会慢得多),至少根据文档(以及我的轶事证据;但是,我不可靠,因为在管理基于 NFS 的解决方案多年后,我真的很讨厌这个协议)。阅读更多这里

相关内容