跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文档 / 部署指南 / 设置安装服务器 / 准备网络引导环境
适用范围 SUSE Linux Enterprise Server 15

15 准备网络引导环境

本章介绍如何配置 DHCP 和 TFTP 服务器,以提供所需的基础结构来通过 PXE 进行引导。

可以通过预引导执行环境 (PXE) 安装 SUSE® Linux Enterprise Server。客户端硬件需支持通过 PXE 引导。网络需要提供 DHCP 服务器和 TFTP 服务器,以向客户端提供所需的数据。本章将引导您设置所需的服务器。

PXE 只会引导内核和 initrd。可以使用此方法引导进入安装环境或在线系统。要设置安装源,请参见第 14 章 “设置网络安装源

此部分讨论复杂引导场景中需要的配置任务。其中包含了 DHCP、PXE 引导、TFTP 和网络唤醒的“准备应用”配置示例。

这些示例假设 DHCP、TFTP 和 NFS 服务器驻留在 IP 为 192.168.1.1 的同一计算机上。所有服务都可以驻留在不同的计算机上,且不会产生任何问题。请务必根据需要更改 IP 地址。

15.1 设置 DHCP 服务

除了向网络客户端提供自动地址分配外,DHCP 服务器还会通告 TFTP 服务器的 IP 地址,以及内核和 Initrd 文件的路径。需要装载哪些文件取决于目标计算机的体系结构,以及使用的是传统的 BIOS 还是 UEFI 引导方式。客户端会在 DHCP 请求中传输其体系结构类型。DHCP 服务器可以根据此信息确定必须下载哪些文件用于引导。

  1. root 登录到主管 DHCP 服务器的计算机。

  2. 通过执行 systemctl enable dhcpd 启用 DHCP 服务器。

  3. 向位于 /etc/dhcpd.conf 的 DHCP 服务器配置文件中的子网配置追加以下几行:

    # The following lines are optional
    option domain-name "my.lab";
    option domain-name-servers 192.168.1.1;
    option routers 192.168.1.1;
    option ntp-servers 192.168.1.1;
    ddns-update-style none;
    default-lease-time 3600;
    
    # The following lines are required
    option arch code 93 = unsigned integer 16; # RFC4578
    subnet 192.168.1.0 netmask 255.255.255.0 {
     next-server 192.168.1.1;
     range 192.168.1.100 192.168.1.199;
     default-lease-time 3600;
     max-lease-time 3600;
     if option arch = 00:07 or option arch = 00:09 {
       filename "/EFI/x86/grub.efi";
     }
     else if option arch = 00:0b {
       filename "/EFI/aarch64/bootaa64.efi";
     }
     else  {
       filename "/BIOS/x86/pxelinux.0";
     }
    }

    此配置示例使用的子网为 192.168.1.0/24,DHCP、DNS 和网关配置在 IP 为 192.168.1.1 的服务器上。请务必根据您的网络布局更改使用的所有 IP 地址。关于 dhcpd.conf 中可用选项的更多信息,请参见 dhcpd.conf 手册页。

  4. 执行 systemctl restart dhcpd 重启动 DHCP 服务器。

如果打算使用 SSH 来远程控制 PXE 和网络唤醒安装,请指定 DHCP 应提供给安装目标的 IP 地址。要实现此设置,请根据以下示例修改上述的 DHCP 配置:

group {
 host test {
   hardware ethernet MAC_ADDRESS;
   fixed-address IP_ADDRESS;
   }
}

host 语句引入了安装目标的主机名。要将主机名和 IP 地址与特定主机绑定,则必须了解系统的硬件 (NAC) 地址并指定它。请将本例中使用的所有变量替换为符合您环境的实际值。

在重启动 DHCP 服务器之后,它将向所指定的主机提供一个静态 IP,从而使您能够通过 SSH 连接到该系统。

15.2 设置 TFTP 服务器

以下过程介绍如何在 32 位和 64 位 x86 体系结构上为配有 UEFI 和 BIOS 的目标计算机准备服务器。已经为 AArch64 系统提供了准备好的结构。

15.2.1 安装 TFTP 服务器

要安装 TFTP 服务器,请执行以下过程:

  1. 安装 tftp 包。

    tux > sudo zypper in tftp
  2. 检查 /etc/sysconfig/tftp 中的 tftpd 配置,并根据需要添加或更改选项。有关更多细节,请参见 man 8 tftpd。不更改该配置,TFTP 守护程序也可正常工作。文件的默认根目录为 /srv/tftpboot

  3. 确保 tftpd 在引导时已启动,并重启动它以读取新配置。

    tux > sudo systemctl enable tftp.socket
    tux > sudo systemctl restart tftp.socket

15.2.2 安装包中的 PXE 文件

SUSE Linux Enterprise Server 在 RPM 中提供在 BIOS 或 UEFI 计算机上通过 PXE 引导所需的文件。请在运行 TFTP 服务器的计算机上安装这些文件:

tux > sudo zypper in tftpboot-installation-SLES-OS_VERSION-ARCHITECTURE

