Solaris 10 8/07 安装指南:基于网络的安装

为 Solaris 安装参数创建 DHCP 选项和宏

当您使用 add_install_client -d 脚本在安装服务器上添加客户机时,脚本将把 DHCP 配置信息报告到标准输出。创建将网络安装信息传送到客户机时所需的选项和宏时,可以使用此信息。

可以在 DHCP 服务中自定义选项和宏,以执行以下类型的安装。

有关设置客户机以便使用 DHCP 服务器进行网络安装的更多信息,请参见以下过程。

DHCP 选项和宏值

要从网络安装 DHCP 客户机,您必须创建供应商目录选项,以便传送安装 Solaris OS 所需的信息。以下各表说明了可以用来安装 DHCP 客户机的通用 DHCP 选项。

有关 DHCP 选项的详细信息,请参见《系统管理指南:IP 服务》中的“DHCP 选项信息”。

表 3–3 标准 DHCP 选项的值

选项名 

代码 

数据类型 

粒度 

最大值 

描述 

BootFile

N/A 

ASCII 

1 

1 

指向客户机的引导文件的路径 

BootSrvA

N/A 

IP 地址 

1 

1 

引导服务器的 IP 地址  

DNSdmain

15 

ASCII 

1 

0 

DNS 域名 

DNSserv

6 

IP 地址 

1 

0 

DNS 名称服务器列表 

NISdmain

40 

ASCII 

1 

0 

NIS 域名 

NISservs

41 

IP 地址 

1 

0 

NIS 服务器的 IP 地址  

NIS+dom

64 

ASCII 

1 

0 

NIS+ 域名 

NIS+serv

65 

IP 地址 

1 

0 

NIS+ 服务器的 IP 地址  

Router

3 

IP 地址 

1 

0 

网络路由器的 IP 地址 

表 3–4 用于为 Solaris 客户机创建供应商目录选项的值

名称 

代码 

数据类型 

粒度 

最大值 

供应商客户机类 * 

描述 

以下供应商目录选项是允许 DHCP 服务器支持 Solaris 安装客户机所需的选项。这些选项在 Solaris 客户机的启动脚本中使用。


注 –

此处列出的供应商客户机类仅用作示例。您应当指定自己的客户机类,它表示您的网络中需要从网络安装的实际客户机。


SrootIP4

2 

IP 地址 

1 

1 

SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc

根服务器的 IP 地址 

SrootNM

3 

ASCII 文本 

1 

0 

SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc

根服务器的主机名 

SrootPTH

4 

ASCII 文本 

1 

0 

SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc

指向根服务器上客户机的根目录的路径 

SinstIP4

10 

IP 地址 

1 

1 

SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc

JumpStart 安装服务器的 IP 地址 

SinstNM

11 

ASCII 文本 

1 

0 

SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc

安装服务器的主机名 

SinstPTH

12 

ASCII 文本 

1 

0 

SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc

指向安装服务器上的安装映像的路径 

以下选项可由客户机启动脚本使用,但不是这些脚本所必需的。


注 –

此处列出的供应商客户机类仅用作示例。您应当指定自己的客户机类,它表示您的网络中需要从网络安装的实际客户机。


SrootOpt

1 

ASCII 文本 

1 

0 

SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc

客户机的根文件系统的 NFS 挂载选项 

SbootFIL

7 

ASCII 文本 

1 

0 

SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc

指向客户机的引导文件的路径 

SbootRS

9 

数字 

2 

1 

SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc

装入内核时,独立引导程序所使用的 NFS 读大小 

SsysidCF

13 

ASCII 文本 

1 

0 

SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc

指向 sysidcfg 文件的路径,格式为 server:/path

SjumpsCF

14 

ASCII 文本 

1 

0 

SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc

指向 JumpStart 配置文件的路径,格式为 server:/path

SbootURI

16 

ASCII 文本 

1 

0 

SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc

指向独立引导文件或 WAN Boot 文件的路径。对于独立引导文件,请使用以下格式。 

tftp://inetboot.sun4u

对于 WAN Boot 文件,格式为 

http://host.domain/path-to-file

此选项可用于覆盖 BootFile 设置和 siaddr 设置,以检索独立引导文件。支持的协议:tftp (inetboot) 和 http (wanboot)。例如,使用以下格式。tftp://inetboot.sun4u

SHTTPproxy

17 

ASCII 文本 

1 

