Solaris 10 发行说明

System Administration

本节介绍 Solaris 10 OS 中的系统管理错误。

Sun Patch Manager Tool 2.0 与早期版本不兼容

运行 Sun Patch Manager Tool 2.0 的系统可以管理运行包括 Sun Patch Manager Tool 1.0 的修补程序管理器工具的远程系统。

不过,使用早期版本的修补程序管理器工具的系统无法管理运行 Patch Manager Tool 2.0 的远程系统。早期版本包括:


注 –

Solaris 8 OS 中不存在对修补程序管理器工具的“通用信息模型/基于 Web 的企业管理 (CIM/WBEM)”支持。因此,使用修补程序管理器进行远程管理不适用于 Solaris 8 系统。


仅在全局区域中支持 Sun Remote Services Net Connect

仅在全局区域中支持 Sun Remote Services (SRS) Net Connect。如果执行下列操作之一,会显示错误消息:

错误消息如下所示:


*** package SUNWcstu failed to install - interactive administration required:

Interactive request script supplied by package
pkgadd: ERROR: request script did not complete successfully

Installation of SUNWcstu was suspended (interaction required).
No changes were made to the system.  

*** package SUNWfrunc failed to install - interactive administration required:

Interactive request script supplied by package
pkgadd: ERROR: request script did not complete successfully

Installation of SUNWfrunc was suspended (interaction required).
No changes were made to the system.

解决方法:忽略错误消息。

使用 zoneadm 命令安装非全局区域时可能显示错误或警告消息

使用 zoneadm 命令安装非全局区域时,在软件包安装期间会显示错误或警告消息。这些消息与下例相似:


Preparing to install zone zone1.
Creating list of files to copy from the global zone.
Copying 2348 files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize 790 packages on the zone.
Initialized 790 packages on zone.
Zone zone1 is initialized.

Installation of the following packages generated errors: 
SUNWjhrt SUNWmcc SUNWjhdev SUNWnsb SUNWmcon SUNWmpatchmgr

Installation of the following packages generated warnings: 
SUNWj3rt SUNWmc SUNWwbmc SUNWmga SUNWdclnt SUNWlvma SUNWlvmg 
SUNWrmui SUNWdoc SUNWpl5m SUNWpmgr

有关软件包安装的问题记录在包含区域安装日志的 /export/zone1/root/var/sadm/system/logs/install_log 中。

解决方法:无。


注 –

即使已报告这些消息,也仍然可以使用非全局区域。早期 Solaris Express 和 Solaris 10 Beta 发行版中存在软件包安装问题。不过,不生成有关这些问题的通知。从此 Solaris 发行版开始,将正确报告和记录这些错误。


Solaris 产品注册表管理实用程序在区域中无法启动 (6220284)

如果试图在区域中启动 Solaris 产品注册表管理实用程序,则该尝试失败。在区域安装期间,不在区域中复制 productregistry,即 Solaris 产品注册表数据库。因此,该实用程序无法在区域中运行。

解决方法:以超级用户身份,将 productregistry 数据库复制到区域。


# cp /var/sadm/install/productregistry zone_path/var/sadm/install/

在以前的命令中,zone_path 是所创建区域的根目录的路径。

patchadd 对新安装的软件包重新应用修补程序失败 (6219176)

如果在下列情况下重新应用修补程序,patchadd 命令会失败。

  1. 对不包含受该修补程序影响的所有软件包的系统应用该修补程序。

  2. 稍后安装在应用该修补程序时未安装的软件包。

  3. 重新应用该修补程序以修补新安装的软件包。

稍后添加的适用于软件包的修补程序部分未被安装。此时会显示与下列输出类似的消息。


patchadd ~tsk/patches/111111-01
Validating patches...

Loading patches installed on the system...

Done!

Loading patches requested to install.

Done!

The following requested patches are already installed on the system
Requested to install patch 111111-01 is already installed on the system.

No patches to check dependency. 

解决方法:请选择以下解决方法之一。

解决方法 1:如果尚未在系统中创建区域,请使用带 -t 选项的 patchadd 命令修补系统。


# patchadd -t patch-ID

在前一个命令中,patch-ID 是要应用的修补程序的 ID。

解决方法 2:如果已在系统中创建区域,请执行以下步骤。

  1. 回退修补程序。


    # patchrm patch-ID
    
  2. 安装系统中不存在、但受该修补程序影响的其他软件包。


    # pkgadd -d device pkgabbrev
    

    在上一示例中,device 指定要安装的一个或多个软件包的绝对路径。pkgabbrev 指定要安装的软件包的缩写名称。可以指定多个软件包名称。

  3. 重新安装该修补程序。


    # patchadd  patch-ID
    

