如何为 Ubuntu 创建 NFS 根目录

如何为 Ubuntu 创建 NFS 根目录

我正在尝试设置几台迷你电脑,它们都从通过 PXE 安装的唯一 NFS 映像启动 Ubuntu。系统没有本地存储或配置,所有内容都必须来自网络。

我已经成功地将 Live CD 的内容托管在 nfs 共享上,从而以 PXE 方式启动 Live CD。我将整个 Live CD ISO 解压到 NFS 上共享的文件夹中。PXE 环境将通过 TFTP 从 Live CD 加载第一级内核/initrd,然后在内核命令行上启动它以及一些启动参数。这些启动参数告诉第一级内核将 nfs 共享挂载为“/”,并从中启动真实/完整内核。当“/”是 Ubuntu Live CD 的内容时,一切都很好。它启动得很漂亮。

我想要采取的下一步是将 Live CD 换成真正的已安装的 Ubuntu 映像。我以为这会像将 Live CD 的内容换成安装中的 root 内容一样简单,但这行不通。我进入了 buildroot 控制台。在安装 nfs 之后,事情似乎变得一团糟。大量与找不到 xyz 相关的错误,其中没有一个是来自 nfs root 的内核或 initrd。我认为我在将我的 root 复制到 NFS 时做错了什么。我一定是漏掉了什么。这个 NFS root 不知何故无效。与其深究这个 NFS root 无法正常工作的原因,不如让我倒回去问一个更高层次的问题:

如何为 Ubuntu 创建 NFS 根目录?

我是否要从已安装 Ubuntu 的系统中复制文件夹?所有文件夹还是仅复制部分文件夹?假设所有系统都是 kvm64 或 AMD64,复制操作系统是否存在架构问题?我是否错过了运行安装程序的某种方法并以某种方式将 NFS 定位为安装“磁盘”?

答案1

我犯了两个错误。解决方案是将 Ubuntu 安装到模板机器上,然后将整个根分区从该机器复制到 NFS 共享。

不要在机器运行时进行复制。使用实时 CD 或其他单独的可启动环境来复制根分区。

使用cp -a。a 很重要,因为它保留了所有文件权限,包括允许关键可执行文件以 root 身份运行的 SUID 位。

相关内容