0 

SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc

网络上使用的代理服务器的 IP 地址和端口号。仅当客户机通过 WAN 引导,且本地网络使用了代理服务器时才需要此选项。例如,使用以下格式:198.162.10.5:8080

以下这些选项当前无法由 Solaris 客户机启动脚本直接使用,您必须编辑启动脚本才能使用它们。


注 –

此处列出的供应商客户机类仅用作示例。您应当指定自己的客户机类,它表示您的网络中需要从网络安装的实际客户机。


SswapIP4

5 

IP 地址 

1 

0 

SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc

交换服务器的 IP 地址 

SswapPTH

6 

ASCII 文本 

1 

0 

SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc

指向交换服务器上客户机的交换文件的路径 

Stz

8 

ASCII 文本 

1 

0 

SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc

客户机的时区 

Sterm

15 

ASCII 文本 

1 

0 

SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc

终端类型 

当您创建选项后,可以创建包含这些选项的宏。下表列出了样例宏,您可以创建这些宏以支持客户机的 Solaris 安装。

表 3–5 支持网络安装客户机的样例宏

宏名 

包含以下这些选项和宏 

Solaris

SrootIP4, SrootNM, SinstIP4, SinstNM

sparc

SrootPTH, SinstPTH

sun4u

Solaris 宏和 sparc 宏

sun4v

Solaris 宏和 sparc 宏

i86pc

Solaris 宏、SrootPTH、SinstPTH、SbootFIL

SUNW.i86pc

i86pc 宏


注 –

SUNW.i86pc 类的供应商客户机只对 Solaris 10 3/05 发行版和兼容版本有效。


SUNW.Sun-Blade-1000

sun4u 宏和 SbootFIL

SUNW.Sun-Fire-880

sun4u 宏和 SbootFIL

PXEClient:Arch:00000:UNDI:002001

BootSrvA, BootFile

xxx.xxx.xxx.xxx 网络地址宏

可以将 BootSrvA 选项增加到现有的网络地址宏中。BootSrvA 的值应表示 tftboot 服务器。

01client-MAC-address 特定于客户机的宏(例如,010007E9044ABF)

BootSrvA, BootFile

上表中列出的宏名与必须从网络安装的客户机的供应商客户机类相匹配。这些宏名是可能位于您的网络上的客户机示例。有关确定客户机的供应商客户机类的信息,请参见《系统管理指南:IP 服务》中的“使用 DHCP 选项(任务列表)”。

您可以使用以下方法来创建这些选项和宏。

请注意,提供给特定客户机的供应商选项的总大小不得超过 255 字节,包括选项代码和长度信息。这限制了当前 Solaris DHCP 协议的实施。一般情况下,应该能够传送所需的最小量的供应商信息。在需要输入路径名的选项中,应该使用简短的路径名。如果创建指向长路径的符号链接,则可以使用更简短的链接名。

使用 DHCP Manager 创建安装选项和宏

可以使用 DHCP Manager 创建在表 3–4 中列出的选项和在表 3–5 中列出的宏。

Procedure如何创建选项以支持 Solaris 安装 (DHCP Manager)

开始之前

在为安装创建 DHCP 宏之前执行以下任务。

  1. 在 DHCP 服务器系统上,成为超级用户或承担等效角色。

  2. 启动 DHCP Manager。


    # /usr/sadm/admin/bin/dhcpmgr &
    

    将显示“DHCP Manager”窗口。

  3. 在“DHCP Manager”中选择“选项”选项卡。

  4. 从“编辑”菜单中选择“创建”。

    “创建选项”面板会打开。

  5. 键入第一个选项的选项名称,然后为该选项键入相应的值。

    请使用 add_install_client 命令的输出、表 3–3 和表 3–4 来检查必须创建的选项的选项名称和值。请注意,供应商客户机类只是建议的值。您应当创建自己的客户机类,以指明需要从 DHCP 服务获取 Solaris 安装参数的实际客户机类型。有关如何确定客户机的供应商客户机类的信息,请参见《系统管理指南:IP 服务》中的“使用 DHCP 选项(任务列表)”。

  6. 输入所有值之后,单击“确定”。

  7. 在“选项”选项卡中,选择刚刚创建的选项。

  8. 从“编辑”菜单中选择“复制”。

    “复制选项”面板会打开。

  9. 键入另一个选项名称,然后相应地修改其他值。

    您很可能需要修改代码值、数据类型值、粒度值和最大值。有关上述各项的值,请参见表 3–3 和表 3–4。

  10. 重复步骤 7 至步骤 9,直到您创建了所有选项为止。

    您现在可以创建宏,以将选项传送给网络安装客户机,如以下过程所述。


    注 –

    您不需要将这些选项添加到 Solaris 客户机的 /etc/dhcp/inittab 文件中,因为此文件中已经包含了这些选项。