远程登录服务无法访问修补全局区域后创建的非全局区域 (6216195)

如果创建一个全局区域并对其应用修补程序,则在随后创建的所有非全局区域中都不会启用远程登录服务。例如,这类远程服务包括 rlogintelnet。如果在对全局区域应用修补程序后创建一个非全局区域,则不能从远程登录到该非全局区域。此问题影响那些已使用提供或修改 SUNWcsr 软件包的修补程序进行修补的系统。

解决方法:请选择以下解决方法之一。

解决方法 1:如果尚未引导非全局区域,请执行以下步骤。

  1. 在全局区域,转至非全局区域中的 /var/svc/profile 目录。


    global# cd zone_path/root/var/svc/profile
    

    在上一示例中,zone_path 是指向非全局区域的路径。通过在全局区域中键入以下命令,可以确定指向非全局区域的路径。


    global# zonecfg -z zonename info zonepath
    
  2. 删除 inetd_services.xml 配置文件。


    global# rm inetd_services.xml
    
  3. inetd_services.xml 创建指向 inetd_generic.xml 配置文件的符号链接。


    global# ln -s inetd_generic.xml inetd_services.xml
    
  4. 引导非全局区域。

    有关如何引导区域的更多信息,请参见《System Administration Guide: Solaris Containers-Resource Management and Solaris Zones》

解决方法 2:如果已引导非全局区域,请执行以下步骤。

  1. 执行前一个解决方法中列出的步骤。

  2. 在非全局区域中,启用 /var/svc/profile/inetd_services.xml 配置文件中列出的服务。


    my-zone# svccfg apply /var/svc/profile/inetd_services.xml
    
  3. 重新引导非全局区域。


    my-zone# reboot
    

解决方法 3:在系统中创建区域之前,应用适用于平台的修补程序。

无法从系统中删除现有无盘客户机 (6205746)

如果使用 smdiskless 命令删除无盘客户机,该命令失败。无盘客户机未从系统数据库中删除。将显示以下错误消息:


Failing with error EXM_BMS.

解决方法:添加客户机前取消共享 /export 分区。

Net Connect 3.1.1 安装失败 (6197548)

如果在 Solaris 10 完全安装开始时选择 Net Connect 3.1.1,则安装该产品失败。使用 Solaris 10 Operating System DVD 进行安装时发生此故障。OS 安装完成时,以下错误消息会记录到 /var/sadm/install/logs/ 中的 Net Connect 安装日志中:


Installation of SUNWSRSPX failed.
Error: pkgadd failed for SUNWsrspx 
Install complete. Package: SUNWsrspx

解决方法:OS 安装完成后,执行以下步骤:

  1. 插入 Solaris 10 Operating System DVD 或 Solaris 10 Software - CD 4。

  2. 转至 Net Connect 产品的目录。

  3. 运行 Net Connect 安装程序。


注 –

要下载最新版本的 Sun Net Connect 软件和发行说明,请访问 Sun Net Connect 的门户网站 https://srsnetconnect.sun.com


x86: 安装 Solaris Flash 归档文件时缺省 C 库会导致引导失败 (6192995)

在下列情况下,可能发生有关 Solaris Flash 归档文件的引导失败:

在试图引导克隆系统时,会显示以下错误消息:


WARNING: init exited with fatal signal 9; restarting.

解决方法:执行以下步骤。

  1. 创建归档文件之前,在主系统上卸载 /lib/libc.so.1 库。


    # umount /lib/libc.so.1
    

    此命令使主系统能够使用 libc C 库的基本版本。

  2. 在主系统上创建 Solaris Flash 归档文件。

    有关如何创建 Solaris Flash 归档文件的更多信息,请参见《Solaris 10 安装指南:Solaris Flash 归档文件(创建和安装)》

  3. 在主系统上挂载 /lib/libc.so.1 库。


    # mount -O -F lofs /lib/libc.so.1 /usr/lib/libc/libc_hwcap2.so.1
    
  4. 在克隆系统上安装 Solaris Flash 归档文件。

    有关如何安装 Solaris Flash 归档文件的更多信息,请参见《Solaris 10 安装指南:Solaris Flash 归档文件(创建和安装)》

SPARC: smosservice delete 命令未成功删除所有目录 (6192105)

如果使用 smosservice delete 命令删除无盘客户机服务,该命令不能成功删除所有服务目录。

