如何构建一台网络引导服务器(一)


有些计算机网络需要在各个物理机器上维护相同的软件和配置。学校的计算机实验室就是这样的一个环境。网络引导服务器能够被配置为基于网络去提供一个完整的操作系统,以便于客户端计算机从一个中央位置获取配置。本教程将向你展示构建一台网络引导服务器的一种方法。

本教程的第一部分将包括创建一台网络引导服务器和镜像。第二部分将展示如何去添加Kerberos验证的家目录到网络引导配置中。

初始化配置

首先去下载Fedora服务器的netinst镜像,将它刻录到一张光盘上,然后用它引导服务器来重新格式化。我们只需要一个典型的FedoraServer的“最小化安装”来作为我们的开端,安装完成后,我们可以使用命令行去添加我们需要的任何额外的包。


最小化安装的FedoraServer运行起来之后,以root用户登入:

并设置主机名字:

接下来,我们需要在我们的服务器上配置一个静态网络地址。运行下面的一系列命令将找到并重新配置你的默认网络连接:

安装和配置NFS4

从安装nfs-utils包开始:

为发布NFS去创建一个顶级的伪文件系统,然后在你的网络上共享它:

SELinux会干扰网络引导服务器的运行。为它配置例外规则超出了本教程中,因此我们这里直接禁用它:

现在,在本地防火墙中为NFS服务添加一个例外规则,然后启动NFS服务:

创建网络引导镜像

现在我们的NFS服务器已经启动运行了,我们需要为它提供一个操作系统镜像,以便于它提供给客户端计算机。我们将从一个非常小的镜像开始,等一切顺利之后再添加。

首先,创建一个存放我们镜像的新目录:

使用dnf命令在新目录下用几个基础包去构建镜像:

在上面的命令中省略了很重要的kernel包。在它们被安装完成之前,我们需要去调整一下initramfs镜像中包含的驱动程序集,kernel首次安装时将自动构建这个镜像。尤其是,我们需要禁用hostonly模式,以便于initramfs镜像能够在各种硬件平台上正常工作,并且我们还需要添加对网络和NFS的支持:

现在,安装kernel包:

设置一个阻止kernel包被更新的规则:

设置locale:

设置客户端的主机名字:

禁用控制台日志输出:

定义网络引导镜像中的本地liveuser用户:

允许liveuser使用sudo:

启用自动创建家目录:

由于多个客户端将会同时挂载我们的镜像,我们需要去配置镜像工作在只读模式中:

配置日志输出到内存而不是持久存储中:

启动“file”下载协议:

复制Linux内核并分配initramfs给EFI系统分区:

我们最终的目录布局应该看起来像下面的样子:

要让QEMU去使用我们的EFI系统分区,我们需要去创建一个小的磁盘镜像来包含它,然后将它连接到QEMU作为主引导驱动器。

开始安装必需的工具:

现在创建文件,并将esp目录中的文件复制进去:

接下来我们需要去安装qemu包:

允许QEMU访问我们在本教程“初始化配置”一节中创建的网桥:

创建一个OVMF_镜像的副本去保存我们虚拟机的持久BIOS配置:

现在,启动虚拟机:

如果一切顺利,你将看到类似下图所示的结果:


你可以使用shutdown命令关闭虚拟机回到我们的服务器上:

镜像中添加包

镜像中添加包应该是一个很简单的问题,在服务器上chroot进镜像,然后运行dnfinstallpackage_name。

在网络引导镜像中并不限制你能安装什么包。一个完整的图形化安装应该能够完美地工作。

下面是一个如何将最小化安装的网络引导镜像变成完整的图形化安装的示例:

可选地,你可能希望去启用liveuser用户的自动登录:

via:

作者:GregoryBartholomew选题:lujun9972译者:qhwdw校对:wxy

本文由LCTT原创编译,Linux中国荣誉推出

免责声明:本文章如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系