如何在 Ubuntu Core 中挂载 NFS 共享?

如何在 Ubuntu Core 中挂载 NFS 共享?

我正在 Raspberry Pi 3 中测试 Ubuntu Core,我想使用 NFS 连接到我的 NAS 上的导出。

在我拥有的“普通”服务器中,我只需在 /etc/fstab 中为每个挂载添加一行,但在 Ubuntu Core 中,我看到 /etc/fstab 是自动生成的,我不应该修改它:

# Auto-generated by /init
# DO NOT EDIT THIS FILE BY HAND - YOUR CHANGES WILL BE OVERWRITTEN
# (See writable-paths(5) for details)
/dev/root / rootfs defaults,ro 0 0
LABEL=writable /writable auto defaults 0 0

...

我的问题是:

  1. 那我该怎么办呢?
  2. 我是否正在尝试做一些不推荐的事情?

谢谢!

答案1

好吧,在快捷频道Ubuntu Rocket 服务器齐加回答了我的问题:

我认为 NFS 目前不受支持

从技术上讲,你必须将 NFS 目录挂载到某处,然后将其绑定到 /var/snap/,但我不知道你会遇到什么样的问题

他还谈到了一个更本土化/更简单的选择:

你可以创建一个 snap 来将内容挂载到 /media 上,但这并不会让你轻松地运行 NFS 中的数据

您可以设计一个 snap,专门将数据加载到 NFS 共享中,同时将常规数据照常保存在 /var/snap 中

无论如何,他警告我:

我认为,考虑到 NFS 的行为方式,这将非常脆弱

总结一下,我认为我的观点的答案是:

  1. 实现特殊的快照。
  2. 我们不建议这么做。

答案2

我发现使用 snap 会使事情变得复杂,所以我会从以下位置下载适合你的架构的 busybox 静态版本:这里

这样做的原因是它是 mount 的简单替代方案,支持 nfs,ubuntu core 没有附带挂载 nfs 所需的辅助可执行文件。

下载或复制 busybox 文件后,您将需要设置可执行位,如下所示:

chmod +x /home/user/busybox

此时您应该能够像这样挂载您的 nfs 共享:

sudo mkdir -p /mnt/my_nfs
sudo /home/user/busybox mount -o nolock 1.2.3.4:/share/path /mnt/my_nfs

注意:我必须添加-o nolock选项,但我不确定为什么,但你可能不需要它......

为了使挂载自动完成,您需要添加 systemd 服务文件来运行这些命令,但需要添加服务文件/system-data/etc/systemd/system/然后启用该服务。

相关内容