请将 OS_VERSION 替换为 SUSE Linux Enterprise Server 安装的版本(例如 15),将 ARCHITECTURE 替换为系统的体系结构(例如 x86_64)。可以使用 zypper se tftpboot 来搜索所有可用版本和体系结构。

文件将安装在 /srv/tftpboot/SLES-OS_VERSION-ARCHITECTURE 中。您也可以将 SUSE Linux Enterprise Server 的其他版本和体系结构的相应文件复制到 /srv/tftpboot 目录。

15.2.3 配置 PXELINUX

在编辑器中打开 /srv/tftpboot/SLES-OS_VERSION-ARCHITECTURE/net/pxelinux.cfg/default 文件。根据第 14 章 “设置网络安装源中所述的设置替换 install 参数的路径。另外,请将 TFTP_SERVER 替换为 TFTP 服务器的 IP 地址。有关 PXELINUX 配置选项的概述,请参见第 15.3 节 “PXELINUX 配置选项”

default linux

# install
label linux
  ipappend 2
  kernel boot/ARCHITECTURE/loader/linux
  append initrd=boot/x86_64/ARCHITECTURE/initrd instsys=tftp://TFTP_SERVER/SLES-OS_VERSION-ARCHITECTURE/boot/ARCHITECTURE/root install=PROTOCOL://SERVER_IP:/PATH

display  message
implicit 1
prompt  1
timeout  50

有关 append 行中使用的引导参数的细节,请参见第 7.3 节 “重要引导参数列表”

如果需要,请编辑 /srv/tftpboot/SLES-OS_VERSION-ARCHITECTURE/net/pxelinux.cfg/message,以在引导菜单中显示讯息。

15.2.4 使用 GRUB2 为 EFI 准备 PXE 引导

您无需更改 GRUB2 配置文件。但是,默认设置中未提供安装系统的网络源。如果您要完全通过网络来安装 SUSE Linux Enterprise Server,请将 install 参数添加到 /srv/tftpboot/SLES-OS_VERSION-ARCHITECTURE/EFI/BOOT/grub.cfg 文件中的 linuxefi 行内。根据第 14 章 “设置网络安装源中所述设置 install 参数。有关 efilinux 行中使用的其他引导参数的细节,请参见第 7.3 节 “重要引导参数列表”

15.3 PXELINUX 配置选项

此处列出的选项是 PXELINUX 配置文件中所有可用选项中的一部分。

APPEND OPTIONS

将一个或多个选项添加到内核命令行。添加的这些选项对自动引导和手动引导都适用。这些选项添加在内核命令行的最前面,通常允许用显式输入的内核选项覆盖它们。

APPEND -

不追加任何选项。在 LABEL 段中用一个连字符作为参数的 APPEND 可用于覆盖全局 APPEND

DEFAULT KERNEL_OPTIONS...

用于设置默认内核命令行。如果 PXELINUX 自动引导,则该选项的作用相当于已在引导提示符处输入了在 DEFAULT 后输入的所有内容(表示自动引导的 auto 选项除外,它是自动添加的)。

如果配置文件不存在或其中未定义 DEFAULT 项,则默认使用内核名称linux且不带任何选项。

IFAPPEND 标志

根据标志值将特定项添加到内核命令行。只有 PXELINUX 提供 IFAPPEND 项。标志需赋一个值,具体如表 15.1 “从 IFAPPEND 中生成并添加内核命令行选项。”所述:

表 15.1︰ IFAPPEND 中生成并添加内核命令行选项。

自变量

生成内核命令行/说明

1

ip=CLIENT_IP:BOOT_SERVER_IP:GW_IP:NETMASK

根据从 DHCP//BOOTP 或 PXE 引导服务器输入的内容替换占位符。

注,此选项不可替换为在引导系统中运行 DHCP 客户端。若不定期更新,PXE BIOS 所获得的租用将失效,致使 DHCP 服务器可重新使用该 IP 地址。

2

BOOTIF=MAC_ADDRESS_OF_BOOT_INTERFACE

当安装服务器在收到 DHCP 服务器的答复前逐个探测 LAN 接口时,此选项可用于避免超时。使用此选项可让 initrd 程序确定系统是从哪个接口引导的。linuxrc 会读取此选项并使用该网络接口。

4

SYSUUID=SYSTEM_UUID

以小写十六进制添加 UUIDs,具体请参见 /usr/share/doc/packages/syslinux/pxelinux.txt

LABEL LABEL KERNEL IMAGE APPEND OPTIONS...

指示如果输入了 LABEL 作为要引导的内核,则 PXELINUX 应改为引导 IMAGE,并且应使用指定的 APPEND 选项。这些设置会替换文件的 global 部分第一条 LABEL 命令前面指定的设置。IMAGE 的默认值与 LABEL 的相同,如果未指定 APPEND,则默认情况下使用 global 项(如果有)。最多允许 128 个 LABEL 条目。

PXELINUX 使用以下语法:

label MYLABEL
  kernel MYKERNEL
  append MYOPTIONS

