本节将介绍在复杂的引导方案中所需的配置任务。其中包含了 DHCP、PXE 引导、TFTP 和网络唤醒的“准备应用”配置示例。
在 SUSE Linux 上对 DHCP 服务器进行设置是通过手工编辑相应的配置文件来完成的。本节将介绍如何对一个现有的 DHCP 服务器配置进行扩展,以提供在 TFTP、PXE 和 WOL 环境中所需的数据。
除了向网络客户机提供自动地址分配外,所有 DHCP 服务器还需要就 TFTP 服务器 IP 地址和应由目标机器上的安装例程导入的文件发布通告。
以根用户登录到主管 DHCP 服务器的机器。
向位于 /etc/dhcpd.conf 下的 DHCP 服务器配置文件中追加以下几行:
group {
# PXE related stuff
#
# "next server" defines the tftp server that will be used
next server ip_tftp_server:
#
# "filename" specifiies the pxelinux image on the tftp server
# the server runs in chroot under /srv/tftpboot
filename "pxelinux.0";
}将 ip_of_the_tftp_server 替换为 TFTP 服务器的实际 IP 地址。
关于 dhcpd.conf 中可用选项的更多信息,请参阅 dhcpd.conf 手册页。
执行 rcdhcpd restart 重启动 DHCP 服务器。
如果打算或正在将 SSH 用于 PXE 和网络唤醒安装的远程控制,请专门指定 DHCP 应提供给安装目标的 IP 地址。要实现此设置,请根据以下示例修改上述的 DHCP 配置:
group {
# PXE related stuff
#
# "next server" defines the tftp server that will be used
next server ip_tftp_server:
# "filename" specifiies the pxelinux image on the tftp server
# the server runs in chroot under /srv/tftpboot
filename "pxelinux.0";
host test { hardware ethernet mac_address;
fixed-address some_ip_address; }
}
host 语句引入了安装目标的主机名。要将主机名和 IP 地址与特定主机绑定,则必须了解系统的硬件(NAC)地址并指定它。请将本例中使用的所有变量替换为符合您环境的实际值。
在重启动 DHCP 服务器之后,它将向所指定的主机提供一个静态 IP,从而使您能够通过 SSH 连接到该系统。
设置 TFTP 服务器可通过 YaST 完成,也可以在任何其他支持 xinetd 和 tftp 的 Linux 操作系统上手工完成。一旦目标系统成功引导并发出请求,FTP 服务器就会将引导映像发送到该目标系统。
以根用户登录,然后安装 tftp 包和 xinetd 包。
如果这两个包不可用,请创建 /srv/tftpboot 目录和 /srv/tftpboot/pxelinux.cfg 目录。
按第 1.3.3 节 “PXE 引导” 中所述添加引导映像所需的相应文件。
修改位于 /etc/xinetd.d/ 下的 xinetd 的配置,以确保 tftp 服务器在引导时启动:
在 Preboot Execution Environment (PXE) Specification(ftp://download.intel.com/labs/manage/wfm/download/pxespec.pdf)中可获取一些技术背景信息以及 PXE 的完整规范。
切换到您的安装储存库所在目录,然后输入以下命令将 linux、initrd、message 和 memtest 文件复制到 /srv/tftpboot 目录中:
cp -a boot/loader/linux boot/loader/initrd boot/loader/message boot/loader/memtest /srv/tftpboot
通过 YaST 直接从 CD 或 DVD 安装 syslinux 包。
输入以下命令来将 /usr/share/syslinux/pxelinux.0 文件复制到 /srv/tftpboot 目录中:
cp -a /usr/share/syslinux/pxelinux.0 /srv/tftpboot
切换到安装储存库所在目录,然后输入以下命令,将 isolinux.cfg 文件复制到 /srv/tftpboot/pxelinux.cfg/default:
cp -a boot/loader/isolinux.cfg /srv/tftpboot/pxelinux.cfg/default
编辑 /srv/tftpboot/pxelinux.cfg/default 文件,将以 gfxboot、readinfo 和 framebuffer 开头的行去除。
在默认的 failsafe 和 apic 标签的追加行中插入以下条目:
insmod=e100
通过此条目,Intel 100MBit/s 网卡的内核模块将装载到 PXE 客户端中。此条目取决于客户端的硬件,必须根据具体硬件采用不同的值。如果是 Broadcom GigaBit 网卡,则该条目应为 insmod=bcm5700。
netdevice=eth0
此条目定义了必须用于网络安装的客户端网络接口。它只在客户端配备了多块网卡的情况下才需要,且必须根据具体情况采用相应的值。如果客户端安装了一块网卡,则该条目可以省略。
install=nfs://ip_instserver/path_instsource/CD1
该条目定义了用于客户机安装的 NFS 服务器和安装源。请将 ip_instserver 替换为安装服务器的实际 IP 地址。path_instsource 应替换为安装源的实际路径。对于 HTTP、FTP 或 SMB 源,除了应将协议前缀分别替换为 http、ftp 或 smb,其他地方都是相似的。
![]() | 重要 |
|---|---|
如果需要向安装例程指定其他引导选项,如 SSH 或 VNC 引导参数,请将它们追加到 | |
以下是一个 /srv/tftpboot/pxelinux.cfg/default 文件示例。请根据自己的网络设置调整协议前缀,并通过向 install 条目添加 vnc 或 vncpassword 选项,或者添加 ssh 和 sshpassword 选项来指定要用于连接到安装程序的首选方法。由 \ 分隔的多个行必须分别作为一个连续的行输入,其中不能有换行符,也不能有 \。
default linux
# default
label linux
kernel linux
append initrd=initrd ramdisk_size=65536 insmod=e100 \
install=nfs://ip_instserver/path_instsource/product
# failsafe
label failsafe
kernel linux
append initrd=initrd ramdisk_size=65536 ide=nodma apm=off acpi=off \
insmod=e100 install=nfs://ip_instserver/path_instsource/product
# apic
label apic
kernel linux
append initrd=initrd ramdisk_size=65536 apic insmod=e100 \
install=nfs://ip_instserver/path_instsource/product
# manual
label manual
kernel linux
append initrd=initrd ramdisk_size=65536 manual=1
# rescue
label rescue
kernel linux
append initrd=initrd ramdisk_size=65536 rescue=1
# memory test
label memtest
kernel memtest
# hard disk
label harddisk
kernel linux
append SLX=0x202
implicit 0
display message
prompt 1
timeout 100
将 ip_instserver 和 path_instsource 替换为您设置中使用的值。
以下一节简要介绍了在此设置中使用的 PXELINUX 选项。关于可用选项的更多信息,在位于 /usr/share/doc/packages/syslinux/ 下的 syslinux 包中。
此处列出的选项是 PXELINUX 配置文件中所有可用选项中的一部分。
DEFAULT kernel options...
用于设置默认内核命令行。如果 PXELINUX 自动引导,则该选项的作用相当于已在引导提示符处输入了在 DEFAULT 后输入的所有内容(表示自动引导的 auto 选项除外,它是自动添加的)。
如果不存在任何配置文件或配置文件中不存在 DEFAULT 条目,则默认情况为内核名称 “linux” 且不带任何选项。
APPEND options...
用于向内核命令行添加一个或多个选项。添加的这些选项对自动引导和手工引导都适用。这些选项添加在内核命令行的最前面,通常允许用显式输入的内核选项覆盖它们。
LABEL label KERNEL image APPEND options...
表示如果将 label 输入为要引导的内核,则 PXELINUX 将取代引导 image,并且将使用指定的 APPEND 选项代替文件的全局部分中指定的选项(在首个 LABEL 命令之前)。image 的默认值与 label 的相同,如果未指定 APPEND,则默认情况下使用全局条目(如果有)。最多允许 128 个 LABEL 条目。
请注意 GRUB 使用以下语法:
title mytitle kernelmy_kernelmy_kernel_optionsinitrdmyinitrd
而 PXELINUX 使用以下语法:
labelmylabelkernelmykernelappendmyoptions
标签的数据报处理如同文件名一样,且在数据报处理之后,它们必定是唯一的。例如,“v2.1.30” 和 “v2.1.31” 这两个标签在 PXELINUX 下是无法区分的,因为它们在数据报处理之后成为同一个 DOS 文件名。
kernel 不必是 Linux 内核,它可以是引导扇区或 COMBOOT 文件。
表示不追加任何内容在 LABEL 段中,用一个连字符作为参数的 APPEND 可用于覆盖全局 APPEND。
LOCALBOOT type
在 PXELINUX 上,指定 LOCALBOOT 0 取代 KERNEL 选项表示调用该特定标签,这样就会从本地磁盘引导而不是从内核引导。
|
自变量 |
说明 |
|---|---|
|
|
执行正常引导 |
|
|
在“通用网络驱动程序接口”(UNDI)驱动程序仍然驻留在内存中的情况下执行本地引导 |
|
|
在整个 PXE 堆栈(包括 UNDI 驱动程序)仍然驻留于内存中的情况下执行本地引导 |
不定义所有其他的值。如果对 UNDI 或 PXE 堆栈不甚了解,请指定 0。
TIMEOUT time-out
表示在自动引导之前在引导提示符下等待的时间(以 1/10 秒为单位)。一旦用户按了键盘上的任意键,超时将立即取消(假设从用户完成命令开始)。如果超时值为零,则将完全禁用超时(这也是默认值)。
允许的最大超时值为 35996(即小于一小时)。
PROMPT flag_val
如果 flag_val 为 0,则仅当按下 Shift 或 Alt 键,或者设置了 Caps Lock 或 Scroll lock 键的情况下,才显示引导提示符(这是默认值)。如果 flag_val 为 1,则始终显示引导提示符。
F2filenameF1filename..etc... F9filenameF10filename
当在引导提示符下按下功能键时,将显示指定的文件。这可以用于执行预引导联机帮助(大致是关于内核命令行选项)。为了向后兼容先前的发行版,F10 也可以输入为 F0。请注意目前尚无法将文件名与 F11 和 F12 绑定。
请将 PXE 选项包含在 BIOS 引导序列中来为系统 BIOS 的 PXE 引导作准备。
![]() | 警告 |
|---|---|
在 BIOS 中,不要将 PXE 选项置于硬盘引导选项的前面。否则,在每次引导该系统时,它都会尝试重安装自己。 | |
“网络唤醒”允许通过一个发送时包含机器 MAC 地址的特定网络包来打开该机器的电源。 由于全球的每台机器都有一个唯一的 MAC 标识,所以无需担心会意外地错开机器的电源。
![]() | 重要 |
|---|---|
如果控制机器与要唤醒的安装目标不在同一网段,请将要发送的 WOL 请求配置为多点广播,或远程控制该网段上的某台机器充当这些请求的发送方。 | |