本节介绍 Solaris 10 OS 中的系统管理错误。
针对 Solaris 高可靠扩展版配置了系统,并使用 SMC 创建角色时,角色的主目录可能具有不正确的拥有权。会显示各种错误消息。
解决方法:以超级用户身份登录。在创建角色后,检验新角色的主目录是否具有正确的所有者和组。
# ls -ld /export/home/myrole drwxr-xr-x 15 myrole sysadmin 1024 Jul 26 15:29 /export/home/myrole |
所有角色的组应该是 sysadmin(14)。如果不是,请使用以下 chown 命令将组更改为 sysadmin(14):
# chown myrole:sysadmin /export/home/myrole |
使用运行 Emulex HBA 驱动程序版本 2.20K 及以上版本的 Storade rasagent 时,以下错误消息会记录到 /var/adm/messages 文件:
NOTICE: fp_rnid_intr: FP_IS_PKT_ERROR failed |
解决方法:可以忽略此消息。要停止将消息记录到 /var/adm/messages 文件,请停止 Storade rasagent 守护进程。
在 iSCSI 守护进程中,将可选参数 --alias 或 -a 与 iscsitadm create target 命令配合使用时,可能会导致守护进程出现紧急情况,并创建进程代码转储。
由于 iSCSI 目标守护进程受 Solaris SMF 工具控制,所以在经过进程创建其核心转储文件时的瞬间暂停后,该工具会自动重新启动。
解决方法:请勿在 iscsitadm create target CLI 命令中指定可选的 --alias 或 -a 参数。请在 iscsitadm modify target CLI 命令中使用这些可选参数。
运行基于 Java 技术的互操作性标准测试套件 (JIST) 时,如果针对 10 个线程进行读取、写入或比较负载测试以作为 Amber Road 的入口测试的一部分,iSCSI 目标会生成核心转储。此核心转储可能会导致 JIST 测试失败,并产生数据比较错误。有时 JIST 可能会成功运行,但会生成新的核心转储文件。
解决方法:无。
连接区域时,如果原始主机和新主机的软件包处于相同的修补程序级别,但处于不同的中间修补程序历史记录,则区域连接可能会失败。会显示各种错误消息。错误消息取决于两台主机的修补程序历史记录。
解决方法:确保原始主机和新主机的每个修补程序都应用了相同序列的修补程序版本。
在具有 AHCI 兼容 SATA 控制器的系统中,BIOS 设置通常允许在 AHCI、传统或 RAID 模式中设置控制器。Solaris 支持 AHCI 和传统模式。
在 Solaris 初始安装之后,不得更改 BIOS 中的 SATA 模式设置。在 Solaris 升级之前或之后,也不得更改 SATA 模式设置。如果在安装 Solaris 后修改 SATA 模式 BIOS 设置,则系统将会重置并无法引导,且不会指出导致失败的原因。
解决方法:如果由于更改 BIOS 设置而导致引导失败,请恢复回原始设置以引导 Solaris。
从修补程序 119254-42 和 119255-42 开始,已对修补安装实用程序 patchadd 和 patchrm 进行了修改,以改变处理某些修补程序交付功能的方式。对实用程序的这一修改会对在任意 Solaris 10 发行版上安装这些修补程序有所影响。这些“延迟激活”修补程序可以更好地处理功能修补程序中所交付的大范围更改。
这些大的内核修补程序总是需要重新引导,而现在,所需的重新引导可激活由回送文件系统 lofs 所做的更改。 lofs 可确保正在运行的系统的稳定性。修补程序自述文件提供了有关哪些修补程序需要重新引导的说明。
Sun 强烈建议在单用户模式下执行修补程序操作,尤其是修补程序自述文件也如此建议时。
如果您在运行非全局区域或者禁用了 lofs,则在安装或删除延迟激活修补程序时,请考虑以下几点:
要执行此修补程序操作,所有非全局区域必须处于停止状态。必须停止非全局区域,然后再应用修补程序。
为了成功地完成操作,延迟激活修补需要回送文件系统 lofs。由于启用 lofs 时会对 HA-NFS 功能有所限制,所以运行 Sun Cluster 3.1 或 Sun Cluster 3.2 的系统可能会将 lofs 关闭。因此,安装延迟激活修补程序之前,必须执行以下步骤来重新启用回送文件系统。
删除或注释掉 /etc/system 文件中的以下行:
exclude:lofs |
重新引导系统。
安装修补程序。
完成修补程序安装操作后,恢复或取消注释 /etc/system 文件中的同一行。
重新引导系统以恢复正常运行。
不会显示任何错误消息。
解决方法:Sun 建议使用 Solaris Live Upgrade 进行修补管理。Solaris Live Upgrade 可防止对运行的系统进行修补时出现问题。Solaris Live Upgrade 可减少与修补相关的停机时间量,并且可在发生问题时提供回退功能,从而降低风险。有关更多信息,请参见《Solaris 10 8/07 安装指南:Solaris Live Upgrade 和升级规划》。
在大型文件系统(例如 ZFS)上运行时,使用 statvfs(2) 或 statfs(2) 获取有关文件系统状态的信息的应用程序会显示错误。将显示以下错误消息:
Value too large for defined data type |
解决方法:应用程序应改为使用 statvfs64()。
在 x86 系统上无法卸载 Solaris 高可靠扩展版。重新引导系统时,会显示以下错误消息:
NOTICE: template type for bge0 incorrectly configured Change to CIPSO type for 129.146.108.249 ifconfig: setifflags: SIOCSLIFFLAGS: bge0: Invalid argument NOTICE: bge0 failed: Cannot insert CIPSO template for local addr 129.146.108.249 ip_arp_done: init failed |
然后系统挂起。
解决方法:请执行以下步骤:
卸载 Solaris 高可靠扩展版,但不重新引导系统。
运行以下命令。
# touch /etc/system # bootadm update-archive |
重新引导系统。
在运行 Solaris 发行版但不支持区域的系统上,无法使用 patchadd -R 或接受 -R 选项的任何命令为安装了非全局区域的全局区域指定备用根路径。
与使用 luupgrade [-t、-T、-p、- P] 命令时显示错误消息不同,在这种情况下,不会显示与使用相应命令级限制有关的错误消息。
没有关于 -R 选项无效的提示。由于该命令执行失败,因此 Solaris 10 软件包或修补程序不会安装在任何已安装的非全局区域上。
安装和卸载软件包或修补程序时会发生此问题。
如果备用引导环境配置了非全局区域(而不是安装了非全局区域),则 -R 选项有效。但是,为了避免可能的问题,或者如果不确定是否有安装的非全局区域用作备用根路径,请在所有情况下限制使用 -R 选项。
有关更多信息,请参见以下手册页:
解决方法 1:将 OS 至少升级到 Solaris 10 1/06 发行版。
如果运行的是 Solaris 10 3/05 发行版,请安装以下修补程序以便能够使用接受 -R 选项的命令来创建备用根路径:
Patch ID 119254-19(适用于基于 SPARC 的系统)
Patch ID 119255-19(适用于基于 x86 的系统)
解决方法 2:限制使用 patchadd -R 命令或任何接受 -R 选项的命令来创建备用根路径。
而是引导备用根(例如,Solaris 10 发行版)作为活动 OS。然后在不使用 -R 选项的情况下安装和卸载 Solaris 10 软件包和修补程序。
运行 Sun Patch Manager Tool 2.0 的系统可以管理运行包括 Sun Patch Manager Tool 1.0 的修补程序管理器工具的远程系统。
不过,使用早期版本的修补程序管理器工具的系统无法管理运行 Patch Manager Tool 2.0 的远程系统。早期版本包括:
Sun Patch Manager Base Software 1.x
Sun Patch Manager Tool 1.0
Solaris 8 OS 中不存在对修补程序管理器工具的“通用信息模型/基于 Web 的企业管理 (CIM/WBEM)”支持。因此,使用修补程序管理器进行远程管理不适用于 Solaris 8 系统。
在动态重新配置 (dynamic reconfiguration, DR) 期间,可能会显示错误消息。如果执行 DR 时 DR 路径中的设备上的输入和输出操作处于活动状态,则会显示这些消息。显示这些消息后,将重试输入和输出操作并最终获得成功。以下是显示的错误消息的样例:
Jul 28 12:23:19 qame10-a scsi: [ID 107833 kern.warning] WARNING: /ssm@0,0/pci@19,700000/SUNW,qlc@2,1/fp@0,0/ssd@w2100000c5056fa13,0 (ssd6): Jul 28 12:23:19 qame10-a transport rejected fatal error Jul 28 12:22:08 qame10-a scsi: [ID 107833 kern.warning] WARNING: /ssm@0,0/pci@19,700000/SUNW,qlc@2,1/fp@0,0/ssd@w2100000c5056f9a7,0 (ssd36): Jul 28 12:22:08 qame10-a SCSI transport failed: reason 'timeout': retrying command |
解决方法:无。忽略错误消息。
patchadd 和 patchrm 命令在具有继承文件系统的非全局区域中无法正常工作。因此,在以下情况下,pkgchk 命令在这些区域中可能会生成有关软件包的错误消息:
在全局区域中,使用 patchadd 命令将修补程序应用于 Solaris 10 区域系统。
使用 patchrm 命令删除刚才应用的修补程序。
在具有继承文件系统的非全局区域中,可使用 pkgchk 命令在任何已删除的修补程序中检查有关某个软件包的信息。
在以上所列的各种情况下,如果在 SUNWcsu 上使用 pkgchk 命令,则会显示类似以下样例的消息。
# pkgchk SUNWcsu ERROR: /usr/lib/inet/certdb modtime <04/26/05 10:55:26 PM> expected <01/23/05 01:48:24 AM> actual file size <36012> expected <42152> actual file cksum <37098> expected <19747> actual ERROR: /usr/lib/inet/certlocal modtime <04/26/05 10:55:26 PM> expected <01/23/05 01:48:24 AM> actual file size <44348> expected <84636> actual |
解决方法:无。这些错误没有什么影响。忽略错误消息。
具有 Solaris 10 8/07 发行版的系统可能会导致与 IPsec 相关的问题。此问题可能会出现在刚刚安装的系统或在引导期间导入大量新的服务管理工具 (Service Management Facility, SMF) 清单的系统上。在这些引导条件后,作为 svc:/network/initial:default 一部分的 IPsec 可能先于作为 svc:/system/cryptosvc:default 一部分的加密框架被初始化。由于验证或加密算法不可用,可能无法创建 IPsec 安全关联,并将显示如下所示的错误消息:
PF_KEY error: type=ADD, errno=22: Invalid argument, diagnostic code=40: Unsupported authentication algorithm |
例如,在 Sun Fire E25K 系统上使用 DR 时可能会出现此错误,因为该操作涉及 IPsec 服务。
解决方法:在执行使用 IPsec 服务的操作前,如果在引导期间导入大量新 SMF 清单,请在引导后执行以下步骤:
在引导后发出此命令:
ipsecalgs -s |
如果系统中存在 /etc/inet/secret/ipseckeys,则还需要发出此命令:
ipseckey -f /etc/inet/secret/ipseckeys |
现在您可以执行需要创建 IPsec 安全关联的操作,如在 Sun Fire E25K 系统上使用 DR。
仅当在引导期间导入大量新 SMF 清单的情况下需要重复本过程。
如果试图在区域中启动 Solaris 产品注册表管理实用程序,则该尝试失败。在区域安装期间,不在区域中复制 productregistry,即 Solaris 产品注册表数据库。因此,该实用程序无法在区域中运行。
解决方法:以超级用户身份,将 productregistry 数据库复制到区域。
# cp /var/sadm/install/productregistry zone_path/var/sadm/install/ |
在以前的命令中,zone_path 是所创建区域的根目录的路径。
如果使用 smdiskless 命令删除无盘客户机,该命令失败。无盘客户机未从系统数据库中删除。将显示以下错误消息:
Failing with error EXM_BMS. |
解决方法:添加客户机前取消共享 /export 分区。
如果使用 smosservice delete 命令删除无盘客户机服务,该命令不能成功删除所有服务目录。
解决方法:执行以下步骤。
确保不存在使用该服务的客户机。
# 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 |
从 /etc/bootparams 文件中删除以下项。
fs1-24 boottype=:os |
仅在此文件服务器不为任何其他服务提供功能或资源时删除此项。
从 /etc/dfs/dfstab 文件中删除以下项。
share -F nfs -o ro /export/exec/Solaris_8_sparc.all/usr |
修改 /var/sadm/system/admin/services/Solaris_10 文件。
如果文件服务器不是 Solaris_10,则删除该文件。
如果文件服务器是 Solaris_10,则删除前三行后的所有项。所删除的行表示 /export/root/templates/Solaris_10 中的服务 USR_PATH 和 SPOOLED ROOT 软件包和支持的平台。
如果您试图通过按下如 Stop-A 或 L1-A 等组合键停止系统,则可能出现紧急情况。将显示一条类似以下示例的错误消息:
panic[cpu2]/thread=2a100337d40: pcisch2 (pci@9,700000): consistent dma sync timeout |
解决方法:不要使用键盘组合键强制系统进入 OpenBoot PROM。
修改 snmpd.conf 的内容后,可以发出命令 kill -HUP snmp Process ID。此命令停止 snmp 进程。然后,该命令向系统管理代理的主代理 (snmpd) 发送信号,以重新读取 snmpd.conf 并实现您引入的修改。该命令可能不会始终使主代理重新读取配置文件。因此,使用该命令可能无法总是激活配置文件中的修改。
除了使用 kill -HUP,还可以在将修改添加到 snmpd.conf 后重新启动系统管理代理。请执行以下步骤:
成为超级用户。
键入以下命令:
# /etc/init.d/init.sma restart
正在引导安装了服务分区和 x86 上的 Solaris 10 OS 的 Sun LX50。按 F4 功能键引导服务分区(如果提供该选项)会使屏幕变为空白,此时系统将无法引导服务分区。
解决方法:当显示“BIOS 引导屏幕”时,请勿按 F4 键。超时后,将显示“当前磁盘分区信息”屏幕,在“零件号”列中选择与 type=DIAGNOSTIC 对应的编号,按回车键。系统将引导服务分区。
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 应用程序编程接口而不是使用 javax
应用程序编程接口来开发 WBEM 软件,则只完全支持通用信息模型 (Common Information Model, CIM) 远程方法调用 (remote method invocation, 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 管理控制台挂载和共享工具不能修改对系统很重要的文件系统(如 root (/)、/usr 和 /var)上的挂载选项。
解决方法:请选择以下解决方法之一:
在 mount 命令中使用 remount 选项。
# mount -F file-system-type -o remount,additional-mount-options \ device-to-mount mount-point |
通过使用 mount 命令和 -remount 选项所做的挂载属性修改不是永久性的。另外,未在上一命令的 additional-mount-options 部分中指定的所有挂载选项均会继承由系统指定的缺省值。有关更多信息,请参见 mount_ufs(1M) 手册页。
编辑 /etc/vfstab 文件中相应的项以修改文件系统挂载特性,然后重新引导系统。