标签的数据报处理如同文件名一样,它们在数据报处理之后必须唯一。例如,v2.6.30v2.6.31这两个标签在 PXELINUX 下是无法区分的,因为它们在数据报处理之后的 DOS 文件名相同。

该内核不必是 Linux 内核。它也可以是引导扇区或 COMBOOT 文件。

LOCALBOOT TYPE

在 PXELINUX 上,指定 LOCALBOOT 0 取代 KERNEL 选项表示调用该特定标签,这样就会从本地磁盘引导而不是从内核引导。

自变量

描述

0

执行正常引导

4

在“通用网络驱动程序接口”(UNDI)驱动程序仍然驻留在内存中的情况下执行本地引导

5

在整个 PXE 堆栈(包括 UNDI 驱动程序)仍然驻留于内存中的情况下执行本地引导

不定义所有其他的值。如果对 UNDI 或 PXE 堆栈不甚了解,请指定 0

TIMEOUT TIME-OUT

表示在自动引导之前在引导提示符下等待的时间(以 1/10 秒为单位)。用户按了键盘上的任意键后,超时将会取消(假设从用户完成命令开始)。如果超时值为零,则将完全禁用超时(这也是默认值)。允许的最大超时值为 35996(即小于一小时)。

PROMPT flag_val

如果 flag_val 为 0,则仅当按下 ShiftAlt 键,或者在 Caps LockScroll Lock 状态下,才显示引导提示符(这是默认设置)。如果 flag_val 为 1,则始终显示引导提示符。

F2  FILENAME
F1  FILENAME
..etc...
F9  FILENAME
F10 FILENAME

当在引导提示符下按下功能键时,将显示指定的文件。这可以用于执行预引导联机帮助(大致是关于内核命令行选项)。为了向后兼容先前的发行版,F10 也可以输入为 F0。请注意目前尚无法将文件名与 F11F12 绑定。

15.4 准备目标系统的 PXE 引导

请将 PXE 选项包含在 BIOS 引导序列中来为系统 BIOS 的 PXE 引导作准备。

警告
警告:BIOS 引导顺序

在 BIOS 中,不要将 PXE 选项置于硬盘引导参数的前面。否则,每次引导系统时,系统都会尝试重新自我安装。

15.5 准备目标系统的网络唤醒

网络唤醒 (WOL) 要求在安装之前启用相应的 BIOS 选项。此外,请记下目标系统的 MAC 地址。该数据是启动网络唤醒所需要的。

15.6 局域网唤醒

“网络唤醒”允许通过一个发送时包含计算机 MAC 地址的特定网络包来打开该计算机的电源。由于全球的每台计算机都有一个唯一的 MAC 标识,所以无需担心会意外地错开计算机的电源。

重要
重要:不同网段的“网络唤醒”

如果控制计算机与 WOL 命令的目标不在同一网段,您可以采用两种做法。将 WOL 请求配置为以多路广播形式发送,或者远程控制该网段中的某台计算机,使其充当这些请求的发送方。

SUSE Linux Enterprise Server 的用户可以使用名为 WOL 的 YaST 模块来方便地配置网络唤醒。基于 SUSE Linux 操作系统的其他版本的用户可以使用命令行工具。

15.7 使用 YaST 的“网络唤醒”

执行以下过程通过 YaST 配置网络唤醒。

  1. root 身份登录。

  2. 启动 YaST ›  网络服务 ›  WOL

  3. 单击添加并输入目标系统的主机名和 MAC 地址。

  4. 要打开此计算机,请选择适当的输入框并单击唤醒

15.8 从 CD 或 USB 驱动器而非 PXE 引导

您也可以使用包含小型系统映像的 CD、DVD 或 USB 驱动器来引导,而不通过 PXE 引导。装载完内核和 initrd 后,将会通过 NFS 提取必要文件。可使用 mksusecd 创建可引导映像。如果目标计算机不支持 PXE 引导,此选项可能很有用。

使用 sudo zypper in mksusecd 可安装该工具。使用以下命令创建可引导 ISO 映像:

tux > mksusecd --create image.iso \
--net=nfs://192.168.1.1:/srv/install/ARCH/OS_VERSION/SP_VERSION/cd1  \
/srv/tftpboot/EFI/ARCH/boot

ARCH 替换为目标系统体系结构对应的目录。另外,根据第 15.2 节 “设置 TFTP 服务器”中的路径替换 OS_versionSP_version

对于 --net 选项,您可以不使用 NFS 服务器,而是使用 HTTP 储存库,例如 openSUSE 储存库:

tux > mksusecd --create image.iso \
--net=http://download.opensuse.org/tumbleweed/repo/oss/suse \
/srv/tftpboot/EFI/ARCH/boot

image.iso 可写入到 DVD 或 CD,或使用 dd 写入到 USB 记忆棒:

root # dd if=image.iso of=/dev/USB_DEVICE

USB_DEVICE 替换为 USB 记忆棒的设备名称。全面检查设备名称,以确保您未意外损坏其他驱动器上的数据。