加入收藏 | 设为首页 | 会员中心 | 我要投稿 济宁站长网 (https://www.0537zz.cn/)- 行业智能、边缘计算、专有云、AI硬件、5G!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

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

发布时间:2019-01-01 22:09:04 所属栏目:Windows 来源:Gregory Bartholomew
导读:有些计算机网络需要在各个物理机器上维护相同的软件和配置。学校的计算机实验室就是这样的一个环境。 网络引导 服务器能够被配置为基于网络去提供一个完整的操作系统,以便于客户端计算机从一个中央位置获取配置。本教程将向你展示构建一台网络引导服务器

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

  1. $ sed -i 's/^#Storage=auto$/Storage=volatile/' /fc28/etc/systemd/journald.conf

配置 DNS:

  1. $ MY_DNS1=192.0.2.91
  2. $ MY_DNS2=192.0.2.92
  3. $ cat << END > /fc28/etc/resolv.conf
  4. nameserver $MY_DNS1
  5. nameserver $MY_DNS2
  6. END

绕开编写本教程时存在的根目录只读挂载的 bug(BZ1542567):

  1. $ echo 'dirs /var/lib/gssproxy' > /fc28/etc/rwtab.d/gssproxy
  2. $ cat << END > /fc28/etc/rwtab.d/systemd
  3. dirs /var/lib/systemd/catalog
  4. dirs /var/lib/systemd/coredump
  5. END

最后,为我们镜像创建 NFS 文件系统,并将它共享到我们的子网中:

  1. $ mkdir /export/fc28
  2. $ echo '/fc28 /export/fc28 none bind 0 0' >> /etc/fstab
  3. $ mount /export/fc28
  4. $ echo "/export/fc28 -ro,sec=sys,no_root_squash $MY_SUBNET/$MY_PREFIX" > /etc/exports.d/fc28.exports
  5. $ exportfs -vr

创建引导加载器

现在,我们已经有了可以进行网络引导的操作系统,我们需要一个引导加载器去从客户端系统上启动它。在本教程中我们使用的是 iPXE。

注意:本节和接下来的节使用 QEMU 测试,也能在另外一台单独的计算机上来完成;它们并不需要在网络引导服务器上来运行。

安装 git 并使用它去下载 iPXE:

  1. $ dnf install -y git
  2. $ git clone http://git.ipxe.org/ipxe.git $HOME/ipxe

现在我们需要去为我们的引导加载器创建一个指定的启动脚本:

  1. $ cat << 'END' > $HOME/ipxe/init.ipxe
  2. #!ipxe
  3.  
  4. prompt --key 0x02 --timeout 2000 Press Ctrl-B for the iPXE command line... && shell ||
  5.  
  6. dhcp || exit
  7. set prefix file:///linux
  8. chain ${prefix}/boot.cfg || exit
  9. END

启动 “file” 下载协议:

  1. $ echo '#define DOWNLOAD_PROTO_FILE' > $HOME/ipxe/src/config/local/general.h

安装 C 编译器以及相关的工具和库:

  1. $ dnf groupinstall -y "C Development Tools and Libraries"

构建引导加载器:

  1. $ cd $HOME/ipxe/src
  2. $ make clean
  3. $ make bin-x86_64-efi/ipxe.efi EMBED=../init.ipxe

记下新编译的引导加载器的存储位置。我们将在接下来的节中用到它:

  1. $ IPXE_FILE="$HOME/ipxe/src/bin-x86_64-efi/ipxe.efi"

用 QEMU 测试

这一节是可选的,但是你需要去复制下面显示在物理机器上的 EFI 系统分区 的布局,在网络引导时需要去配置它们。

注意:如果你想实现一个完全的无盘系统,你也可以复制那个文件到一个 TFTP 服务器,然后从 DHCP 上指向那台服务器。

为了使用 QEMU 去测试我们的引导加载器,我们继续去创建一个仅包含一个 EFI 系统分区和我们的启动文件的、很小的磁盘镜像。

从创建 EFI 系统分区所需要的目录布局开始,然后把我们在前面节中创建的引导加载器复制进去:

  1. $ mkdir -p $HOME/esp/efi/boot
  2. $ mkdir $HOME/esp/linux
  3. $ cp $IPXE_FILE $HOME/esp/efi/boot/bootx64.efi

下面的命令将识别我们的引导加载器镜像正在使用的内核版本,并将它保存到一个变量中,以备后续的配置命令去使用它:

  1. $ DEFAULT_VER=$(ls -c /fc28/lib/modules | head -n 1)

(编辑:济宁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读