解决方法:执行以下步骤。

  1. 确保不存在使用该服务的客户机。


    # unshare /export/exec/Solaris_10_sparc.all
    # rm -rf /export/exec/Solaris_10_sparc.all
    # rm -rf /export/exec/.copyofSolaris_10_sparc.all
    # rm -rf /export/.copyofSolaris_10
    # rm -rf /export/Solaris_10
    # rm -rf /export/share
    # rm -rf /export/root/templates/Solaris_10
    # rm -rf /export/root/clone/Solaris_10
    # rm -rf /tftpboot/inetboot.sun4u.Solaris_10
  2. /etc/bootparams 文件中删除以下项。


    fs1-24 boottype=:os

    注 –

    仅在此文件服务器不为任何其他服务提供功能或资源时删除此项。


  3. /etc/dfs/dfstab 文件中删除以下项。


    share -F nfs -o ro /export/exec/Solaris_8_sparc.all/usr
  4. 修改 /var/sadm/system/admin/services/Solaris_10 文件。

    • 如果文件服务器不是 Solaris_10,则删除该文件。

    • 如果文件服务器是 Solaris_10,则删除前三行后的所有项。所删除的行表示 /export/root/templates/Solaris_10 中的服务 USR_PATH 和 SPOOLED ROOT 软件包和支持的平台。

patchadd 命令不支持从 NFS 服务器安装修补程序 (6188748)

如果使用 patchadd 命令以便从另一个系统通过 NFS 安装修补程序,则该命令失败。下例显示失败的 patchadd 操作及其所显示的错误消息:


Validating patches...

Loading patches installed on the system...
[...]
Loading patches requested to install.
[...]
Checking patches that you specified for installation.
[...]
Approved patches will be installed in this order:
[...]
Checking local zones...
[...]
Summary for zones:
[...]
Patches that passed the dependency check:
[...]

Patching global zone
Adding patches...

 Checking installed patches...
Verifying sufficient filesystem capacity (dry run method)...
Installing patch packages...

 Patch Patch_ID has been successfully installed.
See /var/sadm/patch/Patch_ID/log for details
 Patch packages installed:
   SUNWroute
[...]

Adding patches...
 The patch directory
 /dev/.SUNW_patches_0111105334-1230284-00004de14dcb29c7
 cannot be found on this system.  

[...]

Patchadd is terminating.

解决方法:首先将要安装的所有修补程序从 NFS 服务器手动复制到本地系统。然后,使用 patchadd 命令,从已将修补程序复制到其中的本地系统的目录中安装修补程序。

lucreate 命令未创建 RAID-1 卷 (5106987)

如果使用 lucreate 命令创建 /dev/md 目录中没有设备项的 RAID-1 卷(镜像),则该命令失败。不能使用 lucreate 命令镜像文件系统,除非已先使用 Solaris 卷管理器软件创建了镜像。

解决方法:使用 Solaris 卷管理器软件创建镜像文件系统,然后使用 lucreate 命令创建新的引导环境。

有关 lucreate 命令的更多信息,请参见 lucreate(1M)《Solaris 10 安装指南:Solaris Live Upgrade 和升级规划》

有关如何使用 Solaris 卷管理器软件创建镜像文件系统的更多信息,请参见《Solaris Volume Manager Administration Guide》

SPARC: 在挂起和恢复循环时发生的紧急情况可能会导致系统挂起 (5062026)

执行挂起和恢复 (cpr) 循环时发生的系统紧急情况可能导致系统挂起。更常见的情况是在安装了 XVR-1000 图形加速器的 Sun Blade 2000 工作站上发现这一问题。在极少情况下,其他基于 SPARC 的系统也可能在紧急情况中出现相似的挂起现象。发生紧急情况时,不会保存核心转储,也不会在控制台出现提示。如果核心调试程序 (kadb) 处于活跃状态,该问题可能更为普遍。

解决方法:要使系统恢复到可用状态,需手动重新引导系统。

SPARC: 通过使用组合键停止系统可能会导致系统出现紧急情况 (5061679)

如果您试图通过按下如 Stop-A 或 L1-A 等组合键停止系统,则可能出现紧急情况。将显示一条类似以下示例的错误消息:


panic[cpu2]/thread=2a100337d40: pcisch2 (pci@9,700000): 
consistent dma sync timeout

解决方法:不要使用键盘组合键强制系统进入 OpenBoot PROM。

同时使用 ipfs 命令和 -W 选项时失败 (5040248)

ipfs 命令保存和恢复有关网络地址转换 (NAT) 的状态和包过滤状态表的信息。此实用程序防止系统重新引导时网络连接中断。如果发出带有 -W 选项的命令,则 ipfs 保存内核状态表失败。将显示以下错误消息:


state:SIOCSTGET: Bad address