Procedure如何创建宏以支持 Solaris 安装 (DHCP Manager)

开始之前

在为安装创建 DHCP 宏之前执行以下任务。

  1. 在“DHCP Manager”中选择“宏”选项卡。

  2. 从“编辑”菜单中选择“创建”。

    “创建宏”面板会打开。

  3. 键入宏名。

    有关可能使用的宏名,请参见表 3–5 。

  4. 单击“选择”按钮。

    “选择选项”面板会打开。

  5. 在“目录”列表中选择“供应商”。

    将列出您创建的供应商选项。

  6. 选择要增加到宏的选项,然后单击“确定”。

  7. 键入选项的值。

    有关选项的数据类型,请参见表 3–3 和表 3–4 并参阅 add_install_client -d 报告的信息。

  8. 对您想要包括的每个选项重复执行步骤 6 至步骤 7。

    要包含其他宏,请键入 Include 作为选项名,并键入宏名作为选项值。

  9. 宏完成后,单击“确定”。

继续安装

从网络安装系统时,如果计划使用 DHCP,那么需要设置一个安装服务器并将系统添加为安装客户机。有关更多信息,请参见第 4 章,从网络进行安装(概述)。

如果计划在 WAN boot 安装中使用 DHCP,则需要执行其他任务。更多信息,请参见第 9 章,WAN Boot(概述)。

如果计划在自定义 JumpStart 安装中使用 DHCP,则需要创建一个配置文件和一个 rules.ok 文件。有关更多信息,请参见《Solaris 10 8/07 安装指南:自定义 JumpStart 和高级安装》中的第 2  章 “自定义 JumpStart(概述)”。

另请参见

有关 DHCP 的更多信息,请参见《系统管理指南:IP 服务》中的第 III 部分, “DHCP”。

编写使用 dhtadm 创建选项和宏的脚本

可以通过改写示例 3–1 中的示例创建一个 Korn shell 脚本,以创建表 3–3 和表 3–4 中列出的所有选项和一些有用的宏。请确保将括在引号中的所有 IP 地址和值更改为适用于您的网络的正确的 IP 地址、服务器名和路径。您还应编辑 Vendor= 关键字以指明您拥有的客户机类。使用 add_install_client -d 报告的信息,以获取改写脚本所需的数据。


示例 3–1 支持网络安装的样例脚本

