通过网络安装(PXE 引导)

在网络引导安装期间:

  1. 客户端会以 PXE 模式引导。

  2. DHCP 服务器会向客户端提供 IP 地址和掩码、安装服务器的地址,以及该服务器上引导加载程序文件的名称。

  3. 客户端通过 TFTP 协议从安装服务器上下载引导加载程序文件,并执行该文件。

  4. 客户端可以从菜单中选择要安装的配置文件,或者开始自动安装其中一个配置文件。

  5. 客户端通过 TFTP 协议下载与该配置文件匹配的发行套件适用的内核和初始 RAM 磁盘。

  6. 安装内核启动安装程序 Kickstart 或 AutoYaST。从现在起,它通过 HTTP 协议使用服务器上提供的资源。

  7. 系统会根据 Kickstart 或 AutoYaST 配置文件自动安装发行套件。

  8. 配置文件会调用一段代码段以将客户端注册到 SUSE Manager 服务器(注册为传统客户端或 Salt 客户端)。

cobbler menu

安装服务器可以是 SUSE Manager 服务器或其代理之一。要从代理安装,必须于开始前在服务器与代理之间同步 TFTP 树。

DHCP 服务器还可以向客户端提供其他配置信息,例如主机名、路由器的地址和域名服务器的地址。自动安装可能需要其中某些信息,例如,当您通过域名指定安装服务器时。

在 PXE 引导菜单中,第一个选项是本地引导。如果选择此选项,将从本地磁盘驱动器继续引导过程。如果一段时间后未选择任何配置文件,系统会自动选择此选项。这是一种安全措施,用于防止在没有操作人员选择其中一个配置文件时启动自动安装。

安装也可以从其中一个配置文件自动启动,而无需手动干预。这称为“无人照管的置备”。

“裸机”功能是一种基于 PXE 引导的无人照管置备。在这种情况下,引导加载程序文件只会在 SUSE Manager 服务器中注册客户端,而不启动安装。您可以稍后触发就地重新安装。

过程:通过 PXE 引导安装
  1. 准备 DHCP 服务器,请参见准备 DHCP 服务器

  2. 准备可自动安装的发行套件,请参见 可自动安装的发行套件

  3. 准备自动安装配置文件,请参见 自动安装配置文件

  4. 重引导客户端,然后选择要安装的配置文件。

其他一些步骤是非必要步骤。要将代理用作安装服务器,请参见将 TFTP 树与代理同步。有关无人照管的置备,请参见 无人照管的置备

1. 准备 DHCP 服务器

PXE 引导进程使用 DHCP 来查找 TFTP 服务器。SUSE Manager 服务器或其代理可以充当这样的 TFTP 服务器。

您必须具有网络的 DHCP 服务器的管理访问权限。编辑 DHCP 配置文件,使其指向作为 TFTP 引导服务器的安装服务器。

例如:配置 ISC DHCP 服务器
  1. 在 DHCP 服务器上,以 root 身份打开 /etc/dhcpd.conf 文件。

  2. 修改您的客户端的声明:

  host myclient { (...)
                  next-server 192.168.2.1;
                   filename "pxelinux.0"; }
  1. 保存文件并重启动 dhcpd 服务。

此示例将 PXE 客户端 myclient 定向到 192.168.2.1 处的安装服务器,并指示其检索 pxelinux.0 引导加载程序文件。

或者,如果您的 DHCP 服务器已在 SUSE Manager 中注册,则可以改为使用 DHCPd 公式来配置:

例如:使用 DHCPd 公式配置 ISC DHCP 服务器
  1. 导航到系统  系统列表,选择要更改的客户端,然后转到公式选项卡以启用 DHCPd 公式。

  2. 转到公式的 Dhcpd 选项卡,并在下一台服务器字段中输入安装服务器的主机名或 IP 地址。

  3. 文件名 EFI 字段中,键入 grub/shim.efi 以启用 EFI PXE 支持。

  4. 文件名字段中,键入 pxelinux.0 以启用旧式 BIOS 支持。

  5. 单击 保存公式 以保存您的配置。

  6. 应用 highstate。

如果不使用安全引导,请在文件名 EFI 字段中键入 grub/grubx86.efi 而不是 grub/shim.efi

有关不同的体系结构,请参见表格不同体系结构的 GRUB EFI 二进制文件名

SUSE Manager 不支持使用受 Cobbler 管理的 DHCP。

这样会为所有主机设置一台全局 PXE 服务器,您也可以为每个主机进行不同的设置。有关 DHCPd 公式的详细信息,请参见 DHCPd 公式

2. 将 TFTP 树与代理同步

您可以将 SUSE Manager 服务器上的 TFTP 树与 SUSE Manager 代理同步。要进行同步,必须打开 HTTPS 端口 443。

每添加一个代理,树同步速度都会有所降低。

过程:在服务器与代理之间同步 TFTP
  1. 在 SUSE Manager 服务器上的命令提示符处,以 root 身份安装 susemanager-tftpsync 软件包:

zypper install susemanager-tftpsync
  1. 在 SUSE Manager 代理上的命令提示符处,以 root 身份安装 susemanager-tftpsync-recv 软件包:

zypper install susemanager-tftpsync-recv
  1. 在代理上,以 root 身份运行 configure-tftpsync.sh 脚本。该脚本会以交互方式询问您有关 SUSE Manager 服务器和代理的主机名和 IP 地址的细节,以及代理上的 tftpboot 目录的位置。有关详细信息,请使用 configure-tftpsync.sh --help 命令。

  2. 在服务器上,以 root 身份运行 configure-tftpsync.sh 脚本。

    configure-tftpsync.sh proxy1.example.com proxy2.example.com
  3. 在服务器上运行 cobbler sync 命令,以将文件推送到代理。如果您未正确配置代理,此操作将失败。

如果要在稍后更改代理列表,可以使用 configure-tftpsync.sh 脚本对其进行编辑。

如果您重新安装配置的代理,并且想再次推送所有文件,则必须在调用 cobbler sync 之前去除位于 /var/lib/cobbler/pxe_cache. json 的缓存文件。

3. 不同体系结构的 GRUB EFI 二进制文件名

Table 1. 不同体系结构的 GRUB EFI 二进制文件名
体系结构 GRUB EFI 二进制文件名

aarch64

grubaa64.efi

x86-64

grubx86.efi

ppc64le

grub.ppc64le