本节介绍有关从网络执行基于 GRUB 的引导的要求和警告。
如果引导服务器可用,任何系统都可以从网络进行引导。如果系统不能从本地磁盘进行引导,您可能需要从网络引导独立系统以便进行恢复。可以从支持 PXE 网络引导协议的网络来直接引导基于 x86 的系统。
PXE 网络引导只适用于实现了 Intel 引导前执行环境规范的设备。
用于基于 GRUB 的 PXE 网络引导的缺省网络引导策略是 DHCP。对于非 PXE 设备,可以使用 DHCP 引导策略或 RARP 引导策略。使用的策略取决于网络上可用的引导服务器的类型。如果没有可用的 PXE 或 DHCP 服务器,则可以从软盘、CD-ROM 或本地磁盘装入 GRUB。
要执行基于 GRUB 的网络引导,需要有为 PXE 客户机配置的 DHCP 服务器。还需要提供 tftp 服务的引导服务器。DHCP 服务器提供客户机配置其网络接口所需的信息。
DHCP 服务器必须能够使用以下信息响应 DHCP 类(PXEClient 和 GRUBClient):
文件服务器的 IP 地址
引导文件 (pxegrub) 的名称
以下是执行 Oracle Solaris OS 的 PXE 网络引导的顺序:
BIOS 被配置为从网络接口进行引导。
BIOS 发送 DHCP 请求。
DHCP 服务器在回复中提供服务器地址和引导文件的名称。
BIOS 使用 tftp 下载 pxegrub 并执行 pxegrub。
系统使用 tftp 下载 GRUB 菜单文件。
此文件显示可用的引导菜单项。
选择菜单项后,系统即开始装入 Oracle Solaris OS。
有关更多信息,请参见 《系统管理指南:IP 服务》中的“如何设置网络配置服务器”。
运行 add_install_client 命令可以创建 /tftpboot_01ethernet-address 文件。此文件链接至 pxegrub 和 /tftpboot/menu.lst.01ethernet-address 文件。/tftpboot/menu.lst.01ethernet-address 文件是 GRUB 菜单文件。如果此文件不存在,则 pxegrub 将恢复使用 DHCP 选项 150(如果指定了此选项)或 /tftpboot/boot/grub/menu.lst 文件。通常,将单系统设置为提供两项功能。此时,add_install_client 命令会使用正确的 pxegrub 菜单文件和 Oracle Solaris 文件设置 /tftpboot 文件。DHCP 服务是使用 add_install_client 命令单独进行处理的。对每台客户机只需完成一次设置。有关更多信息,请参见x86: 关于 DHCP 宏和x86: 如何从网络执行基于 GRUB 的引导。
当您使用 add_install_client -d 脚本在安装服务器上添加客户机时,脚本将把 DHCP 配置信息报告到标准输出。创建用于将网络安装信息传递到客户机所需的选项和宏时,可以使用此信息。
要通过网络使用 DHCP 服务器安装 DHCP 客户机,必须创建 DHCP 选项。安装 Oracle Solaris OS 时需要用到此信息。
当客户机发送 DHCP 请求时,服务器必须具有以下客户机信息:
客户机的 ID(通常是以太网地址)
客户机请求的类
客户机所在的子网
DHCP 服务器会作出响应。此响应基于以下宏,且与客户机请求匹配:
类宏基于 DHCP 请求中包含的类字符串。在基于 x86 的系统上,BIOS 已使用类 PXEClient:Arch:00000:UNDI:002001 创建了 DHCP 请求。如果在 DHCP 服务器配置中已按此名称定义了宏,则宏内容将被发送到基于 x86 的客户机。
网络宏由客户端所在子网的 IP 地址命名。如果已在 DHPC 服务器上定义了宏 129.146.87.0,则宏内容将被发送到该子网上的所有客户机。宏内容的发送与请求类无关。如果同时在类宏和网络宏中定义了选项,则网络宏优先使用。
客户机宏以客户机的类型(01 表示以太网)和客户机的 MAC 地址(使用大写字母)命名。对于具有以太网地址 0:0:39:fc:f2:ef 的客户机,对应的宏名称为 01000039FCEF。请注意,客户机宏中没有冒号。
例如,对于子网 192.168.100.0 上具有以太网地址 0:0:39:fc:f2:ef 的客户机(创建类 PXEClient 的 DHCP 请求),DHCP 服务器具有以下匹配的宏:
PXEClient BootSrvA: 192.168.100.0 BootFile: pxegrub 129.146.87.0 Router: 129.146.87.1 NISdmain: sunsoft.eng.sun.com 01000039FCEF BootFile: 01000039FCEF The actual DHCP response will be BootSrvA: 192.168.100.0 BootFile: 01000039FCEF Router: 129.146.87.1 NISdmain: sunsoft.eng.sun.com |
请注意,客户机宏中的 BootFile 将覆盖类宏中的 BootFile。
有关更多详细信息,请参见 《Oracle Solaris 10 9/10 安装指南:基于网络的安装》中的“使用 DHCP 服务预配置系统配置信息(任务)”。
要执行基于 GRUB 的网络引导,需要有为 PXE 客户机配置的 DHCP 服务器。还需要提供 tftp 服务的引导服务器。DHCP 服务器必须能够对 DHCP 类(PXEClient 和 GRUBClient)做出响应,才能获取文件服务器和引导文件 (pxegrub) 的 IP 地址。缺省情况下,此菜单文件为 /tftpboot/menu.lst.01ethernet-address。如果此文件不存在,则 pxegrub 将恢复到 DHCP 选项 150(如果指定了此选项),或 /tftpboot/boot/grub/menu.lst 文件。
如果您是从 Solaris 软件介质来引导系统,系统会自动进行引导。
使用 GRUB 在基于 x86 的系统上执行网络引导之前,请执行以下操作:
在安装服务器上运行相应的命令,以使系统能够从网络进行引导。
将客户机系统作为安装客户机进行添加。
有关更多信息,请参见 《Oracle Solaris 10 9/10 安装指南:基于网络的安装》中的第 4 章 “从网络进行安装(概述)”。
在 DHCP 服务器上,使用以下两个选项为 DHCP 服务创建客户机宏:
BootSrvA: svr-addr
BootFile: client-macro
请注意,您必须对 DHCP 服务器具有超级用户权限才能运行 dhtadm 命令。
其中,svr-addr 是服务器的 IP 地址,client-macro 以客户机的以太网类型 (01) 以及 MAC 地址来命名(使用大写字母)。此编号也是在安装服务器上的 /tftpboot 目录中使用的文件的名称。
client-macro 的表示法不应包含任何冒号。
您可以使用 DHCP GUI 或命令行界面来创建客户机宏。
要从命令行创建客户机宏,请键入:
# dhtadm -[MA] -m client macro -d ":BootFile=client-macro:BootSrvA=svr-addr:" |
重新引导系统。
指示 BIOS 从网络进行引导。
显示 GRUB 菜单时,请选择要安装的网络安装映像。