BigAdmin System Administration Portal
对适用于 SPARC 平台和 ZFS 的 Solaris 10 操作系统设置 JumpStart
Print-friendly VersionPrint-friendly Version
此内容由 BigAdmin 用户提交。虽然可能会对此内容稍加编辑以增强可读性,但 Sun Microsystems 尚未验证其技术准确性。如果您发现了错误,或者希望对此文章发表评论,请联系提交者,或使用文章底部的评论字段。社区提交可能未遵循 Sun 商标准则。有关 Sun 商标的信息,请参见 http://www.sun.com/suntrademarks/
 
 

对适用于 SPARC 平台和 ZFS 的 Solaris 10 操作系统设置 JumpStart

Lucas Williams,2008 年 1 月

简介

我的设置包括一个 Sun Enterprise 3500 服务器(该服务器运行适用于 SPARC 平台和 ZFS 的 Solaris 10 操作系统)和一个客户机(Sun Netra X1 服务器)。我需要在客户机上安装 Solaris 10 操作系统,以便用于公司即将启动的项目。

希望我的整个操作过程能够帮助需要执行类似操作的所有人。

注意:我使用的是 Solaris 10 08/07 版,但也可以使用 03/05 及其之后的早期版本。

目录

本文介绍了以下主题:

先决条件

请确保以超级用户身份或其他系统管理员身份进行登录。

还应将引导服务器作为 DHCP 服务器。但是,由于我的计算机从其他服务器获取 DHCP,并且我在服务器上设置了静态 IP,因此我没有执行此操作。

此外,还必须使 tftpnfs 服务处于运行状态。在服务器上安装 Solaris 10 操作系统之后,我重新启用了 NFS,但我必须为 tftp 创建服务。幸运的是,这非常简单,因为大部分已设置好了。您只需执行几项快速更改即可,如下所示:

1. 编辑 inetd.conf 文件。如果 vi 很方便使用,则可使用该工具。否则,请使用其他文本编辑器。我从 SSH 终端执行了以下操作,因为我的所有计算机都没有插入监视器或键盘。

# cd /etc
# vi inetd.conf

2. 向下滚动到文件底部,直至出现如下行:

# TFTPD - tftp server (primarily used for booting)
# tftp dgram  udp6  wait root  /usr/sbin/in.tftpd  in.tftpd -s
/tftpboot

3. 将最后一行取消注释并保存文档,使其如下所示:

tftp  dgram  udp6  wait root /usr/sbin/in.tftpd  in.tftpd -s
/tftpboot

4. 键入 :wq 以保存文件并退出 vi

5. 运行 inetconv 以获取添加到服务管理工具 (Service Management Facility, SMF) 的服务:

# inetconv

6. 接下来运行 svcadm 以启用该服务,然后您就可以继续操作了:

# svcadm enable tftpd

现在应设置 ZFS 存储池、复制文件,并设置配置文件(这是一项有趣的操作)。

设置 ZFS 存储池

我在 Solaris JumpStart 服务器上创建了一个新池:

# zpool create install c1t7d0

我有一个未在服务器中使用的备用磁盘,因此我将其作为 Solaris JumpStart 服务器池。此后,我创建了共享。

# zfs create install/config
# zfs create install/boot
# zfs set sharenfs=ro,anon=0 install
# zfs set sharenfs=ro,anon=0 install/config
# zfs set sharenfs=ro,anon=0 install/boot

然后我进行了检查,确保所有目录都处于正确位置,并且所有内容都已正确共享:

# cd /install
# ls -l
drwxr-xr-x   4 root     sys       5 Jan  8 10:25 boot
drwxr-xr-x   2 root     sys       9 Jan  8 10:16 config
#
# share
-               /install   ro,anon=0   ""
-               /install/config   ro,anon=0   ""
-               /install/boot   ro,anon=0   ""

复制文件

接下来,我将 Solaris 10 HW807 SPARC 的第一张 CD 放入 Sun Enterprise 3500 服务器上的 CD-ROM 驱动器中。然后转到该 CD 上的 cdrom 目录并运行 setup_install_server 脚本:

# cd /cdrom/cdrom0/s0/Solaris_10/Tools
# ./setup_install_server /install

脚本运行并将必要的文件复制到 /install 目录。完成后,我转到根目录并弹出 CD:

# cd /
# eject cdrom

然后我将第二张 CD 放入 CD-ROM 驱动器中,转到 Tools 目录,并运行 add_to_install_server 脚本:

# cd /cdrom/cdrom0/Solaris_10/Tools
# ./add_to_install_server /install

我执行了类似的步骤,直到五张操作系统 CD 和语言 CD 的所有文件都被复制到 /install 目录。

我将第 1 张光盘放回 Sun Enterprise 3500 服务器上的 CD-ROM 驱动器中,并转到 Misc 目录。然后复制了 check 脚本,以便使用它来验证计划在后面几个步骤中创建的 profilerules 文件:

# cd /cdrom/cdrom0/s0/Solaris_10/Misc/jumpstart_sample
# cp check /install/config
# cd /install/config

设置配置文件

现在介绍一个有趣的部分,实际上就是编写文件以使 Solaris JumpStart 服务器启动并运行。

可以从光盘复制样例并根据需要进行修改。由于我知道要使用系统执行哪些操作,因此我编写了自己的文件,然后运行 check 脚本来验证文件是否正常工作,并创建 rules.ok 文件。

我创建的第一个文件是 sysidcfg。此文件通知客户机在初始引导后其设置是什么。如果您没有将信息添加到此文件,则系统会让您提供所有请求的信息。我使用 vi/install/config 中创建文件:

# vi sysidcfg
system_locale=en_US.ISO8859-1
timezone=US/Pacific
timeserver=localhost
terminal=vt100
name_service=NONE
security_policy=NONE
root_password=<encrypted password from /etc/shadow>
network_interface=dmfe0 {hostname=<hostname of client>
                         netmask=<your network's netmask>
                         protocol_ipv6=no
                         default_route=<your gateway>}

:wq

接下来是 rules 文件。此文件对我的设置而言非常容易创建,因为我只想设置一个服务器。可以在 rules 文件中设置很多内容。如果您查看 Solaris CD 中包含的 rules 文件样例,即可了解可以在该文件中设置哪些内容。下面是我使用的内容。

# vi rules
hostname <hostname of client> - profile -

:wq

上述代码中必须有两个 "-" 符号,除非您使用 begin 脚本和 finish 脚本。在这种情况下,您可以用脚本名来代替 "-" 符号。

请务必在引导客户机之前使用 chmod 755 更改对脚本的权限。可以在 Solaris CD 的 /Solaris_10/Misc/jumpstart_samples 下的 rules 样例脚本中找到有关此内容的更多信息。

接下来,必须使用在 rules 文件中指定的文件名来创建 profile 文件。您可以感受到相互引用的乐趣。必须使用在 rules 文件中指定的内容作为配置文件的名称。由于我在 rules 文件中将 profile 指定为文件名,因此我的文件名为 profile。我的 profile 文件指定了如何根据分区大小、安装类型和客户机类型设置客户机。

我再次使用 vi 创建文件,但您可以编辑 Solaris CD 上的一系列样例来满足您的需要。了解正确的安装类型非常重要。

cluster 选项根据软件组指定安装类型。下表介绍了可用值。

表 1:软件组和组名的值

精简的网络支持软件组
SUNWCrnet
核心系统支持软件组
SUNWCreq
最终用户 Solaris 软件组
SUNWCuser
开发者 Solaris 软件组
SUNWCprog
完整 Solaris 软件组
SUNWCall
完整 Solaris 软件组加 OEM 支持
SUNWCXall

以下是我使用的内容:

# vi profile
install_type      initial_install
cluster           SUNWCXall
partitioning      explicit
filesys           c0t0d0s0 14000 /
filesys           c0t0d0s1 2048 /var
filesys           c0t0d0s3 1024 swap
filesys           c0t0d0s7 19500 /export/home
system_type       standalone

:wq

下一步是检查工作,以确保我在文件中没有犯下任何错误。为此,我刚刚运行了 check

# ./check

如果一切正常,您的 /install/config 目录中将有一个名为 rules.ok 的文件。