解决方法:无。

所创建的引导环境中未保留对挂载点的权限 (4992478)

在使用 lucreate 创建新的引导环境时,未保留对文件系统挂载点的权限。因此,部分用户进程失败。如果在群集环境中创建新的引导环境,则该群集关闭节点,然后从 CD-ROM 引导以修复挂载点的权限。

解决方法:执行以下步骤。

  1. 创建新的引导环境。


    # lucreate -n newbe -m /:c0t0d0s0:ufs 
    -m /var:c1t0d0s0:ufs -m  /usr:c2t0d0s0:ufs
    

    在上一示例中,lucreate 命令会创建 newbe 引导环境。此例定义下列文件系统和挂载点。

    • root (/) 文件系统挂载在 c0t0d0s0 上。

    • var 文件系统挂载在 c1t0d0s0 上。

    • usr 文件系统挂载在 c2t0d0s0 上。

  2. 挂载新引导环境的根文件系统。


    # mount /dev/dsk/c0t0d0s0 /mnt
    
  3. 有关为引导环境定义的每个挂载点,将权限更改为 755。


    # chmod 755 /mnt/var
    # chmod 755 /mnt/usr
    
  4. 卸载根文件系统。

    # umount /dev/dsk/c0t0d0s0

kill -HUP 并不总是使代理重新读取 snmpd.conf 配置文件 (4988483)

修改 snmpd.conf 的内容后,可以发出命令 kill -HUP snmp Process ID。此命令停止 snmp 进程。然后,该命令向系统管理代理的主代理 (snmpd) 发送信号,以重新读取 snmpd.conf 并实现您引入的修改。该命令可能不会始终使主代理重新读取配置文件。因此,使用该命令可能无法总是激活配置文件中的修改。

除了使用 kill -HUP,还可以在将修改添加到 snmpd.conf 后重新启动系统管理代理。请执行以下步骤:

  1. 成为超级用户。

  2. 键入以下命令:

    # /etc/init.d/init.sma restart

x86: BIOS 引导过程中按 F4 键不能引导服务分区 (4782757, 5051157)

正在引导安装了服务分区和 x86 上的 Solaris 10 OS 的 Sun LX50。按 F4 功能键引导服务分区(如果提供该选项)会使屏幕变为空白,此时系统将无法引导服务分区。

解决方法:当显示“BIOS 引导屏幕”时,请勿按 F4 键。超时后,将显示“当前磁盘分区信息”屏幕,在“零件号”列中选择与 type=DIAGNOSTIC 对应的编号,按回车键。系统将引导服务分区。

Solaris WBEM Services 2.5 守护进程找不到 com.sun 应用程序编程接口提供程序 (4619576)

Solaris WBEM Services 2.5 守护进程找不到已经写入 com.sun.wbem.provider 接口或 com.sun.wbem.provider20 接口的提供程序。即使您为写入这些接口的提供程序创建了一个 Solaris_ProviderPath 实例,Solaris WBEM Services 2.5 守护进程也找不到这些提供程序。

解决方法:为使守护进程能够找到这样一个提供程序,请停止并重新启动 Solaris WBEM Services 2.5 守护进程。


# /etc/init.d/init.wbem stop

# /etc/init.d/init.wbem start

注 –

如果使用 javax API 开发提供程序,则不需要停止并重新启动 Solaris WBEM Services 2.5 守护进程,因为 Solaris WBEM Services 2.5 守护进程会动态识别 javax 提供程序。


一些 com.sun 应用程序编程接口方法调用在 XML/HTTP 传输协议下会失败(4497393、4497399、4497406 和 4497411)

如果选择使用 com.sun 应用程序编程接口而不是使用 javax 应用程序编程接口来开发 WBEM 软件,则只完全支持通用信息模型 (CIM) 远程方法调用 (RMI)。其他协议,如 XML/HTTP,不一定完全支持 com.sun 应用程序编程接口。

下表列出了在 RMI 下能够成功执行、但在 XML/HTTP 下不能成功执行的调用示例:

方法调用 

错误消息 

CIMClient.close()

NullPointerException

CIMClient.execQuery()

CIM_ERR_QUERY_LANGUAGE_NOT_SUPPORTED

CIMClient.getInstance()

CIM_ERR_FAILED

CIMClient.invokeMethod()

XMLERROR: ClassCastException

使用 Solaris 管理控制台挂载和共享工具不能修改文件系统挂载特性 (4466829)

Solaris 管理控制台挂载和共享工具不能修改对系统很重要的文件系统(如 root (/)、/usr/var)上的挂载选项。

解决方法:请选择以下解决方法之一: