系统管理指南:基本管理

无盘客户机问题故障排除

本节介绍在管理无盘客户机时遇到的问题和可能的解决方法。

无盘客户机安装问题故障排除

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