# ls -l
-rwxr-xr-x   1 root     root   59701 Jan  8 10:16 check
-rw-r--r--   1 root     root     232 Jan  8 10:14 profile
-rw-r--r--   1 root     root      32 Jan  8 10:15 rules
-rw-r--r--   1 root     root      57 Jan  8 10:16 rules.ok
-rw-r--r--   1 root     root     278 Jan  8 09:33 sysidcfg

设置服务器以正确引导

现在介绍如何实际设置服务器以进行引导,这一部分内容非常有趣。您必须获取客户机的 MAC 地址。可以采取以下两种方式:在客户机上运行 ifconfig -a,或从 openboot 提示符中获取该地址。

获取 MAC 地址后,请将其添加到您的 /etc/ethers 文件。如果您没有此文件(就像我一样),请继续操作并创建此文件:

# cd /etc
# vi ethers
0a:3b:ba:f5:d1:e6 <client hostname>

:wq

接下来,将客户机添加到您的 /etc/hosts 文件中:

# vi hosts
<ip.address.for.client> <client hostname>

:wq

现在您必须设置引导服务器。请确保在 CD-ROM 中插入 Solaris 10 操作系统的第 1 张光盘,然后再次运行 setup_install_server,此时指定 -b 选项和 /install/boot 目录:

# cd /cdrom/cdrom0/s0/Solaris_10/Tools
# ./setup_install_server -b /install/boot

完成此操作后,您可以弹出 CD:

# cd /
# eject cdrom

设置客户机

现在应设置客户机。我运行了以下命令。我直接从复制的文件(从 CD 的 /install 目录中复制)中运行这些命令。

注意:应从安装映像(而不是 CD)中运行以下命令,这一点非常重要,因为在哪里运行命令决定着客户机将在哪里查找引导映像。如果从 CD 安装,客户机将在 CD 中查找引导映像,除非您正使用 NFS 在服务器上共享 CD-ROM 驱动器,否则该命令将失败。

# cd /install/Solaris_10/Tools
# ./add_install_client -e 0a:3b:ba:f5:d1:e6 -s
<server hostname>:/install -c
<server hostname>:/install/config -p
<server hostname>:/install/config <client hostname>
sun4u

以前的命令将创建所有需要的文件,因此客户机可以引导并找到开始安装 Solaris 操作系统所需的全部内容。下面介绍了标志的含义:

  • -e 指定客户机的 MAC 地址。
  • -s 指定服务器的安装文件的位置。
  • -c 指定 Solaris JumpStart 配置位置。
  • -p 指定 sysidcfg 文件的位置。
  • sun4u 指定客户机的体系结构。

引导客户机

现在您可以引导客户机并使其查找服务器。

注意:在我的 Sun Netra X1 服务器上,我可以通过以下操作到达远程管理 (lights on management, LOM) 控制台,即按下 #, 并在 LOM> 提示符下键入 break。请您根据需要执行相应操作,以到达 OpenBoot 提示符。

在客户机上,请在 OpenBoot OK 提示符下运行以下命令:

ok> boot net - install

当我运行此命令时,客户机连接到我的服务器,下载操作系统,并开始安装该操作系统。我只需通知客户机使用检测到的缺省 IPv4 设置,而其余操作都由客户机执行,包括重新引导以及进入控制台模式。

关于作者

15 年来,Lucas Williams 一直是 UNIX 和 Microsoft Windows 系统管理员。他具备各种形式 Linux、Solaris 操作系统(从版本 2.6 到 10)、Novell Networking,以及 Microsoft Windows NT 3.51 到 Microsoft Windows Server 2008 的使用经验。他编写了用于简化各种系统管理的脚本,并在将新技术部署到生产环境之前对这些技术进行了 Beta 测试。目前,他正在探索如何借助不同方式使用虚拟化技术在生产环境中部署服务器。

The information and links on this page have been provided by a BigAdmin user. The submitter is solely responsible for such information and links. Sun is not responsible for the availability of external sites or resources, and does not endorse and is not responsible or liable for any content, advertising, products, or other materials on or available from such sites or resources. Sun will not be responsible or liable, directly or indirectly, for any actual or alleged damage or loss caused by or in connection with use of or reliance on the information posted here, or goods or services available on or through any external site or resource.
 
 
BigAdmin