系统管理指南:基本管理

第 7 章 管理无盘客户机(任务)

本章介绍如何在 Oracle Solaris 操作系统 (Oracle Solaris OS) 中管理无盘客户机。


注 –

无法在装有 Oracle Solaris ZFS 根文件系统的系统上使用 smosservicesmdiskless 命令。这是所有支持安装 ZFS 根文件系统的 Solaris 发行版的一个已知问题。

可以使用 Solaris Flash 安装功能快速置备运行 UFS 根文件系统或 ZFS 根文件系统的系统。有关更多信息,请参见 《Oracle Solaris ZFS 管理指南》中的“安装 ZFS 根文件系统(Oracle Solaris Flash 归档文件安装)”


以下列出本章所介绍的信息:

有关无盘客户机管理的概述信息,请参见第 6 章

管理无盘客户机(任务图)

下表提供了管理无盘客户机所需的过程。

任务 

说明 

参考 

1.(可选)启用 Solaris Management Console 日志记录,以查看无盘客户机错误消息。 

从控制台主窗口中选择“日志查看器”,以查看无盘客户机错误消息。 

启动 Solaris Management Console

 

2. 准备添加无盘客户机。 

验证支持的发行版,并确定平台、介质路径和每台无盘客户机的簇(或软件组)。 

x86: 如何准备在基于 GRUB 的引导环境中添加无盘客户机

如何准备在 Oracle Solaris 10 中添加无盘客户机

3. 向 OS 服务器添加所需的 OS 服务。 

使用 smosservice 命令为要支持的无盘客户机添加 OS 服务。必须确定平台、介质路径和要支持的每个无盘客户机平台。

如何为无盘客户机支持添加 OS 服务

4. 找到并安装在向服务器添加 OS 服务时缺失的所有 ARCH=all 软件包。


注 –

要避免单独向每台无盘客户机添加这些软件包,请在添加无盘客户机支持之前执行此任务。


smosservice add 命令不会安装指定为 ARCH=all 的任何根目录 (/) 或 /usr 软件包。向 OS 服务器添加 OS 服务后,必须手动安装这些软件包。

如何找到并安装缺失的 ARCH=all 软件包

5. 添加无盘客户机。 

使用 smdiskless 命令指定所有必需的信息,来添加无盘客户机支持。

x86: 如何在基于 GRUB 的引导环境中添加无盘客户机

如何在 Oracle Solaris 10 中添加无盘客户机

6. 引导无盘客户机。 

通过引导无盘客户机,验证是否成功添加了无盘客户机。 

x86: 如何使用 GRUB 引导无盘客户机

SPARC: 如何在 Oracle Solaris 10 中引导无盘客户机

7. (可选)删除无盘客户机支持。 

如果不再需要无盘客户机支持,请将其删除。 

如何删除无盘客户机支持

8.(可选)删除无盘客户机的 OS 服务。 

如果不再需要无盘客户机的 OS 服务,请将其删除。 

如何删除无盘客户机的 OS 服务

9. (可选)修补 OS 服务。 

添加、删除、列出或同步无盘客户机 OS 服务的修补程序。 

如何为无盘客户机添加 OS 修补程序

管理无盘客户机的准备工作

以下各节介绍管理无盘客户机的必要准备工作。

管理无盘客户机时,请牢记以下要点:

在确定平台、介质路径和每台无盘客户机的簇之后,便可以添加 OS 服务。

系统将为添加的每项 OS 服务创建并填充以下目录:

系统将在 OS 服务器上为添加的每台无盘客户机创建并填充以下缺省目录:


注 –

可通过使用 smosservicesmdiskless 命令在 -x 选项下修改根(/)、 /swap/dump 目录的缺省位置。但是,请不要在 /export 文件系统下创建这些目录。


Procedurex86: 如何准备在基于 GRUB 的引导环境中添加无盘客户机

使用以下过程可进行添加无盘客户机的准备工作。此过程包括基于 x86 系统的一般信息。

使用 smosservice add 命令添加 OS 服务时,必须指定平台、介质路径和要支持的每台无盘客户机平台的簇(或软件组)。

开始之前

请确保要作为 OS 服务的系统正在运行受支持的发行版。此外,还应验证 OS 服务器发行版和无盘客户机发行版的组合是否受支持。有关更多信息,请参见 OS 服务器和无盘客户机支持信息

  1. 使用以下格式标识无盘客户机平台:

    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 中不受支持。


  2. 标识介质路径。

    介质路径是指向磁盘映像的全路径,该磁盘映像包含要为无盘客户机安装的 OS。

    在某些 Oracle Solaris 发行版中,OS 在多个 CD 上交付。但是,不能使用 smosservice 命令从多张 CD 分发装入 OS 服务。必须运行位于 Oracle Solaris 软件 CD(以及可选的语言 CD)或 Oracle Solaris DVD 上的脚本,如以下步骤中所述:


    注 –

    在该 Oracle Solaris 发行版中,软件在 DVD 上交付。


  3. 在服务器上创建安装映像。

    有关设置安装服务器的信息,请参阅 《Oracle Solaris 10 9/10 安装指南:基于网络的安装》

  4. 从 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
    
  5. 向 DHCP 服务器配置添加 BootFileBootSrvA 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”

  6. 在磁盘上安装 Oracle Solaris 映像后,请记录磁盘介质路径。例如:


    /net/export/install/sol_10_x86

    这是在使用 smosservice 命令时需要指定的磁盘介质路径。

  7. 添加 OS 服务时,请标识 SUNWCXall 簇。

    在同一系统上运行同一 OS 的无盘客户机必须使用同一个簇。


    注 –

    请始终将簇指定为 SUNWCXall


Procedure如何准备在 Oracle Solaris 10 中添加无盘客户机

使用 smosservice add 命令添加 OS 服务时,必须指定平台、介质路径和要支持的每台无盘客户机平台的簇(或软件组)。

开始之前

请确保要作为 OS 服务的系统正在运行受支持的发行版。此外,还应验证 OS 服务器发行版和无盘客户机发行版的组合是否受支持。有关更多信息,请参见OS 服务器和无盘客户机支持信息

  1. 使用以下格式标识无盘客户机平台:

    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 中不受支持。


  2. 标识介质路径。

    介质路径是指向磁盘映像的全路径,该磁盘映像包含要为无盘客户机安装的 OS。

    在某些 Oracle Solaris 发行版中,OS 在多个 CD 上交付。但是,不能使用 smosservice 命令从多张 CD 分发装入 OS 服务。必须运行位于 Solaris 软件 CD(以及可选的语言 CD)或 DVD 上的脚本,如以下步骤中所述:


    注 –

    在该 Oracle Solaris 发行版中,软件在 DVD 上交付。


  3. 在服务器上创建安装映像。

    有关设置安装服务器的信息,请参阅《Oracle Solaris 10 9/10 安装指南:基于网络的安装》

  4. 从 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
    
  5. 在磁盘上安装 Oracle Solaris CD 或 DVD 映像后,请指定磁盘介质路径。例如:


    /export/install/sparc_10
  6. 添加 OS 服务时,请标识 SUNWCXall 簇。

    在同一系统上运行同一 OS 的无盘客户机必须使用同一个簇。

    例如,请考虑以下 Solaris 9 无盘客户机:

    • sparc.sun4m.Solaris_9

    • sparc.sun4u.Solaris_9

    要设置这些无盘客户机,可能需要为每台无盘客户机指定 SUNWCXall 簇,因为 sun4usun4m 系统需要 SUNWCXall 簇。此外,在同一系统上运行同一操作发行版(在本示例中为 Solaris_9)的无盘客户机必须使用同一个簇。


    注 –

    如果使用的是 sun4u 系统,或如果使用的是具有加速 8 位彩色内存帧缓冲区 (cgsix) 的系统,则必须将簇指定为 SUNWCXall


Procedure如何为无盘客户机支持添加 OS 服务

请使用以下过程为服务器上的无盘客户机添加 OS 服务。


注 –

使用 smosservice add 命令添加 OS 服务时,系统不会安装 ARCH=all 类型的根目录 (/) 和 /usr 软件包。而是跳过这些软件包。屏幕上不会显示任何警告或错误消息。向 OS 服务器添加 OS 服务后,必须手动安装缺失的软件包。有关说明,请参见How to Locate and Install Missing ARCH=all Packages


  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 验证 Solaris Management Console 服务器是否正在运行,并验证无盘客户机工具在系统上是否可用。


    # /usr/sadm/bin/smosservice list -H host-name:898 --
    
  3. 添加 OS 服务。


    # /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
    
    add

    添加指定的 OS 服务。

    -H host-name:898

    指定主机名和要连接的端口。如果不指定端口,系统将连接至缺省端口 898。


    注 –

    使用 smossservice 命令添加 OS 服务时,-H 选项不是必需的选项。


    --

    确定子命令参数在该时间点后是否启动。

    -x mediapath=path

    指定 Solaris 映像的全路径。

    -x platform=instruction-set.machine-class. .Solaris_version

    指定要添加的指令体系结构、计算机类和 Solaris 版本。

    -x cluster=cluster-name

    指定要安装的 Solaris 簇。

    -x locale=locale-name

    指定要安装的语言环境。


    注 –

    根据服务器速度和所选的 OS 服务配置,安装过程大约需要 45 分钟。


    有关更多信息,请参见 smosservice(1M) 手册页。

  4. (可选)继续添加其他 OS 服务。

  5. 完成 OS 服务添加后,请验证是否已安装了 OS 服务。


    # /usr/sadm/bin/smosservice list -H host-name:898 --
    

示例 7–1 SPARC: 为无盘客户机支持添加 OS 服务

本示例说明如何在服务器 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.


示例 7–2 x86: 为无盘客户机支持添加 OS 服务

本示例说明如何在服务器 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

Procedurex86: 如何在基于 GRUB 的引导环境中添加无盘客户机

从 Solaris 10 1/06 发行版开始,在添加了 OS 服务后,请使用以下过程添加无盘客户机。

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 添加无盘客户机。


    # /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
    
    add

    添加指定的无盘客户机。

    --

    确定子命令参数在该时间点后是否启动。

    -i ip-address

    标识无盘客户机的 IP 地址。

    -e ethernet-address

    标识无盘客户机的以太网地址。

    -n client-name

    指定无盘客户机的名称。

    -x os=instruction-set.machine-class .Solaris_version

    指定无盘客户机的指令体系结构、计算机类、OS 和 Solaris 版本。

    -x root=root=/export/root/ client-name

    标识无盘客户机的根目录 (/)。

    -x swap=root=/export/root/ client-name

    标识无盘客户机的交换文件。

    -x swapsize=size

    指定交换文件的大小(以 MB 为单位)。缺省值为 24 MB。

    -x tz=time-zone

    指定无盘客户机的时区。

    -x locale=locale-name

    指定要为无盘客户机安装的语言环境。

    有关更多信息,请参见 smdiskless(1M) 手册页。

  3. 如果尚未创建,请向 DHCP 服务器配置中添加 BootSrvaBootFile 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
    
  4. 如果控制台在串行端口上,编辑 /tftpboot/menu.lst.01 ethernet-address 文件以取消对指定 tty 设置的行的注释。

    • 要更改客户机上创建的缺省 menu.lst 文件,请编辑 /usr/sadm/lib/wbem/config_tftp 文件中的 echo 行。

    有关更多信息,请参见从网络引导基于 x86 的系统

  5. 验证是否已安装无盘客户机。


    # /usr/sadm/bin/smdiskless list -H host-name:898 --
    
  6. (可选)继续使用 smdiskless add 命令添加每台无盘客户机。


示例 7–3 x86: 在 GRUB 引导环境中向基于 x86 的系统添加无盘客户机支持

本示例说明如何添加基于 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                                                            


示例 7–4 x86: 向 DHCP 服务器配置添加 BootSrvABootFile DHCP 选项

本示例说明如何添加启用 PXE 引导所必需的 BootSrvaBootFile 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 目录中使用的文件的名称。请注意,客户机宏的表示法由大写字母组成且不应包含任何冒号。


Procedure如何在 Oracle Solaris 10 中添加无盘客户机

添加 OS 服务后,请使用以下过程添加无盘客户机。除非另行说明,否则此过程包括的一般信息适用于 SPARC 和 x86 平台。

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 添加无盘客户机。


    # /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
    
    add

    添加指定的无盘客户机。

    --

    确定子命令参数在该时间点后是否启动。

    -i ip-address

    标识无盘客户机的 IP 地址。

    -e ethernet-address

    标识无盘客户机的以太网地址。

    -n client-name

    指定无盘客户机的名称。

    -x os=instruction-set.machine-class. .Solaris_version

    指定无盘客户机的指令体系结构、计算机类、OS 和 Solaris 版本。

    -x root=root=/export/root/ client-name

    标识无盘客户机的根目录 (/)。

    -x swap=root=/export/root/ client-name

    标识无盘客户机的交换文件。

    -x swapsize=size

    指定交换文件的大小(以 MB 为单位)。缺省值为 24 MB。

    -x tz=time-zone

    指定无盘客户机的时区。

    -x locale=locale-name

    指定要为无盘客户机安装的语言环境。

    有关更多信息,请参见 smdiskless(1M) 手册页。

  3. (可选)继续使用 smdiskless add 命令添加每台无盘客户机。

  4. 验证是否已安装无盘客户机。


    # /usr/sadm/bin/smdiskless list -H host-name:898 --
    

示例 7–5 SPARC: 向基于 SPARC 的系统添加无盘客户机支持

本示例说明如何使用服务器 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 的系统。



示例 7–6 x86: 为运行 Oracle Solaris 10 的基于 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

Procedurex86: 如何使用 GRUB 引导无盘客户机

如果已安装 Solaris 10 1/06 OS 或更高版本或已将系统升级到 Solaris 10 1/06 OS 或更高版本,则引导无盘客户机的过程已发生变化。请按照以下步骤使用 GRUB 引导无盘客户机。


注 –

从 Solaris 10 6/06 发行版开始,引导故障安全归档文件时,系统不会再提示您自动更新引导归档文件。仅在检测到不一致的引导归档文件时,系统才会提示您更新引导归档文件。有关更多信息,请参见如何在故障安全模式下引导基于 x86 的系统


开始之前

要确保系统从网络进行引导,请验证 OS 服务器上的以下先决条件:

  1. 通过键入正确的键组合,来引导无盘客户机。

    此时将显示 GRUB 菜单。

    系统上显示的 GRUB 菜单可能不同于此处显示的 GRUB 菜单,具体取决于网络安装服务器的配置。

  2. 使用方向键选择引导项,然后按 Enter 键。

    如果没有进行选择,则几秒钟后会自动引导缺省的 OS 实例。

    • 如果需要通过在引导时编辑 GRUB 菜单来修改 GRUB 内核行为,请使用方向键选择引导项,然后键入 e 以编辑该项。

      要编辑的引导命令显示在 GRUB 编辑屏幕中。

      有关在引导时修改内核行为的更多信息,请参见第 11 章

    • 要保存所做的编辑并返回上一页菜单,请按 Enter 键。

      此时将显示 GRUB 菜单,显示已对引导命令所做的编辑。

    • 键入 b 从网络引导系统。

ProcedureSPARC: 如何在 Oracle Solaris 10 中引导无盘客户机

开始之前

验证 OS 服务器上的以下先决条件:

  1. 引导无盘客户机。


    ok boot net
    

Procedure如何删除无盘客户机支持

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 删除无盘客户机支持。


    # /usr/sadm/bin/smdiskless delete -- -o host-name
    :898 -n client-name
    
  3. 验证无盘客户机支持是否已删除。


    # /usr/sadm/bin/smosservice list -H host-name:898 --
    

示例 7–7 删除无盘客户机支持

本示例说明如何从 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.

Procedure如何删除无盘客户机的 OS 服务

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 删除无盘客户机的 OS 服务。


    # /usr/sadm/bin/smosservice delete -H $HOST:$PORT -u root -p $PASSWD -- 
    -x instruction-set.all.Solaris_version
    

    注 –

    仅支持 machine-class 属性的 all 值。


  3. 验证 OS 服务是否已删除。


    # /usr/sadm/bin/smosservice list -H host-name:898 --
    

示例 7–8 删除无盘客户机的 OS 服务

以下示例说明如何从服务器 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

修补无盘客户机 OS 服务

可以使用 smosservice patch 命令来执行以下操作:


注 –

及时安装建议的 OS 修补程序,使 OS 服务器始终保持最新状态。


有关下载修补程序的信息,请参见如何下载和应用修补程序

显示无盘客户机的 OS 修补程序

根据修补程序的类型,无盘客户机修补程序记录在不同的目录中。

要按 OS 和体系结构列出所有的假脱机修补程序,请结合使用 smosservice 命令和 -P 选项。

Procedure如何为无盘客户机添加 OS 修补程序

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 登录到无盘客户机系统,然后将其关闭。


    # init 0
    
  3. 向假脱机目录添加修补程序。


    # /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.
  4. 验证修补程序是否已假脱机。


    # /usr/sadm/bin/smosservice patch -- -P
    
  5. 将假脱机的修补程序推送至无盘客户机。


    # /usr/sadm/bin/smosservice patch -- -m -U
    

    注 –

    将一个修补程序推送至无盘客户机并使其与无盘客户机同步可能需要长达 90 分钟的时间。


  6. 验证修补程序是否适用于无盘客户机。


    # /usr/sadm/bin/smosservice patch -- -P
    

示例 7–9 为无盘客户机添加 OS 修补程序

本示例说明如何向服务器上的无盘客户机的 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,缺失的软件包列表会有所不同。

Procedure如何找到并安装缺失的 ARCH=all 软件包

以下过程说明在服务器上创建 Oracle Solaris OS 服务后,如何找到并安装缺失的 ARCH=all 软件包。此过程中提供的示例适用于 Solaris 10 6/06 OS。

  1. 找到所有包含 ARCH=all 参数的软件包。

    1. 将目录更改为 Oracle Solaris 10 映像介质的 Product 目录。例如:


      % cd /net/server/export/Solaris/s10u2/combined.s10s_u2wos/latest/Solaris_10/Product
      
    2. 列出 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 文件系统中安装的软件包以及在根目录 (/) 文件系统中安装的软件包。

    3. 检查生成的软件包列表中的 SUNW_PKGTYPE 参数值。

      pkginfo 文件中,属于 /usr 文件系统的软件包被指定为 SUNW_PKGTYPE=usr。而在 pkginfo 文件中,属于根目录 ( /) 文件系统的软件包被指定为 SUNW_PKGTYPE=root。在前面的输出中,所有的软件包都属于 /usr 文件系统。

  2. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  3. 创建临时的安装管理文件。

    必须为根目录 (/) 文件系统中安装的软件包和 /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
      #
  4. 安装缺失的 ARCH=all 软件包。

    1. 如果当前目录不是 Oracle Solaris 10 映像介质的“Product”目录,请将目录更改为此目录。例如:


      # cd /net/server/export/Solaris/s10u2/combined.s10s_u2wos/latest/Solaris_10/Product
      

      可以运行 pwd 命令,以确定当前目录。

    2. /usr 文件系统中安装缺失的 ARCH=all 软件包。


      # pkgadd -R /export/Solaris_10 -a /tmp/admin_usr -d `pwd` [
      package-A package-B ...]
      

      运行 pkgadd 命令时,可以列出多个软件包。

    3. 检查 ARCH=all 软件包是否已安装。


      # pkginfo  -R /export/Solaris_10  [package-A 
      package-B ...]
      
    4. 在根目录 (/) 文件系统中安装缺失的 ARCH=all 软件包。

      请注意,这些软件包可能不存在。


      # pkgadd  -R /export/root/clone/Solaris_10/sun4u  -a /tmp/admin_root -d `pwd`  [
      package-X package-Y ...]
      
    5. 检查 ARCH=all 软件包是否已安装。


      # pkginfo  -R /export/root/clone/Solaris_10/sun4u [
      package-X package- ...]
      
  5. 添加完缺失的 ARCH=all 软件包后,请删除临时安装管理文件。


    # rm /tmp/administration-file
    

示例 7–10 找到并安装缺失的 ARCH=all 软件包

本示例说明如何在 /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 所有。

解决方法:

要更正此问题,请使用以下解决方法:

  1. 使用文本编辑器修改无盘客户机的 server:/export/root/client/etc/default/nfs 文件。

  2. #NFSMAPID_DOMAIN=domain 行更改为:


    NFSMAPID_DOMAIN=the_same_value_as_in_server's_/var/run/nfs4_domain
  3. 确保 OS 服务器和无盘客户机具有相同的 nfsmapid 域。要检验此信息,请检查 /var/run/nfs4_domain 文件。


    注意 – 注意 –

    如果无盘客户机的 nfs4_domain 文件所包含的值不同于 OS 服务器的 /var/run/nfs4_domain 文件中的值,您将无法在无盘客户机引导之后登录系统。


  4. 重新引导无盘客户机。

有关更多信息,请参见 《Oracle Solaris Tunable Parameters Reference Manual》中的第 3  章 “NFS Tunable Parameters”nfsmapid(1M)

问题:

OS 服务器无法执行以下操作:

解决方法:

以下解决方法适用于文件环境。

问题:

OS 服务器无法执行以下操作:

解决方法:

以下解决方法适用于名称服务环境。

问题:

无盘客户机发出警告音

解决方法:

验证以下设置:

问题:

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