# Load the Solaris vendor specific options. We'll start out supporting 
# the Sun-Blade-1000, Sun-Fire-880, and i86 platforms. Note that the 
# SUNW.i86pc option only applies for the Solaris 10 3/05 release. 
# Changing -A to -M would replace the current values, rather than add them.
dhtadm -A -s SrootOpt -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,1,ASCII,1,0'
dhtadm -A -s SrootIP4 -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,2,IP,1,1'
dhtadm -A -s SrootNM -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,3,ASCII,1,0'
dhtadm -A -s SrootPTH -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,4,ASCII,1,0'
dhtadm -A -s SswapIP4 -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,5,IP,1,0'
dhtadm -A -s SswapPTH -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,6,ASCII,1,0'
dhtadm -A -s SbootFIL -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,7,ASCII,1,0'
dhtadm -A -s Stz -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,8,ASCII,1,0'
dhtadm -A -s SbootRS -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,9,NUMBER,2,1'
dhtadm -A -s SinstIP4 -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,10,IP,1,1'
dhtadm -A -s SinstNM -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,11,ASCII,1,0'
dhtadm -A -s SinstPTH -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,12,ASCII,1,0'
dhtadm -A -s SsysidCF -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,13,ASCII,1,0'
dhtadm -A -s SjumpsCF -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,14,ASCII,1,0'
dhtadm -A -s Sterm -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,15,ASCII,1,0'
dhtadm -A -s SbootURI -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,16,ASCII,1,0'
dhtadm -A -s SHTTPproxy -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,17,ASCII,1,0'
# Load some useful Macro definitions.
# Define all Solaris-generic options under this macro named Solaris.
dhtadm -A -m Solaris -d \
':SrootIP4=10.21.0.2:SrootNM="blue2":SinstIP4=10.21.0.2:SinstNM="red5":'
# Define all sparc-platform specific options under this macro named sparc.
dhtadm -A -m sparc -d \
':SrootPTH="/export/sparc/root":SinstPTH="/export/sparc/install":'
# Define all sun4u architecture-specific options under this macro named sun4u. 
#  (Includes Solaris and sparc macros.)
dhtadm -A -m sun4u -d ':Include=Solaris:Include=sparc:'
# Solaris on IA32-platform-specific parameters are under this macro named i86pc.
# Note that this macro applies only for the Solaris 10 3/05 release.
dhtadm -A -m i86pc -d \
':Include=Solaris:SrootPTH="/export/i86pc/root":SinstPTH="/export/i86pc/install"\
:SbootFIL="/platform/i86pc/kernel/unix":'
# Solaris on IA32 machines are identified by the "SUNW.i86pc" class. All
# clients identifying themselves as members of this class will see these
# parameters in the macro called SUNW.i86pc, which includes the i86pc macro.
# Note that this class only applies for the Solaris 10 3/05 release.
dhtadm -A -m SUNW.i86pc -d ':Include=i86pc:'
# Sun-Blade-1000 platforms identify themselves as part of the 
# "SUNW.Sun-Blade-1000" class.
# All clients identifying themselves as members of this class
#  will see these parameters.
dhtadm -A -m SUNW.Sun-Blade-1000 -d \
':SbootFIL="/platform/sun4u/kernel/sparcv9/unix":\
Include=sun4u:'
# Sun-Fire-880 platforms identify themselves as part of the "SUNW.Sun-Fire-880" class.
# All clients identifying themselves as members of this class will see these parameters.
dhtadm -A -m SUNW.Sun-Fire-880 -d \
':SbootFIL="/platform/sun4u/kernel/sparcv9/unix":Include=sun4u:'
# Add our boot server IP to each of the network macros for our topology served by our
# DHCP server. Our boot server happens to be the same machine running our DHCP server.
dhtadm -M -m 10.20.64.64 -e BootSrvA=10.21.0.2
dhtadm -M -m 10.20.64.0 -e BootSrvA=10.21.0.2
dhtadm -M -m 10.20.64.128 -e BootSrvA=10.21.0.2
dhtadm -M -m 10.21.0.0 -e BootSrvA=10.21.0.2
dhtadm -M -m 10.22.0.0	-e BootSrvA=10.21.0.2
# Make sure we return host names to our clients.
dhtadm -M -m DHCP-servername -e Hostname=_NULL_VALUE_
# Create a macro for PXE clients that want to boot from our boot server.
# Note that this macro applies for the Solaris 10 3/05 release.
dhtadm -A -m PXEClient:Arch:00000:UNDI:002001 -d \
:BootFile=nbp.i86pc:BootSrvA=10.21.0.2:
# Create a macro for PXE clients that want to boot from our boot server.
# Note that this macro applies for the Solaris 10 2/06 release.
dhtadm -A -m PXEClient:Arch:00000:UNDI:002001 -d \
:BootFile=i86pc:BootSrvA=10.21.0.2:
# Create a macro for the x86 based client with the Ethernet address 00:07:e9:04:4a:bf 
# to install from the network by using PXE.
dhtadm -A -m 010007E9044ABF -d :BootFile=010007E9044ABF:BootSrvA=10.21.0.2:
# The client with this MAC address is a diskless client. Override the root settings
# which at the network scope setup for Install with our client's root directory.
dhtadm -A -m 0800201AC25E -d \
':SrootIP4=10.23.128.2:SrootNM="orange-svr-2":SrootPTH="/export/root/10.23.128.12":'

以超级用户的身份在批处理模式下执行 dhtadm。指定脚本名称,以将选项和宏添加到您的 dhcptab 中。例如,如果您的脚本名称为 netinstalloptions,则键入以下命令。


# dhtadm -B netinstalloptions

现在,具有 Vendor= 字符串中列出的供应商客户机类的客户机可以使用 DHCP 通过网络进行安装了。

有关如何使用 dhtadm 命令的更多信息,请参见 dhtadm(1M)。有关 dhcptab 文件的更多信息,请参见 dhcptab(4)。