本章介绍如何在 Oracle Solaris 操作系统 (Oracle Solaris OS) 中管理无盘客户机。
无法在装有 Oracle Solaris ZFS 根文件系统的系统上使用 smosservice 和 smdiskless 命令。这是所有支持安装 ZFS 根文件系统的 Solaris 发行版的一个已知问题。
可以使用 Solaris Flash 安装功能快速置备运行 UFS 根文件系统或 ZFS 根文件系统的系统。有关更多信息,请参见 《Oracle Solaris ZFS 管理指南》中的“安装 ZFS 根文件系统(Oracle Solaris Flash 归档文件安装)”。
以下列出本章所介绍的信息:
有关无盘客户机管理的概述信息,请参见第 6 章。
下表提供了管理无盘客户机所需的过程。
任务 |
说明 |
参考 |
---|---|---|
1.(可选)启用 Solaris Management Console 日志记录,以查看无盘客户机错误消息。 |
从控制台主窗口中选择“日志查看器”,以查看无盘客户机错误消息。 | |
2. 准备添加无盘客户机。 |
验证支持的发行版,并确定平台、介质路径和每台无盘客户机的簇(或软件组)。 | |
3. 向 OS 服务器添加所需的 OS 服务。 |
使用 smosservice 命令为要支持的无盘客户机添加 OS 服务。必须确定平台、介质路径和要支持的每个无盘客户机平台。 | |
4. 找到并安装在向服务器添加 OS 服务时缺失的所有 ARCH=all 软件包。 注 – 要避免单独向每台无盘客户机添加这些软件包,请在添加无盘客户机支持之前执行此任务。 |
smosservice add 命令不会安装指定为 ARCH=all 的任何根目录 (/) 或 /usr 软件包。向 OS 服务器添加 OS 服务后,必须手动安装这些软件包。 | |
5. 添加无盘客户机。 |
使用 smdiskless 命令指定所有必需的信息,来添加无盘客户机支持。 | |
6. 引导无盘客户机。 |
通过引导无盘客户机,验证是否成功添加了无盘客户机。 | |
7. (可选)删除无盘客户机支持。 |
如果不再需要无盘客户机支持,请将其删除。 | |
8.(可选)删除无盘客户机的 OS 服务。 |
如果不再需要无盘客户机的 OS 服务,请将其删除。 | |
9. (可选)修补 OS 服务。 |
添加、删除、列出或同步无盘客户机 OS 服务的修补程序。 |
以下各节介绍管理无盘客户机的必要准备工作。
管理无盘客户机时,请牢记以下要点:
Oracle Solaris 安装程序不会提示您设置无盘客户机支持。必须手动创建一个 /export 分区,以支持无盘客户机。可以在安装期间或安装之后创建 /export 分区。
/export 分区大小最小为 5 GB,具体取决于支持的客户机数目。有关特定信息,请参见 OS 服务器的磁盘空间要求。
smosservice 或 smdiskless 命令中指定的名称服务必须与 /etc/nsswitch.conf 文件中指定的主名称服务匹配。如果没有在 smdiskless 或 smosservice 命令中指定名称服务,则缺省的名称服务为 files。
请对 smosservice 和 smdiskless 命令使用 -D 选项来指定名称服务器。有关更多信息,请参见 smosservice(1M) 和 smdiskless(1M) 手册页。
从 Solaris 10 8/07 发行版开始,在 Oracle Solaris 10 中提供的 set_nfs4_domain 脚本将不再用来设置 NFSv4 域。要设置 NFSv4 域,请将 nfs4_domain 关键字添加到无盘客户机的 sysidcfg 文件(例如,server:/export/root/client/etc/sysidcfg)中。
如果客户机系统的 sysidcfg 文件中存在 nfs4_domain 关键字,则首次引导无盘客户机时会对域进行相应的设置。另外,OS 服务器应当已启动且正常运行,无盘客户机的 NFSv4 域设置必须与 OS 服务器的 /var/run/nfs4_domain 文件中的设置相匹配。
有关更多信息,请参见 《Oracle Solaris 10 9/10 安装指南:基于网络的安装》中的“使用 sysidcfg 文件进行预配置”。
OS 服务器和无盘客户机必须位于同一子网中。
您不能在多 TB UFS 文件系统上提供客户机服务,因为不能向位于具有 EFI 标签的磁盘上的 UFS 文件系统中添加 OS 和无盘客户机服务。
如果尝试向位于具有 EFI 标签的磁盘上的 UFS 文件系统中添加 OS 和无盘客户机服务,则会生成有关磁盘空间不足的错误消息,如下所示:
The partition /export does not have enough free space. 1897816 KB (1853.34 MB) additional free space required. Insufficient space available on /dev/dsk/c0t5d0s0 /export |
在确定平台、介质路径和每台无盘客户机的簇之后,便可以添加 OS 服务。
系统将为添加的每项 OS 服务创建并填充以下目录:
/export/Solaris_version /Solaris_version-instruction-set .all(指向 /export/exec/Solaris_ version/Solaris_version-instruction-set .all 的符号链接)
/export/Solaris_version
/export/Solaris_version/var
/export/Solaris_version/opt
/export/share
/export/root/templates/Solaris_version
/export/root/clone
/export/root/clone/Solaris_version
/export/root/clone/Solaris_version/ machine-class
系统将在 OS 服务器上为添加的每台无盘客户机创建并填充以下缺省目录:
/export/root/diskless-client
/export/swap/diskless-client
/tftpboot/diskless-client-ipaddress-in-hex/export/dump/diskless-client(如果指定了 -x dump 选项)
可通过使用 smosservice 和 smdiskless 命令在 -x 选项下修改根(/)、 /swap 和 /dump 目录的缺省位置。但是,请不要在 /export 文件系统下创建这些目录。
使用以下过程可进行添加无盘客户机的准备工作。此过程包括基于 x86 系统的一般信息。
使用 smosservice add 命令添加 OS 服务时,必须指定平台、介质路径和要支持的每台无盘客户机平台的簇(或软件组)。
请确保要作为 OS 服务的系统正在运行受支持的发行版。此外,还应验证 OS 服务器发行版和无盘客户机发行版的组合是否受支持。有关更多信息,请参见 OS 服务器和无盘客户机支持信息。
使用以下格式标识无盘客户机平台:
instruction-set.machine-class.Solaris-version
例如:
i386.i86pc.Solaris_10
以下是可能的平台选项:
指令集 |
机器类 |
Solaris 版本 |
---|---|---|
sparc |
sun4v sun4u、sun4m、sun4d 和 sun4c |
从 Solaris 10 1/06 OS 开始 Oracle Solaris 10、Solaris 9 和 Solaris 8 |
i386 |
i86pc |
Oracle Solaris 10、Solaris 9 和 Solaris 8 |
sun-4c 体系结构在 Solaris 8、Solaris 9 或 Oracle Solaris 10 中不受支持。sun-4d 体系结构在 Solaris 9 或 Oracle Solaris 10 中不受支持。sun-4m 体系结构在 Oracle Solaris 10 OS 中不受支持。
标识介质路径。
介质路径是指向磁盘映像的全路径,该磁盘映像包含要为无盘客户机安装的 OS。
在某些 Oracle Solaris 发行版中,OS 在多个 CD 上交付。但是,不能使用 smosservice 命令从多张 CD 分发装入 OS 服务。必须运行位于 Oracle Solaris 软件 CD(以及可选的语言 CD)或 Oracle Solaris DVD 上的脚本,如以下步骤中所述:
在该 Oracle Solaris 发行版中,软件仅在 DVD 上交付。
在服务器上创建安装映像。
有关设置安装服务器的信息,请参阅 《Oracle Solaris 10 9/10 安装指南:基于网络的安装》。
从 CD 或 DVD 映像装入所需的 OS 服务。
如果您运行的 Oracle Solaris 发行版是在多个 CD 上交付的,则使用以下脚本的其中之一:
CD 1-/cdrom/cdrom0/Solaris_10/Tools/setup_install_server
其他 Oracle Solaris 软件 CD -/cdrom/cdrom0/Solaris_10/Tools/add_to_install_server
Language CD-/cdrom/cdrom0/Solaris_10/Tools/add_to_install_server
例如,如果正在本地连接的 CD-ROM 设备上使用 Oracle Solaris Software 1 CD 中的 setup_install_server 脚本,则语法如下所示:
# mkdir /export/install/sol_10_x86 # cd /cd_mount_point/Solaris_10/Tools # ./setup_install_server /export/install/sol_10_x86 |
向 DHCP 服务器配置添加 BootFile 和 BootSrvA DHCP 选项,以启用 PXE 引导。
例如:
Boot server IP (BootSrvA) : svr-addr (BootFile) : 01client-macro |
其中,svr-addr 是 OS 服务器的 IP 地址,且 client-macro 以客户机的以太网类型 (01) 和客户机的介质访问控制 (Media Access Control, MAC) 地址进行命名。此编号也是在安装服务器上的 /tftpboot 目录中使用的文件的名称。
client-macro 表示法由大写字母组成。此表示法不应包含任何冒号。
可以通过命令行或使用 DHCP 管理器来添加以下选项。有关更多信息,请参见 示例 7–4。
有关更多信息,请参见x86: 如何从网络执行基于 GRUB 的引导、《Oracle Solaris 10 9/10 安装指南:基于网络的安装》中的“使用 DHCP 服务预配置系统配置信息(任务)” 和 《系统管理指南:IP 服务》中的第 III 部分, “DHCP”。
在磁盘上安装 Oracle Solaris 映像后,请记录磁盘介质路径。例如:
/net/export/install/sol_10_x86 |
这是在使用 smosservice 命令时需要指定的磁盘介质路径。
添加 OS 服务时,请标识 SUNWCXall 簇。
在同一系统上运行同一 OS 的无盘客户机必须使用同一个簇。
请始终将簇指定为 SUNWCXall。
使用 smosservice add 命令添加 OS 服务时,必须指定平台、介质路径和要支持的每台无盘客户机平台的簇(或软件组)。
请确保要作为 OS 服务的系统正在运行受支持的发行版。此外,还应验证 OS 服务器发行版和无盘客户机发行版的组合是否受支持。有关更多信息,请参见OS 服务器和无盘客户机支持信息。
使用以下格式标识无盘客户机平台:
instruction-set.machine-class.Solaris- version
例如:
sparc.sun4u.Solaris_10
以下是可能的平台选项:
instruction-set |
machine-class |
Solaris_version |
---|---|---|
sparc |
sun4v sun4c、sun4d、sun4m、sun4u |
从 Solaris 10 1/06 OS 开始 Solaris_10、Solaris_9 和 Solaris_8 |
i386 |
i86pc |
Solaris_10、Solaris_9 和 Solaris_8 |
sun-4c 体系结构在 Solaris 8、Solaris 9 或 Oracle Solaris 10 中不受支持。sun-4d 体系结构在 Solaris 9 或 Oracle Solaris 10 中不受支持。sun-4m 体系结构在 Oracle Solaris OS 中不受支持。
标识介质路径。
介质路径是指向磁盘映像的全路径,该磁盘映像包含要为无盘客户机安装的 OS。
在某些 Oracle Solaris 发行版中,OS 在多个 CD 上交付。但是,不能使用 smosservice 命令从多张 CD 分发装入 OS 服务。必须运行位于 Solaris 软件 CD(以及可选的语言 CD)或 DVD 上的脚本,如以下步骤中所述:
在该 Oracle Solaris 发行版中,软件仅在 DVD 上交付。
在服务器上创建安装映像。
有关设置安装服务器的信息,请参阅《Oracle Solaris 10 9/10 安装指南:基于网络的安装》。
从 CD 或 DVD 映像装入所需的 OS 服务。
如果正在运行的 Oracle Solaris 发行版是在多个 CD 上交付 OS 的,则使用以下脚本的其中之一:
CD 1-/cdrom/cdrom0/Solaris_10/Tools/setup_install_server
其他 Solaris Software CD-/cdrom/cdrom0/Solaris_10/Tools/add_to_install_server
Language CD-/cdrom/cdrom0/Solaris_10/Tools/add_to_install_server
例如,如果正在本地连接的 CD-ROM 设备上使用 Oracle Solaris Software 1 CD 中的 setup_install_server 脚本,则语法如下所示:
# mkdir /export/install/sparc_10 # cd /cd_mount_point/Solaris_10/Tools # ./setup_install_server /export/install/sparc_10 |
在磁盘上安装 Oracle Solaris CD 或 DVD 映像后,请指定磁盘介质路径。例如:
/export/install/sparc_10 |
添加 OS 服务时,请标识 SUNWCXall 簇。
在同一系统上运行同一 OS 的无盘客户机必须使用同一个簇。
例如,请考虑以下 Solaris 9 无盘客户机:
sparc.sun4m.Solaris_9
sparc.sun4u.Solaris_9
要设置这些无盘客户机,可能需要为每台无盘客户机指定 SUNWCXall 簇,因为 sun4u 和 sun4m 系统需要 SUNWCXall 簇。此外,在同一系统上运行同一操作发行版(在本示例中为 Solaris_9)的无盘客户机必须使用同一个簇。
如果使用的是 sun4u 系统,或如果使用的是具有加速 8 位彩色内存帧缓冲区 (cgsix) 的系统,则必须将簇指定为 SUNWCXall。
请使用以下过程为服务器上的无盘客户机添加 OS 服务。
使用 smosservice add 命令添加 OS 服务时,系统不会安装 ARCH=all 类型的根目录 (/) 和 /usr 软件包。而是跳过这些软件包。屏幕上不会显示任何警告或错误消息。向 OS 服务器添加 OS 服务后,必须手动安装缺失的软件包。有关说明,请参见How to Locate and Install Missing ARCH=all Packages。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
验证 Solaris Management Console 服务器是否正在运行,并验证无盘客户机工具在系统上是否可用。
# /usr/sadm/bin/smosservice list -H host-name:898 -- |
# /usr/sadm/bin/smosservice add -H host-name :898 -- -o host-name -x mediapath=path -x platform= instruction-set.machine-class .Solaris_version -x cluster=cluster-name -x locale=locale-name |
添加指定的 OS 服务。
指定主机名和要连接的端口。如果不指定端口,系统将连接至缺省端口 898。
使用 smossservice 命令添加 OS 服务时,-H 选项不是必需的选项。
确定子命令参数在该时间点后是否启动。
指定 Solaris 映像的全路径。
指定要添加的指令体系结构、计算机类和 Solaris 版本。
指定要安装的 Solaris 簇。
指定要安装的语言环境。
根据服务器速度和所选的 OS 服务配置,安装过程大约需要 45 分钟。
有关更多信息,请参见 smosservice(1M) 手册页。
(可选)继续添加其他 OS 服务。
完成 OS 服务添加后,请验证是否已安装了 OS 服务。
# /usr/sadm/bin/smosservice list -H host-name:898 -- |
本示例说明如何在服务器 jupiter 上添加基于 Solaris 10 SPARC 的 OS 服务。服务器 jupiter 运行的是 Oracle Solaris OS。基于 Oracle Solaris 10 SPARC 的 OS 的 CD 映像位于安装服务器 myway 的 /export/s10/combined.s10s_u2wos/61 中。
# /usr/sadm/bin/smosservice add -H jupiter:898 -- -o jupiter -x mediapath=/net/myway/export/s10/combined.s10s_u2wos/61 -x platform=sparc.sun4u.Solaris_10 -x cluster=SUNWCXall -x locale=en_US # /usr/sadm/bin/smosservice list - H jupiter:898 Authenticating as user: root Type /? for help, pressing enter accepts the default denoted by [ ] Please enter a string value for: password :: xxxxxx Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli from jupiter:898 Login to jupiter as user root was successful. Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from jupiter:898 was successful. |
本示例说明如何在服务器 orbit 上添加基于 Solaris 10 x86 的 OS 服务。服务器 orbit 运行的是 Oracle Solaris OS。基于 Oracle Solaris 10 x86 的 OS 的 CD 映像位于安装服务器 seriously 的 /export/s10/combined.s10x_u2wos/03 中。
# /usr/sadm/bin/smosservice add -H orbit:898 -- -o orbit -x mediapath=/net/seriously/export/s10u2/combined.s10x_u2wos/03 -x platform=i386.i86pc.Solaris_10 -x cluster=SUNWCXall -x locale=en_US # /usr/sadm/bin/smosservice list - H orbit:898 Type /? for help, pressing <enter> accepts the default denoted by [ ] Please enter a string value for: password :: Starting Solaris Management Console server version 2.1.0. endpoint created: :898 Solaris Management Console server is ready. Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli from orbit:898 Login to orbit as user root was successful. Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from orbit:898 was successful. Client Root Area Swap Area Dump Area -------------------------------------------------------------------------------- . . . # |
找到运行 smosservice add 命令向 OS 服务器添加 OS 服务时缺失的所有 ARCH=all 软件包,然后进行安装。有关更多信息,请参见How to Locate and Install Missing ARCH=all Packages。
从 Solaris 10 1/06 发行版开始,在添加了 OS 服务后,请使用以下过程添加无盘客户机。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
添加无盘客户机。
# /usr/sadm/bin/smdiskless add -- -i ip-address -e ethernet-address -n client-name -x os= instruction-set.machine-class.Solaris_ version -x root=/export/root/client-name -x swap=/export/swap/client-name -x swapsize=size -x tz= time-zone -x locale= locale-name |
添加指定的无盘客户机。
确定子命令参数在该时间点后是否启动。
标识无盘客户机的 IP 地址。
标识无盘客户机的以太网地址。
指定无盘客户机的名称。
指定无盘客户机的指令体系结构、计算机类、OS 和 Solaris 版本。
标识无盘客户机的根目录 (/)。
标识无盘客户机的交换文件。
指定交换文件的大小(以 MB 为单位)。缺省值为 24 MB。
指定无盘客户机的时区。
指定要为无盘客户机安装的语言环境。
有关更多信息,请参见 smdiskless(1M) 手册页。
如果尚未创建,请向 DHCP 服务器配置中添加 BootSrva 和 BootFile DHCP 选项,以启用 PXE 引导。
例如:
Boot server IP (BootSrvA) : svr-addr Boot file (BootFile) : 01client-macro |
其中,svr-addr 是服务器的 IP 地址,且 client-macro 以客户机的以太网类型 (01) 和客户机的 MAC 地址进行命名。此编号也是在安装服务器上的 /tftpboot 目录中使用的文件的名称。
client-macro 表示法由大写字母组成。该表示法不应包含任何冒号。
以下文件和目录是在 /tftpboot 目录中创建的。
drwxr-xr-x 6 root sys 512 Dec 28 14:53 client-host-name lrwxrwxrwx 1 root root 31 Dec 28 14:53 menu.lst.01ethernet-address -> /tftpboot/client-host-name/grub/menu.lst -rw-r--r-- 1 root root 118672 Dec 28 14:53 01ethernet-address |
如果控制台在串行端口上,编辑 /tftpboot/menu.lst.01 ethernet-address 文件以取消对指定 tty 设置的行的注释。
有关更多信息,请参见从网络引导基于 x86 的系统。
验证是否已安装无盘客户机。
# /usr/sadm/bin/smdiskless list -H host-name:898 -- |
(可选)继续使用 smdiskless add 命令添加每台无盘客户机。
本示例说明如何添加基于 Solaris 10 x86 的无盘客户机 mikey1。
rainy-01# /usr/sadm/bin/smdiskless add -H sdts-01-qfe0 -- -o sdts-01-qfe0 -n mikey1 -i 192.168.20.22 -e 00:E0:88:55:33:BC -x os=i386.i86pc.Solaris_10 -x root=/export/root/mikey1 -x swap=/export/swap/mikey1 Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli from sdts-01-qfe0 Login to rainy-01-qfe0 as user root was successful. Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from rainy-01-qfe0 was successful. # /usr/sadm/bin/smdiskless list -H mikey1:898 -- Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli from mikey1:898 Login to mikey1 as user root was successful. Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from mikey1:898 was successful. Platform -------------------------------------------------------------------------------- i386.i86pc.Solaris_10 sparc.sun4us.Solaris_10 sparc.sun4u.Solaris_10 i386.i86pc.Solaris_9 |
本示例说明如何添加启用 PXE 引导所必需的 BootSrva 和 BootFile DHCP 选项。
rainy-01# pntadm -A mikey1 -m 0100E0885533BC -f 'MANUAL+PERMANENT' \ -i 0100E0885533BC 192.168.0.101 |
rainy-01# dhtadm -A -m 0100E0885533BC -d \ ":BootSrvA=192.168.0.1:BootFile=0100E0885533BC:" |
在前面的示例中,服务器地址是服务器的 IP 地址,客户机宏以客户机的以太网类型 (01) 及其 MAC 地址进行命名。此编号也是在安装服务器上的 /tftpboot 目录中使用的文件的名称。请注意,客户机宏的表示法由大写字母组成且不应包含任何冒号。
添加 OS 服务后,请使用以下过程添加无盘客户机。除非另行说明,否则此过程包括的一般信息适用于 SPARC 和 x86 平台。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
添加无盘客户机。
# /usr/sadm/bin/smdiskless add -- -i ip-address -e ethernet-address -n client-name -x os= instruction-set.machine-class.Solaris_ version -x root=/export/root/client-name -x swap=/export/swap/client-name -x swapsize=size -x tz= time-zone -x locale= locale-name |
添加指定的无盘客户机。
确定子命令参数在该时间点后是否启动。
标识无盘客户机的 IP 地址。
标识无盘客户机的以太网地址。
指定无盘客户机的名称。
指定无盘客户机的指令体系结构、计算机类、OS 和 Solaris 版本。
标识无盘客户机的根目录 (/)。
标识无盘客户机的交换文件。
指定交换文件的大小(以 MB 为单位)。缺省值为 24 MB。
指定无盘客户机的时区。
指定要为无盘客户机安装的语言环境。
有关更多信息,请参见 smdiskless(1M) 手册页。
(可选)继续使用 smdiskless add 命令添加每台无盘客户机。
验证是否已安装无盘客户机。
# /usr/sadm/bin/smdiskless list -H host-name:898 -- |
本示例说明如何使用服务器 bearclaus 添加 Solaris 10 sun4u 无盘客户机 starlite。
# /usr/sadm/bin/smdiskless add -- -i 172.20.27.28 -e 8:0:20:a6:d4:5b -n starlite -x os=sparc.sun4u.Solaris_10 -x root=/export/root/starlite -x swap=/export/swap/starlite -x swapsize=128 -x tz=US/Mountain -x locale=en_US # /usr/sadm/bin/smdiskless list -H starlite:898 -- Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli from line2-v480:898 Login to line2-v480 as user root was successful. Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from line2-v480:898 was successful. Platform -------------------------------------------------------------------------------- i386.i86pc.Solaris_10 sparc.sun4us.Solaris_10 sparc.sun4u.Solaris_10 i386.i86pc.Solaris_9 sparc.sun4m.Solaris_9 sparc.sun4u.Solaris_9 sparc.sun4us.Solaris_9 |
请注意,smdiskless list -H 命令输出列出了基于 SPARC 和基于 x86 的系统。
本示例说明如何从服务器 bearclaus 添加基于 Oracle Solaris 10 x86 的无盘客户机 mars。
# /usr/sadm/bin/smdiskless add -- -i 172.20.27.176 -e 00:07:E9:23:56:48 -n mars -x os=i386.i86pc.Solaris_10 -x root=/export/root/mars -x swap=/export/swap/mars -x swapsize=128 -x tz=US/Mountain -x locale=en_US |
如果已安装 Solaris 10 1/06 OS 或更高版本或已将系统升级到 Solaris 10 1/06 OS 或更高版本,则引导无盘客户机的过程已发生变化。请按照以下步骤使用 GRUB 引导无盘客户机。
从 Solaris 10 6/06 发行版开始,引导故障安全归档文件时,系统不会再提示您自动更新引导归档文件。仅在检测到不一致的引导归档文件时,系统才会提示您更新引导归档文件。有关更多信息,请参见如何在故障安全模式下引导基于 x86 的系统。
要确保系统从网络进行引导,请验证 OS 服务器上的以下先决条件:
确认用于添加无盘客户机和 OS 服务的名称服务与服务器的 /etc/nsswitch.conf 文件中的主名称匹配。
验证 DHCP 和 tftp 引导设备是否处于运行状态。
通过启用 PXE ROM 选项,将系统 BIOS 配置为从网络引导系统。
某些带有 PXE 功能的网络适配器具有一种功能,即,如果您在简短的引导提示符下敲击某一特定按键,将启动 PXE 引导。有关如何在 BIOS 中设置引导优先级的信息,请参见您的硬件文档。
通过键入正确的键组合,来引导无盘客户机。
此时将显示 GRUB 菜单。
系统上显示的 GRUB 菜单可能不同于此处显示的 GRUB 菜单,具体取决于网络安装服务器的配置。
如果没有进行选择,则几秒钟后会自动引导缺省的 OS 实例。
如果需要通过在引导时编辑 GRUB 菜单来修改 GRUB 内核行为,请使用方向键选择引导项,然后键入 e 以编辑该项。
要编辑的引导命令显示在 GRUB 编辑屏幕中。
有关在引导时修改内核行为的更多信息,请参见第 11 章。
要保存所做的编辑并返回上一页菜单,请按 Enter 键。
此时将显示 GRUB 菜单,显示已对引导命令所做的编辑。
键入 b 从网络引导系统。
验证 OS 服务器上的以下先决条件:
确认用于添加无盘客户机和 OS 服务的名称服务与服务器的 /etc/nsswitch.conf 文件中的主名称匹配。
否则,无盘客户机将不引导。
确认 rpc.bootparamd 守护进程处于运行状态。如果进程没有运行,请启动该进程。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
删除无盘客户机支持。
# /usr/sadm/bin/smdiskless delete -- -o host-name :898 -n client-name |
验证无盘客户机支持是否已删除。
# /usr/sadm/bin/smosservice list -H host-name:898 -- |
本示例说明如何从 OS 服务器 starlite 中删除无盘客户机 holoship。
# /usr/sadm/bin/smdiskless delete -- -o starlite:898 -n holoship Authenticating as user: root Type /? for help, pressing enter accepts the default denoted by [ ] Please enter a string value for: password :: Starting SMC server version 2.0.0. endpoint created: :898 SMC server is ready. # /usr/sadm/bin/smosservice list -H starlite:898 -- Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli from starlite Login to starlite as user root was successful. Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from starlite was successful. |
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
# /usr/sadm/bin/smosservice delete -H $HOST:$PORT -u root -p $PASSWD -- -x instruction-set.all.Solaris_version |
仅支持 machine-class 属性的 all 值。
验证 OS 服务是否已删除。
# /usr/sadm/bin/smosservice list -H host-name:898 -- |
以下示例说明如何从服务器 starlite 中删除无盘客户机 OS 服务 (sparc.all.Solaris_10)。
# /usr/sadm/bin/smosservice delete -H starlite:898 -u root \ -p xxxxxx -- -x sparc.all.solaris_10 Authenticating as user: root Type /? for help, pressing enter accepts the default denoted by [ ] Please enter a string value for: password :: # /usr/sadm/bin/smosservice list -H starlite:898 -- Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli from starlite:898 Login to starlite as user root was successful. Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from starlite:898 was successful |
可以使用 smosservice patch 命令来执行以下操作:
在 OS 服务器上建立 /export/diskless/Patches 修补程序假脱机目录。
向修补程序假脱机目录添加修补程序。如果正在添加的修补程序比假脱机目录中的现有修补程序早,则废弃的修补程序将被移至 /export/diskless/Patches/Archive。
从修补程序假脱机目录中删除修补程序。
列出修补程序假脱机目录中的修补程序。
使假脱机的修补程序与客户机同步。请注意:必须重新引导每台同步客户机,才能使客户机识别出修补程序更新。
及时安装建议的 OS 修补程序,使 OS 服务器始终保持最新状态。
有关下载修补程序的信息,请参见如何下载和应用修补程序。
根据修补程序的类型,无盘客户机修补程序记录在不同的目录中。
内核修补程序记录在无盘客户机的 /var/sadm/patch 目录中。要显示内核修补程序,请在无盘客户机中键入以下命令:
% patchadd –p |
运行此命令时,必须登录到无盘客户机。在 OS 服务器上运行 patchadd -p 命令时,只显示适用于该 OS 服务器的内核修补程序。
/usr 修补程序记录在 OS 服务器的 /export/Solaris_version/var/patch 目录中。将为每个修补程序 CD 创建一个目录。要显示 /usr 修补程序,请在 OS 服务器上键入以下命令:
% patchadd -S Solaris_version -p Patch: 111879-01 Obsoletes: Requires: Incompatibles: Packages: SUNWwsr |
要按 OS 和体系结构列出所有的假脱机修补程序,请结合使用 smosservice 命令和 -P 选项。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
登录到无盘客户机系统,然后将其关闭。
# init 0 |
向假脱机目录添加修补程序。
# /usr/sadm/bin/smosservice patch -- -a /var/patches/ patch-ID-revision |
如果要添加的修补程序依赖于其他修补程序,则添加修补程序失败时会出现以下消息:
The patch patch-ID-revision could not be added because it is dependent on other patches which have not yet been spooled. You must add all required patches to the spool first. |
验证修补程序是否已假脱机。
# /usr/sadm/bin/smosservice patch -- -P |
将假脱机的修补程序推送至无盘客户机。
# /usr/sadm/bin/smosservice patch -- -m -U |
将一个修补程序推送至无盘客户机并使其与无盘客户机同步可能需要长达 90 分钟的时间。
验证修补程序是否适用于无盘客户机。
# /usr/sadm/bin/smosservice patch -- -P |
本示例说明如何向服务器上的无盘客户机的 OS 服务添加 Solaris 8 修补程序 (111879-01)。
# /usr/sadm/bin/smosservice patch -- -a /var/patches/111879-01 Authenticating as user: root Type /? for help, pressing <enter> accepts the default denoted by [ ] Please enter a string value for: password :: Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli from starlite Login to starlite as user root was successful. Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from starlite was successful.. . # /usr/sadm/bin/smosservice patch -- -P Patches In Spool Area Os Rel Arch Patch Id Synopsis ------------------------------------------------------------------------- 8 sparc 111879-01 SunOS 5.8: Solaris Product Registry patch SUNWwsr Patches Applied To OS Services Os Service Patch ------------------------------------------------------------------------- Solaris_8 Patches Applied To Clone Areas Clone Area Patch ------------------------------------------------------------------------- Solaris_8/sun4u Patches In Spool Area Os Rel Arch Patch Id Synopsis ---------------------------------------------------------------------------- 8 sparc 111879-01 SunOS 5.8: Solaris Product Registry patch SUNWwsr . . . # /usr/sadm/bin/smosservice patch -- -m -U Authenticating as user: root Type /? for help, pressing <enter> accepts the default denoted by [ ] Please enter a string value for: password :: Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli from starlite Login to starlite as user root was successful. Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from starlite was successful. # /usr/sadm/bin/smosservice patch -- -P Authenticating as user: root . . . Patches In Spool Area Os Rel Arch Patch Id Synopsis ---------------------------------------------------------------------------- 8 sparc 111879-01 SunOS 5.8: Solaris Product Registry patch SUNWwsr Patches Applied To OS Services Os Service Patch ---------------------------------------------------------------------------- Solaris_8 Patches Applied To Clone Areas Clone Area Patch ---------------------------------------------------------------------------- Solaris_8/sun4u |
本节介绍在管理无盘客户机时遇到的问题和可能的解决方法。
smosservice add 命令不会安装在根目录 (/ ) 或 /usr 文件系统中指定为 ARCH=all 的任何软件包。因此,将跳过这些软件包。屏幕上不会显示任何警告或错误消息。必须向新创建的 Oracle Solaris OS 服务手动添加这些软件包。此行为自 Solaris 2.1 OS 以来一直存在。此行为既适用于基于 SPARC 的客户机又适用于基于 x86 的客户机。请注意,根据运行的 Oracle Solaris,缺失的软件包列表会有所不同。
以下过程说明在服务器上创建 Oracle Solaris OS 服务后,如何找到并安装缺失的 ARCH=all 软件包。此过程中提供的示例适用于 Solaris 10 6/06 OS。
找到所有包含 ARCH=all 参数的软件包。
将目录更改为 Oracle Solaris 10 映像介质的 Product 目录。例如:
% cd /net/server/export/Solaris/s10u2/combined.s10s_u2wos/latest/Solaris_10/Product |
列出 pkginfo 文件中包含 ARCH=all 参数的所有软件包。
% grep -w ARCH=all */pkginfo |
如果显示的错误消息指示参数列表太长,则还可以运行以下命令以生成对应的列表:
% find . -name pkginfo -exec grep -w ARCH=all {} /dev/null \; |
请注意,运行此命令需要较长时间才能产生结果。
输出以下类似内容:
./SUNWjdmk-base/pkginfo:ARCH=all ./SUNWjhdev/pkginfo:ARCH=all ./SUNWjhrt/pkginfo:ARCH=all ./SUNWjhdem/pkginfo:ARCH=all ./SUNWjhdoc/pkginfo:ARCH=all ./SUNWmlibk/pkginfo:ARCH=all
通过此列表中提供的信息,可以确定在 /usr 文件系统中安装的软件包以及在根目录 (/) 文件系统中安装的软件包。
检查生成的软件包列表中的 SUNW_PKGTYPE 参数值。
在 pkginfo 文件中,属于 /usr 文件系统的软件包被指定为 SUNW_PKGTYPE=usr。而在 pkginfo 文件中,属于根目录 ( /) 文件系统的软件包被指定为 SUNW_PKGTYPE=root。在前面的输出中,所有的软件包都属于 /usr 文件系统。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
创建临时的安装管理文件。
必须为根目录 (/) 文件系统中安装的软件包和 /usr 文件系统中安装的软件包分别创建一个单独的安装管理文件。
对于 /usr 文件系统中安装的 ARCH=all 软件包,请创建以下临时安装管理文件:
# cat >/tmp/admin_usr <<EOF mail= instance=unique partial=nocheck runlevel=nocheck idepend=nocheck rdepend=nocheck space=nocheck setuid=nocheck conflict=nocheck action=nocheck basedir=/usr_sparc.all EOF # |
对于根目录 (/) 文件系统(如果存在)中安装的 ARCH=all 软件包,请创建以下临时安装管理文件:
# cat >/tmp/admin_root <<EOF mail= instance=unique partial=nocheck runlevel=nocheck idepend=nocheck rdepend=nocheck space=nocheck setuid=nocheck conflict=nocheck action=nocheck EOF # |
安装缺失的 ARCH=all 软件包。
如果当前目录不是 Oracle Solaris 10 映像介质的“Product”目录,请将目录更改为此目录。例如:
# cd /net/server/export/Solaris/s10u2/combined.s10s_u2wos/latest/Solaris_10/Product |
可以运行 pwd 命令,以确定当前目录。
在 /usr 文件系统中安装缺失的 ARCH=all 软件包。
# pkgadd -R /export/Solaris_10 -a /tmp/admin_usr -d `pwd` [ package-A package-B ...] |
运行 pkgadd 命令时,可以列出多个软件包。
检查 ARCH=all 软件包是否已安装。
# pkginfo -R /export/Solaris_10 [package-A package-B ...] |
在根目录 (/) 文件系统中安装缺失的 ARCH=all 软件包。
请注意,这些软件包可能不存在。
# pkgadd -R /export/root/clone/Solaris_10/sun4u -a /tmp/admin_root -d `pwd` [ package-X package-Y ...] |
检查 ARCH=all 软件包是否已安装。
# pkginfo -R /export/root/clone/Solaris_10/sun4u [ package-X package- ...] |
添加完缺失的 ARCH=all 软件包后,请删除临时安装管理文件。
# rm /tmp/administration-file |
本示例说明如何在 /usr 文件系统中安装缺失的 ARCH=all 软件包 SUNWjdmk-base。
% uname -a SunOS t1fac46 5.10 Generic_118833-02 sun4u sparc SUNW,UltraSPARC-IIi-cEngine % cat /etc/release Solaris 10 6/06 s10s_u2wos_03 SPARC Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms. Assembled 06 February 2006 % cd /net/ventor/export/Solaris/s10u2/combined.s10s_u2wos/latest/Solaris_10/Product % grep -w ARCH=all */pkginfo Arguments too long % find . -name pkginfo -exec grep -w ARCH=all {} /dev/null \; ./SUNWjdmk-base/pkginfo:ARCH=all ./SUNWjhdev/pkginfo:ARCH=all ./SUNWjhrt/pkginfo:ARCH=all ./SUNWjhdem/pkginfo:ARCH=all ./SUNWjhdoc/pkginfo:ARCH=all ./SUNWmlibk/pkginfo:ARCH=all % grep -w SUNW_PKGTYPE=usr ./SUNWjdmk-base/pkginfo ./SUNWjhdev/pkginfo ... ./SUNWjdmk-base/pkginfo:SUNW_PKGTYPE=usr ./SUNWjhdev/pkginfo:SUNW_PKGTYPE=usr ./SUNWjhrt/pkginfo:SUNW_PKGTYPE=usr ./SUNWjhdem/pkginfo:SUNW_PKGTYPE=usr ./SUNWjhdoc/pkginfo:SUNW_PKGTYPE=usr % grep -w SUNW_PKGTYPE=root ./SUNWjdmk-base/pkginfo ./SUNWjhdev/pkginfo ... % su Password: xxxxxx # cat >/tmp/admin_usr <<EOFmail= instance=unique partial=nocheck runlevel=nocheck idepend=nochec> k rdepend=nocheck space=nocheck setuid=nocheck conflict=nocheck action=nocheck basedir=/usr_sparc.all EOF # pwd /net/ventor/export/Solaris/s10u2/combined.s10s_u2wos/latest/Solaris_10/Product # pkginfo -R /export/Solaris_10 SUNWjdmk-base ERROR: information for "SUNWjdmk-base" was not found # pkgadd -R /export/Solaris_10 -a /tmp/admin_usr -d `pwd` SUNWjdmk-base Processing package instance <SUNWjdmk-base> </net/ventor/export/Solaris/s10u2/combined.s10s_u2wos... Java DMK 5.1 minimal subset(all) 5.1,REV=34.20060120 Copyright 2005 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Using </export/Solaris_10/usr_sparc.all> ## Processing package information. ## Processing system information. Installing Java DMK 5.1 minimal subset as <SUNWjdmk-base> ## Installing part 1 of 1. 2438 blocks Installation of <SUNWjdmk-base> was successful. # pkginfo -R /export/Solaris_10 SUNWjdmk-base application SUNWjdmk-base Java DMK 5.1 minimal subset # rm /tmp/admin_usr |
本节列出了可能会遇到的一些无盘客户机常见问题和可能的解决方案。
问题:试图登录时,无盘客户机报告“Owner of the module /usr/lib/security/pam_unix_session.so.1 is not root(模块 /usr/lib/security/pam_unix_session.so.1 的属主不是 root)”,/usr 文件系统属 nobody 所有。
解决方法:要更正此问题,请使用以下解决方法:
使用文本编辑器修改无盘客户机的 server:/export/root/client/etc/default/nfs 文件。
将 #NFSMAPID_DOMAIN=domain 行更改为:
NFSMAPID_DOMAIN=the_same_value_as_in_server's_/var/run/nfs4_domain |
确保 OS 服务器和无盘客户机具有相同的 nfsmapid 域。要检验此信息,请检查 /var/run/nfs4_domain 文件。
如果无盘客户机的 nfs4_domain 文件所包含的值不同于 OS 服务器的 /var/run/nfs4_domain 文件中的值,您将无法在无盘客户机引导之后登录系统。
重新引导无盘客户机。
有关更多信息,请参见 《Oracle Solaris Tunable Parameters Reference Manual》中的第 3 章 “NFS Tunable Parameters” 和 nfsmapid(1M)。
问题:OS 服务器无法执行以下操作:
对客户机反向地址解析协议 (Reverse Address Resolution Protocol, RARP) 请求进行响应
对客户机 bootparam 请求进行响应
挂载无盘客户机根目录 (/) 文件系统
以下解决方法适用于文件环境。
验证在 OS 服务器的 /etc/nsswitch.conf 文件中,是否将 files 列为 hosts、ethers 和 bootparams 的第一个源。
检验客户机的 IP 地址是否出现在 /etc/inet/hosts 文件中。
如果所运行的版本低于 Solaris 10 8/07 发行版,则还必须检验客户机的 IP 地址是否出现在 /etc/inet/ipnodes 文件中。
在此 Oracle Solaris 发行版中,/etc/inet/hosts 文件是一个既包含 IPv4 项又包含 IPv6 项的文件。无需在始终要求同步的两个 hosts 文件中维护 IPv4 项。为了实现向后兼容性,/etc/inet/ipnodes 文件已使用指向 /etc/inet/hosts 文件的同名符号链接替代。有关更多信息,请参见 hosts(4) 手册页。
验证客户机的以太网地址是否出现在 /etc/ethers 文件中。
验证 /etc/bootparams 文件是否包含客户机根目录 (/) 和交换区域的以下路径。
client root=os-server:/export/root/ client swap=os-server: /export/swap/client |
根据在添加无盘客户机时是否指定了 -x swapsize 选项,交换大小会有所不同。如果在添加无盘客户机时指定了 -x dump 选项,则将显示以下行。
dump=os-server:/export/dump/client dumpsize=512 |
根据在添加无盘客户机时是否指定了 -x dumpsize 选项,转储大小会有所不同。
验证 OS 服务器的 IP 地址是否出现在 /export/root/ client/etc/inet/hosts 文件中。
OS 服务器无法执行以下操作:
对客户机 RARP 请求进行响应
对客户机 bootparam 请求进行响应
挂载无盘客户机根目录 (/) 文件系统
以下解决方法适用于名称服务环境。
验证 OS 服务器和客户机的以太网地址和 IP 地址是否正确映射。
验证 /etc/bootparams 文件是否包含客户机根目录 (/) 和交换区域的路径。
client root=os-server:/export/ root/client swap=os-server:/export/ swap/client swapsize=24 |
根据在添加无盘客户机时是否指定了 -x swapsize 选项,交换大小会有所不同。如果在添加无盘客户机时指定了 -x dump 选项,则将显示以下行。
dump=os-server:/export/dump/ client dumpsize=24 |
根据在添加无盘客户机时是否指定了 -x dumpsize 选项,转储大小会有所不同。
无盘客户机发出警告音
解决方法:验证以下设置:
OS 服务器的以太网地址是否正确映射到其 IP 地址。如果通过物理方式将系统从一个网络移至另一个网络,可能会忘记重新映射系统的新 IP 地址。
客户机的主机名、IP 地址和以太网地址不在同一子网上的另一台服务器的数据库中,该子网用于对客户机的 RARP、琐碎文件传输协议 (Trivial File Transfer Protocol, TFTP) 或 bootparam 请求进行响应。通常,将测试系统设置为从安装服务器安装其 OS。在此类情况下,安装服务器对客户机的 RARP 或 bootparam 请求进行应答,返回错误的 IP 地址。这个错误的地址可能会导致下载引导程序时出现错误的体系结构,或导致挂载客户机的根目录 (/) 文件系统失败。
传送错误引导程序的安装服务器(或以前的 OS 服务器)不会对无盘客户机的 TFTP 请求进行应答。如果引导程序具有不同的体系结构,则客户机会立即发出警告音。如果引导程序从非 OS 服务器装入,则客户机可能会从非 OS 服务器获取其根目录分区,而从 OS 服务器获取其 /usr 分区。在这种情况下,如果根目录和 /usr 分区的体系结构或版本发生冲突,客户机就会发出警告音。
如果同时使用安装服务器和 OS 服务器,请验证以下项是否存在于 /etc/dfs/dfstab 文件中:
share -F nfs -o -ro /export/exec/Solaris_version- \ instruction-set.all/usr |
其中,version=8、9、10,instruction-set=sparc 或 i386。
验证无盘客户机的根目录 (/)、/swap 和 /dump(如果指定)分区是否具有共享项:
share -F nfs -o rw=client,root=client /export/root/client share -F nfs -o rw=client,root=client /export/swap/ client share -F nfs -o rw=client,root=client /export/dump/ client |
在 OS 服务器上,键入以下命令,以检查共享文件:
% share |
OS 服务器必须共享添加无盘客户机时指定的 /export/root/client 和 /export/swap/client-name(缺省值),或根目录、/swap 和 /dump 分区。
验证以下项是否存在于 /etc/dfs/dfstab 文件中:
share -F nfs -o ro /export/exec/Solaris_version- instruction-set.all/usr share -F nfs -o rw=client,root=client /export/root/ client share -F nfs -o rw=client,root=client /export/swap/ client |
OS 服务器没有对无盘客户机的 RARP 请求进行响应。
解决方法:从客户机的专用 OS 服务器中,以超级用户身份 (root) 使用客户机的以太网地址运行 snoop 命令:
# snoop xx:xx:xx:xx:xx:xx |
引导程序将下载,但在该过程的早期阶段发出警告音
解决方法:使用 snoop 命令验证专用的 OS 服务器是否正在对客户机的 TFTP 和 NFS 请求进行应答。
问题:无盘客户机挂起。
解决方法:在 OS 服务器上重新启动以下守护进程:
# /usr/sbin/rpc.bootparamd # /usr/sbin/in.rarpd -a |
服务器对无盘客户机的 RARP 请求的响应不正确
解决方法:在 OS 服务器上重新启动以下守护进程:
# /usr/sbin/rpc.bootparamd # svcadm enable network/rarp |