Solaris 10 5/08 安装指南:Solaris Live Upgrade 和升级规划

第 2 部分 附录

本部分提供参考信息。

附录 A 疑难解答(任务)

本章包含您在安装 Solaris 10 5/08 软件时可能遇到的特定错误消息和一般问题的列表。本章还说明了如何解决这些问题。首先使用以下章节列表确定安装过程中出现问题的地方。


注 –

“可引导介质”这一短语指的是 Solaris 安装程序和 JumpStart 安装方法。


设置网络安装时的问题


Unknown client "host_name "(未知的客户机 "host_name")

原因:

add_install_client 命令中的 host_name 参数不是命名服务中的主机。

解决方法:

将主机 host_name 添加到命名服务,并再次执行 add_install_client 命令。


Error: <system name> does not exist in the NIS ethers map


Add it, and rerun the add_install_client command(错误:NIS 以太网映射中不存在 <系统名>。请添加它,并重新运行 add_install_client 命令)

描述:

当您运行 add_install_client 命令时,该命令会失败并出现上述错误。

原因:

您要添加至安装服务器的客户机在该服务器的 /etc/ethers 文件中不存在。

解决方法:

将所需信息添加至安装服务器的 /etc/ethers 文件,然后再次运行 add_install_client 命令。

  1. 成为超级用户或承担等效角色。

  2. 在客户机上,找到以太网地址。


    # ifconfig -a grep ethers
    ether 8:0:20:b3:39:1d
  3. 在安装服务器上,在编辑器中打开 /etc/ethers 文件。将地址添加到列表中。

  4. 在客户机上,再次运行 add_install_client,如以下示例所示。


    # ./add_install_client bluegill sun4u
    

引导系统时的问题

从介质引导:错误消息


le0: No carrier - transceiver cable probleme(le0:无载体-收发器电缆问题)

原因:

系统未连接到网络。

解决方法:

如果这是非联网的系统,请忽略该消息。如果这是联网系统,请确保安全地连接了以太网电缆。


The file just loaded does not appear to be executable(刚装入的文件不是可执行文件)

原因:

系统无法找到合适的引导介质。

解决方法:

验证是否已经正确地设置系统,以使用安装服务器通过网络来安装 Solaris 10 5/08 软件。下面是可执行的检查示例。

  • 如果已将 Solaris Operating System DVD 或 Solaris Software CD 的映像复制到安装服务器,请确保在设置系统时为其指定了正确的平台组。

  • 如果要使用 DVD 或 CD 介质,请确保已在安装服务器上挂载了 Solaris Operating System DVD 或 Solaris Software - 1 CD,并且可以对其进行访问。


boot: cannot open <filename>(引导:无法打开 <filename>)(仅限于基于 SPARC 的系统

原因:

通过显式地设置 boot -file 来覆写该位置时,将发生此错误。


注 –

filename 是一个变量,指代受影响文件的名称。


解决方法:

请按照以下说明操作:

  • 将 PROM 中的 boot -file 重置为“ ”(空白)。

  • 确保将 diag-switch 设置为 off 和 true。


Can't boot from file/device(无法从 file/device 引导)

原因:

安装介质找不到可引导介质。

解决方法:

确保满足以下条件:

  • 正确地安装 DVD-ROM 或 CD-ROM 驱动器,并将其打开。

  • 将 Solaris Operating System DVD 或 Solaris Software - 1 CD 放入到驱动器中。

  • 光盘未损坏或未弄脏。


WARNING: clock gained xxx days -- CHECK AND RESET DATE!(警告:时钟快 xxx 天-检查并重置日期!)(仅限于基于 SPARC 的系统

描述:

这是提示性消息。

解决方法:

忽略此消息,并继续进行安装。


Not a UFS file system(不是 UFS 文件系统)(仅限于基于 x86 的系统

原因:

安装 Solaris 10 5/08 软件时(通过 Solaris 安装程序或自定义 JumpStart),未选中任何引导磁盘。现在,必须编辑 BIOS 才能引导系统。

解决方法:

选择 BIOS 以进行引导。有关说明,请参见 BIOS 文档。

从介质引导:一般问题


系统不引导。

描述:

在最初设置自定义 JumpStart 服务器时,您可能会遇到并不返回错误消息的引导问题。要验证有关系统以及系统引导方式的信息,请运行带有 -v 选项的引导命令。当您使用 -v 选项时,引导命令将在屏幕上显示详细调试信息。


注 –

如果未给出此标志,这些消息仍然会打印出来,但输出将被重定向到系统日志文件。有关更多信息,请参见 syslogd(1M)


解决方法:

对于基于 SPARC 的系统,请在 ok 提示符下键入以下命令。


ok boot net -v - install

在带有 Toshiba SD-M 1401 DVD-ROM 的系统上,从 DVD 介质引导失败

描述:

如果系统的 Toshiba SD-M1401 DVD-ROM 的固件修订版为 1007,则无法从 Solaris Operating System DVD 引导系统。

解决方法:

应用修补程序 111649-03 或更高版本以更新 Toshiba SD-M1401 DVD-ROM 驱动器的固件。修补程序 111649-03 在 sunsolve.sun.com 上提供。


插入无内存 PC 卡时,系统挂起或发出警告音。(仅限于基于 x86 的系统

原因:

无内存 PC 卡不能与其他设备使用相同的内存资源。

解决方法:

要修正这个问题,请查看您的 PC 卡说明并检查地址范围。


在显示系统提示符之前,系统挂起。(仅限于基于 x86 的系统

解决方法:

系统中有不支持的硬件。查看您的硬件制造商文档。

从网络引导:错误消息


WARNING: getfile: RPC failed: error 5 (RPC Timed out).(警告:getfile:RPC 失败:错误 5(RPC 超时)。)

描述:

当网络上有两个或更多个服务器响应安装客户机的引导请求时,将发生此错误。安装客户机与错误的引导服务器连接,安装挂起。以下特定原因可能导致发生该错误:

原因:

原因 1:/etc/bootparams 文件可能位于不同的服务器上,这些服务器均含有此安装客户机的项。

解决方法:

原因 1:确保网络上的服务器没有多个用于该安装客户机的 /etc/bootparams 项。如果它们有多个项,请删除所有安装服务器和引导服务器(安装客户机要使用的服务器除外)上 /etc/bootparams 文件中的重复客户机项。

原因:

原因 2:可能存在多个用于该安装客户机的 /tftpboot/rplboot 目录项。

解决方法:

原因 2:确保网络上的服务器没有多个用于该安装客户机的 /tftpboot/rplboot 目录项。如果它们有多个项,请删除所有安装服务器和引导服务器(安装客户机要使用的服务器除外)上 /tftpboot/rplboot 目录中的重复客户机项。

原因:

原因 3:服务器上的 /etc/bootparams 文件中可能存在一个安装客户机项,并且另一个 /etc/bootparams 文件中可能存在使所有系统能够访问配置文件服务器的项。这样的项与以下内容类似:

* install_config=profile_server:path

类似于 NIS 或 NIS+ bootparams 表中的前一个项的行也可引起该错误。

解决方法:

原因 3:如果通配符项在命名服务 bootparams 映射或表中(例如,* install_config=),请将其删除然后添加到引导服务器的 /etc/bootparams 文件中。


No network boot server. Unable to install the system. See installation instructions.(没有网络引导服务器。无法安装系统。请参见安装说明。)(仅限于基于 SPARC 的系统

原因:

此错误发生在您试图从网络安装的系统上。系统设置不正确。

解决方法:

确保正确地将系统设置为从网络安装。请参见《Solaris 10 5/08 安装指南:基于网络的安装》中的“使用 CD 映像添加要从网络安装的系统”


prom_panic: Could not mount file system(prom_panic:无法挂载文件系统)(仅限于基于 SPARC 的系统

原因:

当您从网络安装 Solaris,但引导软件无法找到以下内容时将发生此错误:

  • Solaris Operating System DVD(此 DVD 或安装服务器上 DVD 映像的副本)

  • Solaris Software - 1 CD 映像(Solaris Software - 1 CD 或安装服务器上的 CD 映像的副本)

解决方法:

确保安装并挂载了安装软件。

  • 如果从安装服务器的 DVD-ROM 或 CD-ROM 驱动器安装 Solaris,请确保 Solaris Operating System DVD 或 Solaris Software - 1 CD 已插入 CD-ROM 驱动器中,已挂载并已在 /etc/dfs/dfstab 文件中共享。

  • 如果从安装服务器磁盘上的 Solaris Operating System DVD 映像或 Solaris Software - 1 CD 映像的副本进行安装,确保在 /etc/dfs/dfstab 文件中共享该副本的目录路径。


Timeout waiting for ARP/RARP packet...(等待 ARP/RARP 包时发生超时...)(仅限于基于 SPARC 的系统

原因:

原因 1:客户机试图从网络引导,但它找不到知道该客户机的系统。

解决方法:

原因 1:验证系统的主机名是否在 NIS 或 NIS+ 命名服务中。此外,还要验证引导服务器的 /etc/nsswitch.conf 文件中的 bootparams 搜索顺序。

例如,/etc/nsswitch.conf 文件中的以下行指示 JumpStart 或 Solaris 安装程序首先在 NIS 映射中查找 bootparams 信息。如果此程序未找到任何信息,则安装程序将在引导服务器的 /etc/bootparams 文件中查找。

bootparams: nis files
原因:

原因 2:客户机的以太网地址不正确。

解决方法:

原因 2:验证安装服务器的 /etc/ethers 文件中的客户机以太网地址是否正确。

原因:

原因 3:在自定义 JumpStart 安装中,add_install_client 命令指定将指定的服务器作为安装服务器的平台组。如果在使用 add_install_client 时使用了错误的体系结构值,则会发生此问题。例如,要安装的计算机是 sun4u,但您却改用了 i86pc。

解决方法:

原因 3:使用正确的体系结构值,重新运行 add_install_client


ip: joining multicasts failed on tr0 - will use link layer broadcasts for multicast(ip:在 tr0 上连接多路广播失败-多路广播将使用链路层广播)(仅限于基于 x86 的系统

原因:

当使用令牌环卡引导系统时会显示此错误消息。以太网多址广播和令牌环多址广播的工作方式不同。由于向驱动器提供了无效的多址广播地址,因此驱动器返回此错误消息。

解决方法:

忽略此错误消息。如果不能使用多址广播,IP 将改用链路层广播,不会造成安装失败。


Requesting Internet address for Ethernet_Address(请求 Ethernet_Address 的 Internet 地址)(仅限于基于 x86 的系统

原因:

客户机试图从网络引导,但它找不到知道该客户机的系统。

解决方法:

验证系统的主机名是否列在命名服务中。如果系统主机名列在 NIS 或 NIS+ 命名服务中,并且系统继续显示此错误消息,请尝试重新引导系统。


RPC: Timed out No bootparams (whoami) server responding; still trying...(RPC:超时,无引导参数 (whoami) 服务器响应;继续尝试...)(仅限于基于 x86 的系统

原因:

客户机试图从网络引导,但它无法找到具有安装服务器上的 /etc/bootparams 文件项的系统。

解决方法:

在安装服务器上使用 add_install_client。使用该命令向 /etc/bootparams 文件中添加适当的项,使客户机可以从网络引导。


Still trying to find a RPL server...(继续尝试查找 RPL 服务器...)(仅限于基于 x86 的系统

原因:

系统试图从网络引导,但服务器没有设置为引导此系统。

解决方法:

在安装服务器上,为要安装的系统执行 add_install_clientadd_install_client 命令建立一个 /rplboot 目录,其中包含需要的网络引导程序。


CLIENT MAC ADDR: FF FF FF FF FF FF(仅存在于使用 DHCP 执行的网络安装

原因:

DHCP 服务器未正确配置。如果未在 DHCP 管理器软件中正确定义选项或宏,可能会发生这种错误。

解决方法:

在 DHCP 管理器软件中,验证是否正确定义了选项和宏。确认定义了“路由器”选项,并且对于用来进行网络安装的子网,“路由器”选项的值是正确的。

从网络引导:一般问题


系统从网络引导,但从其他系统而非指定的安装服务器进行引导。

原因:

客户机的另一个系统上可能存在 /etc/bootparams/etc/ethers 项。

解决方法:

在名称服务器上,为要安装的系统更新 /etc/bootparams 项。该项应符合以下语法:

install_system root=boot_server:path install=install_server:path

此外,确保安装客户机的子网中只有一个 bootparams 项。


系统没有从网络引导(仅限于使用 DHCP 执行的网络安装)。

原因:

DHCP 服务器未正确配置。如果未在 DHCP 服务器上将系统配置为安装客户机,则可能发生这种错误。

解决方法:

在 DHCP 管理器软件中,验证是否为客户机系统定义了安装选项和宏。有关更多信息,请参见《Solaris 10 5/08 安装指南:基于网络的安装》中的“使用 DHCP 服务预配置系统配置信息(任务)”

Solaris OS 的初始安装


Initial installation fails(初始安装失败)

解决方法:

如果 Solaris 安装失败,则您必须重新启动安装。要重新启动安装,请从 Solaris Operating System DVD、Solaris Software - 1 CD 或网络引导系统。

不能在安装部分 Solaris 软件之后卸载该软件,必须从备份中恢复系统或重新开始 Solaris 安装过程。


/cdrom/cdrom0/SUNW xxxx/reloc.cpio: Broken pipe(/cdrom/cdrom0/SUNWxxxx/reloc.cpio:中断的管道)

描述:

此错误消息是提示性消息,不影响安装。在没有读取进程的管道上写入时会出现此情况。

解决方法:

忽略此消息,并继续进行安装。


WARNING: CHANGE DEFAULT BOOT DEVICE(警告:更改缺省引导设备)(仅限于基于 x86 的系统)

原因:

这是提示性消息。系统 BIOS 中设置的缺省引导设备可能被设置成需要使用 Solaris Device Configuration Assistant 来引导系统。

解决方法:

继续安装,如有必要,在将 Solaris 软件安装到无需 Solaris Device Configuration Assistant 的设备后,请更改在 BIOS 中指定的系统的缺省引导设备。


仅适用于 x86 –

如果使用 locale 关键字测试初始安装的自定义 JumpStart 配置文件,则 pfinstall -D 命令无法测试配置文件。有关解决方法,请参见升级 Solaris 操作系统一节中的错误消息“无法选择语言环境”。


Procedurex86: 检查 IDE 磁盘上的坏块

IDE 磁盘驱动器不像其他 Solaris 软件所支持的驱动器那样可以自动映射出坏块。在 IDE 磁盘上安装 Solaris 之前,您可能需要执行磁盘表面分析。要在 IDE 磁盘上进行表面分析,请执行以下过程。

  1. 成为超级用户或承担等效角色。

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

  2. 引导到安装介质。

  3. 当提示您选择安装类型时,选择选项 6,单用户 shell。

  4. 启动 format(1M) 程序。


    # format
    
  5. 指定要在其上执行表面分析的 IDE 磁盘驱动器。


    # cxdy
    
    cx

    是控制器编号

    dy

    是设备编号

  6. 确定是否存在 fdisk 分区。

    • 如果已经存在 Solaris fdisk 分区,请继续执行步骤 7

    • 如果没有 Solaris fdisk 分区,请使用 fdisk 命令在磁盘上创建一个 Solaris 分区。


      format> fdisk
      
  7. 要开始表面分析,请键入:


    format> analyze
    
  8. 要确定当前设置,请键入:


    analyze> config
    
  9. (可选)要更改设置,请键入:


    analyze> setup
    
  10. 要查找坏块,请键入:


    analyze> type_of_surface_analysis
    
    type_of_surface_analysis

    是读、写或者比较

    如果 format 发现坏块,则将重新映射这些坏块。

  11. 要退出分析,请键入:


    analyze> quit
    
  12. 确定是否要指定重映射的块。

    • 如果不指定,请转至步骤 13

    • 如果需要,请键入:


      format> repair
      
  13. 要退出格式化程序,请键入:


    quit
    
  14. 通过键入以下命令在多用户模式下重新启动介质。


    # exit
    

升级 Solaris 操作系统

升级:错误消息


No upgradable disks(没有可升级磁盘)

原因:

/etc/vfstab 文件中的交换项导致升级失败。

解决方法:

注释掉 /etc/vfstab 文件中的下列行:

  • 不升级磁盘上的所有交换文件和片

  • 不再存在的交换文件

  • 任何未使用的交换片


usr/bin/bzcat not found(未找到 usr/bin/bzcat)

原因:

Solaris Live Upgrade 因需要修补程序簇而失败。

解决方法:

安装 Solaris Live Upgrade 需要修补程序。请访问 http://sunsolve.sun.com,以确保具有最近更新的修补程序列表。在 SunSolve Web 站点上搜索信息文档 72099。


Upgradeable Solaris root devices were found, however, no suitable partitions to hold the Solaris install software were found. Upgrading using the Solaris Installer is not possible. It might be possible to upgrade using the Solaris Software 1 CDROM.(找到可升级的 Solaris 根设备,但没有找到合适的用于保存 Solaris 安装软件的分区。无法使用 Solaris 安装程序升级。可以使用 Solaris Software 1 CDROM 进行升级。)(仅限于基于 x86 的系统)

原因:

由于没有足够空间,因此无法使用 Solaris Software - 1 CD 升级。

解决方法:

要进行升级,可以创建大于或等于 512 MB 的交换片,或者使用另一种升级方法,例如,通过 Solaris Operating System DVD 上的 Solaris 安装程序、网络安装映像或 JumpStart。


ERROR: Could not select locale (错误:无法选择语言环境)(仅限于基于 x86 的系统

原因:

通过使用 pfinstall -D 命令测试 JumpStart 配置文件时,预运行测试在以下情况下会失败:

  • 该配置文件包含 locale 关键字。

  • 所测试的发行版包含 GRUB 软件。从 Solaris 10 1/06 发行版开始,GRUB 引导装载器通过 GRUB 菜单简化了对安装在系统上的不同操作系统的引导。

引入 GRUB 软件后,会压缩 miniroot。该软件无法再从压缩的 miniroot 中找到语言环境列表。miniroot 是可能具有的最小的 Solaris 根 (/) 文件系统,可以在 Solaris 安装介质中找到。

解决方法:

执行以下步骤。请使用以下值。

  • MEDIA_DIR is /cdrom/cdrom0/

  • MINIROOT_DIR$MEDIA_DIR/Solaris_10/Tools/Boot

  • MINIROOT_ARCHIVE$MEDIA_DIR /boot/x86.miniroot

  • TEMP_FILE_NAME/tmp/test

  1. 成为超级用户或承担等效角色。

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

  2. 解压缩 miniroot 归档文件。


    # /usr/bin/gzcat $MINIROOT_ARCHIVE > $TEMP_FILE_NAME
    
  3. 使用 lofiadm 命令创建 miniroot 设备。


    # LOFI_DEVICE=/usr/sbin/lofiadm -a $TEMP_FILE_NAME
    # echo $LOFI_DEVICE
    /dev/lofi/1
  4. 使用 lofi 命令在 Miniroot 目录下挂载 miniroot。


    # /usr/sbin/mount -F ufs  $LOFI_DEVICE  $MINIROOT_DIR
    
  5. 测试配置文件。


    # /usr/sbin/install.d/pfinstall -D -c $MEDIA_DIR $path-to-jumpstart_profile
    
  6. 测试完成后,卸载 lofi 设备。


    # umount  $LOFI_DEVICE
    
  7. 删除 lofi 设备。


    # lofiadm -d $TEMP_FILE_NAME
    

升级:一般问题


即使存在一个可在系统上升级的 Solaris 软件版本,也不显示升级选项。

原因:

原因 1:/var/sadm 目录是符号链接,或是从另一个文件系统挂载的。

解决方法:

原因 1:/var/sadm 目录移动到根 (/) 或 /var 文件系统中。

原因:

原因 2:缺少 /var/sadm/softinfo/INST_RELEASE 文件。

解决方法:

原因 2:使用以下模板创建新的 INST_RELEASE 文件:

OS=Solaris
VERSION=x 
REV=0
x

是系统上的 Solaris 软件的版本

原因:

原因 3:/var/sadm/softinfo 中缺少 SUNWusr。

解决方法:

解决方案 3:需要执行初始安装。Solaris 软件是不可升级的。


无法关闭或初始化 md 驱动程序

解决方法:

请按照以下说明操作:


因 Solaris 安装程序无法挂载文件系统而导致升级失败。

原因:

在升级期间,该脚本会在正在升级的根 (/) 文件系统上,尝试挂载系统的 /etc/vfstab 文件中列出的所有文件系统。如果安装脚本无法挂载文件系统,则它将失败并退出。

解决方法:

确保系统的 /etc/vfstab 文件中的所有文件系统都可进行挂载。在 /etc/vfstab 文件中注释掉任何无法挂载或可能引起问题的文件系统,以便 Solaris 安装程序在升级过程中不会尝试挂载它们。不能注释掉那些包含要升级软件的基于系统的文件系统(例如 /usr)。


升级失败

描述:

系统没有足够的升级空间。

原因:

有关空间问题,请参阅《Solaris 10 5/08 安装指南:规划安装和升级》中的“通过重新分配磁盘空间进行升级”,查明是否能在不使用自动布局重新分配空间的情况下修复此问题。


升级 RAID–1 卷根 (/) 文件系统时遇到问题

解决方法:

如果在使用作为根 (/) 文件系统的 Solaris 卷管理器 RAID-1 卷进行升级时遇到问题,请参见《Solaris Volume Manager 管理指南》中的第 25  章 “对 Solaris Volume Manager 进行疑难解答(任务)”

Procedure在升级失败后继续进行升级

升级失败,系统无法进行软引导。失败是由于您无法控制的原因(例如断电或网络连接失败)造成的。

  1. 从 Solaris Operating System DVD、Solaris Software - 1 CD 或网络重新引导系统。

  2. 选择安装的升级选项。

    Solaris 安装程序确定系统是否已经部分升级并继续进行升级。

x86: 使用 GRUB 时,Solaris Live Upgrade 出现问题

在基于 x86 的系统上使用 Solaris Live Upgrade 和 GRUB 引导装载器时,可能会发生以下错误。


ERROR: 介质产品工具安装目录 path-to-installation-directory 不存在。


ERROR: 介质目录不包含操作系统升级映像。

描述:

当使用 luupgrade 命令升级新的引导环境时可以看到这些错误消息。

原因:

使用的是旧版本的 Solaris Live Upgrade。您在系统上安装的 Solaris Live Upgrade 软件包与介质以及介质上的软件包发行版不兼容。

解决方法:

确保所使用的 Solaris Live Upgrade 软件包的版本始终为将要升级到的版本。

示例:

在以下示例中,错误消息表示系统上的 Solaris Live Upgrade 软件包与介质上的软件包的版本不同。


# luupgrade -u -n s10u1 -s /mnt
	Validating the contents of the media </mnt>.
	The media is a standard Solaris media.
	ERROR: The media product tools installation directory 
</mnt/Solaris_10/Tools/Boot/usr/sbin/install.d/install_config> does 
not exist.
	ERROR: The media </mnt> does not contain an operating system upgrade 
image.

ERROR: 找不到或不可执行:</sbin/biosdev>。


ERROR: Solaris Live Upgrade 所需的一个或多个修补程序未安装。

原因:

Solaris Live Upgrade 所需的一个或多个修补程序未安装在系统上。请注意该错误消息没有捕捉到所有缺少的修补程序。

解决方法:

使用 Solaris Live Upgrade 之前,始终安装所有必需的修补程序。请访问 http://sunsolve.sun.com,以确保具有最近更新的修补程序列表。在 SunSolve Web 站点上搜索信息文档 72099。


ERROR: 设备映射命令 </sbin/biosdev> 失败。请重新引导,然后重试。

原因:

原因 1:由于以前的管理任务,Solaris Live Upgrade 无法映射设备。

解决方法:

原因 1:重新引导系统,然后使用 Solaris Live Upgrade 重试

原因:

原因 2:如果重新引导系统后出现相同的错误消息,表明您有两个或多个相同的磁盘。设备映射命令无法区分这些磁盘。

解决方法:

原因 2:在这些磁盘中的某一个磁盘上创建一个新的伪 fdisk 分区。请参见 fdisk(1M) 手册页。然后重新引导系统。


无法删除包含 GRUB 菜单的引导环境

原因:

Solaris Live Upgrade 强加了一条限制,即如果引导环境包含 GRUB 菜单,则无法删除该引导环境。

解决方法:

使用 lumake(1M)luupgrade(1M) 命令重新使用该引导环境。


无意中重新创建了包含 GRUB 菜单的文件系统。但是,磁盘具有和以前相同的片。例如,磁盘没有重新分片。

原因:

包含 GRUB 菜单的文件系统对保持系统的可引导性非常重要。Solaris Live Upgrade 命令不会破坏 GRUB 菜单。但是,如果使用 Solaris Live Upgrade 命令之外的命令无意中重新创建或破坏了包含 GRUB 菜单的文件系统,恢复软件会尝试重新安装 GRUB 菜单。在下一次重新引导时恢复软件会将 GRUB 菜单放回到相同的文件系统中。例如,您可能在文件系统上使用了 newfsmkfs 命令,并无意中破坏了 GRUB 菜单。要正确恢复 GRUB 菜单,片必须符合以下条件:

  • 包含一个可挂载的文件系统

  • 保留片以前所驻留的同一 Solaris Live Upgrade 引导环境的一部分

重新引导系统之前,对片进行一些必要的更正操作。

解决方法:

重新引导系统。会自动安装 GRUB 菜单的副本。


GRUB 菜单的 menu.lst 文件被无意中删除。

解决方法:

重新引导系统。会自动安装 GRUB 菜单的副本。

Procedure在运行 Veritas VxVm 时使用 Solaris Live Upgrade 进行升级,系统将发出警告音

如果在升级并运行 Veritas VxVM 的同时使用 Solaris Live Upgrade,除非您使用以下过程进行升级,否则系统在重新引导时将发出警告音。如果软件包不符合 Solaris 高级打包指南,将出现问题。

  1. 成为超级用户或承担等效角色。

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

  2. 创建非活动的引导环境。请参见创建新的引导环境

  3. 在升级非活动的引导环境之前,必须禁用非活动的引导环境中的现有 Veritas 软件。

    1. 挂载非活动的引导环境。


      # lumount inactive_boot_environment_name mount_point
      

      例如:


      # lumount solaris8 /mnt 
      
    2. 转到包含 vfstab 的目录,例如:


      # cd /mnt/etc
      
    3. 生成非活动引导环境的 vfstab 文件的副本,例如:


      # cp vfstab vfstab.501
      
    4. 在复制的 vfstab 中注释掉所有 Veritas 文件系统项,例如:


      #  sed  '/vx\/dsk/s/^/#/g'  < vfstab >  vfstab.novxfs
      

      将每行的第一个字符更改为 #,这使该行成为注释行。请注意,该注释行不同于系统文件注释行。

    5. 复制更改后的 vfstab 文件,例如:


      # cp vfstab.novxfs vfstab
      
    6. 转到非活动引导环境的系统文件所在的目录,例如:


      # cd /mnt/etc
      
    7. 生成非活动的引导环境的系统文件副本,例如:


      # cp system system.501
      
    8. 注释掉所有包含 drv/vx 的 "forceload:" 项。


      # sed '/forceload:   drv\/vx/s/^/*/' <system> system.novxfs
      

      将每行的第一个字符更改为 *,这使该行成为注释行。请注意,该注释行不同于 vfstab 文件注释行。

    9. 创建 Veritas install-db 文件,例如:


      # touch vx/reconfig.d/state.d/install-db
      
    10. 卸载非活动的引导环境。


      # luumount inactive_boot_environment_name 
      
  4. 升级非活动的引导环境。请参见第 5 章,使用 Solaris Live Upgrade 进行升级(任务)

  5. 激活非活动的引导环境。请参见激活引导环境

  6. 关闭系统。


    # init 0
    
  7. 在单用户模式下引导非活动的引导环境:


    OK boot -s
    

    将显示若干个包含 "vxvm" 或 "VXVM" 的消息和错误消息,可以忽略这些消息。非活动的引导环境成为活动的引导环境。

  8. 升级 Veritas。

    1. 将 Veritas VRTSvmsa 软件包从系统中删除,例如:


      # pkgrm VRTSvmsa
      
    2. 转到 Veritas 软件包所在的目录。


      # cd /location_of_Veritas_software
      
    3. 将最新的 Veritas 软件包添加到系统中:


      #  pkgadd -d `pwd` VRTSvxvm VRTSvmsa VRTSvmdoc VRTSvmman VRTSvmdev
      
  9. 恢复初始的 vfstab 和系统文件:


    # cp /etc/vfstab.original /etc/vfstab
    # cp /etc/system.original /etc/system
    
  10. 重新引导系统。


    # init 6
    

x86: 缺省情况下不会在不包含现有服务分区的系统上创建服务分区

如果在当前不包含服务分区或诊断分区的系统上安装 Solaris 10 5/08 OS,则在缺省情况下,安装程序可能不会创建服务分区。如果要在同一个磁盘上包含服务分区和 Solaris 分区,则必须在安装 Solaris 10 5/08 OS 之前重新创建服务分区。

如果您将 Solaris 8 2/02 OS 安装在具有服务分区的系统上,则安装程序可能不会保留服务分区。如果您没有手动编辑 fdisk 引导分区布局以保留服务分区,安装程序会在安装过程中删除服务分区。


注 –

如果安装 Solaris 8 2/02 OS 时未特别地保留服务分区,则可能无法重新创建服务分区并升级到 Solaris 10 5/08 OS。


如果要使包含 Solaris 分区的磁盘包含服务分区,请选择以下解决方法之一。

Procedure从网络安装映像或 Solaris Operating System DVD 安装软件

要通过网络安装映像安装软件或通过网络从 Solaris Operating System DVD 进行安装,请执行以下步骤。

  1. 删除磁盘中的内容。

  2. 安装前,使用诊断 CD 为系统创建服务分区。

    有关如何创建服务分区的信息,请参见您的硬件文档。

  3. 通过网络引导系统。

    将显示“自定义 fdisk 分区”屏幕。

  4. 要装入缺省引导磁盘分区布局,请单击“缺省”。

    安装程序将保留服务分区并创建 Solaris 分区。

Procedure从 Solaris Software - 1 CD 或从网络安装映像安装

要使用 Solaris 安装程序通过 Solaris Software - 1 CD 进行安装,或通过引导服务器上的网络安装映像进行安装,请执行以下步骤。

  1. 删除磁盘中的内容。

  2. 安装前,使用诊断 CD 为系统创建服务分区。

    有关如何创建服务分区的信息,请参见您的硬件文档。

  3. 安装程序将提示您选择创建 Solaris 分区的方法。

  4. 引导系统。

  5. 选择“将剩余磁盘空间用于 Solaris 分区”选项。

    安装程序将保留服务分区并创建 Solaris 分区。

  6. 完成安装。

附录 B 附加 SVR4 打包要求(参考)

本附录适用于安装或删除软件包(特别是第三方软件包)的系统管理员。遵循这些打包要求可实现以下目的:

本章包含以下几节:

禁止修改当前的 OS

遵守本节中的要求可确保当前运行的 OS 不被更改。

使用绝对路径

为了成功地安装操作系统,软件包必须能识别和正确地遵守备用根 (/) 文件系统,如 Solaris Live Upgrade 非活动引导环境。

软件包可以在其 pkgmap 文件(软件包映射)中包括绝对路径。如果这些文件存在,则将相对于 pkgadd 命令的 -R 选项来写它们。还可以将同时包含绝对和相对(可重定位)路径的软件包安装到备用根 (/) 文件系统上。 $PKG_INSTALL_ROOT 可放在绝对和可重定位文件之前,这样在使用 pkgadd 安装时,可正确解析所有路径。

使用 pkgadd -R 命令

使用 pkgadd -R 选项安装的或使用 pkgrm -R 选项删除的软件包不得更改当前正在运行的系统。此功能由自定义 JumpStart、Solaris Live Upgrade、非全局区域和无盘客户 机使用。

使用 pkgadd 命令 -R 选项安装的或使用 pkgrm 命令 -R 选项删除的软件包中包括的任何过程脚本均不得更改当前正在运行的系统。您提供的任何安装脚本必须引用前缀为 $PKG_INSTALL_ROOT 变量的目录或文件。软件包必须对所有带有 $PKG_INSTALL_ROOT 前缀的目录和文件进行写操作。软件包不得删除不带 $PKG_INSTALL_ROOT 前缀的目录。

表 B–1 提供了脚本语法的示例。

表 B–1 安装脚本语法示例

脚本类型 

正确的语法 

错误的语法 

Bourne shell “if”语句段 

if [ -f ${PKG_INSTALL_ROOT}\
/etc/myproduct.conf ] ; then
if [ -f /etc/myproduct.conf ] ; \
 then

删除文件 

/bin/rm -f ${PKG_INSTALL_ROOT}\
/etc/myproduct.conf
/bin/rm -f /etc/myproduct.conf 

更改文件 

echo "test=no" > ${PKG_INSTALL_ROOT}\
/etc/myproduct.conf
echo "test=no" > \
/etc/myproduct.conf

$PKG_INSTALL_ROOT $BASEDIR 之间的差别概述

$PKG_INSTALL_ROOT 表示您要向其添加软件包的计算机的根 (/) 文件系统的位置。该位置被设置为 pkgadd 命令的 -R 参数。例如,如果调用以下命令,则在软件包安装过程中 $PKG_INSTALL_ROOT 将成为 /a


# pkgadd -R /a SUNWvxvm

$BASEDIR 指向安装可重定位的软件包对象的可重定位基目录。在此仅安装可重定位的对象。不可重定位的对象(即那些在 pkgmap 文件中具有绝对路径的对象)的安装实际上始终相对于非活动的引导环境,而不是相对于 $BASEDIR。如果一个软件包没有可重定位的对象,则该软件包被称为绝对软件包(或不可重定位的软件包),系统将不定义 $BASEDIR,因而不可用于软件包过程脚本。

例如,假定一个软件包的 pkgmap 文件包含以下两项:


1 f none sbin/ls 0555 root sys 3541 12322 1002918510
1 f none /sbin/ls2 0555 root sys 3541 12322 2342423332

pkginfo 文件对 $BASEDIR 进行了说明:


BASEDIR=/opt

如果使用以下命令安装软件包,则 ls 安装在 /a/opt/sbin/ls 中,而 ls2 安装为 /a/sbin/ls2


# pkgadd -R /a SUNWtest

编写脚本的原则

软件包过程脚本必须独立于当前正在运行的 OS,以防止修改 OS。过程脚本定义在软件包安装和删除过程中的特定时刻所发生的操作。可以使用以下预定义的名称创建四个过程脚本:preinstallpostinstallpreremovepostremove

表 B–2 创建脚本的原则

原则 

影响 Solaris Live Upgrade 

影响非全局区域 

脚本必须在 Bourne shell (/bin/sh) 中编写。Bourne shell 是 pkgadd 命令用来执行过程脚本的解释程序。

脚本不得启动或停止任何进程,或者依赖于某些命令(例如 pstruss)的输出,因为这些进程或命令都与操作系统有关,并且会报告关于当前正在运行的系统的信息。

脚本可自由使用其他标准 UNIX 命令,例如 exprcpls 以及其他有助于编写 shell 脚本的命令。

脚本调用的任何命令必须在所有支持的发行版中可用,因为软件包必须在所有这些发行版上运行。所以,不能使用在 Solaris 8 发行版之后添加或删除的命令。 

要验证在 Solaris 8、9 或 10 发行版中是否支持某个特定的命令或选项,请参见 http://docs.sun.com 上的 Solaris Reference Manual AnswerBook 的特定版本。

 

维护无盘客户机兼容性

软件包不得执行由软件包本身提供的命令。这是为了维护无盘客户机的兼容性,同时避免运行那些可能需要尚未安装的共享库的命令。

验证软件包

所有软件包都必须通过 pkgchk 验证。在创建软件包之后以及安装它之前,必须使用以下命令对其进行检查。


# pkgchk -d dir_name pkg_name
dir_name

指定该软件包所驻留的目录的名称

pkg_name

指定该软件包的名称


示例 B–1 测试软件包

创建软件包后,必须通过使用 pkgadd-R dir_name 选项将该软件包安装到备用根 (/) 文件系统位置,以便对该软件包进行测试。安装完软件包后,必须使用 pkgchk 命令检查软件包的正确性,如本例所示。


# pkgadd -d . -R /a SUNWvxvm
# pkgchk -R /a SUNWvxvm

不应显示任何错误。



示例 B–2 在 /export/SUNWvxvm 中测试软件包

如果软件包位于 /export/SUNWvxvm,则可发出以下命令。


# pkgchk -d /export SUNWvxvm

不应显示任何错误。


在创建、修改和删除文件时,其他命令可检查软件包。以下是一些命令示例。


# TEMPDIR=/a; export TEMPDIR
# truss -t open /usr/sbin/pkgadd -R ${TEMPDIR} SUNWvxvm \
2>&1 > /dev/null | grep -v O_RDONLY | grep -v \
'open("'${TEMPDIR}

安装或升级时禁止用户交互

使用下列标准的 Solaris 实用程序时,必须在无用户输入信息提示的情况下,添加或删除软件包。

要测试软件包以确保该软件包能在无用户交互的情况下安装,可使用 pkgadd 命令的 -a 选项创建一个新管理文件。-a 选项将定义一个安装管理文件,该文件用来替代缺省的管理文件。使用缺省文件时可能会导致提示用户输入更多信息。您可以创建一个管理文件,该文件指示 pkgadd 应绕过这些检查并安装软件包,无需用户确认。有关详细信息,请参见手册页 admin(4)pkgadd(1M)

以下示例说明了 pkgadd 命令如何使用管理文件。


示例 B–3 安装管理文件

以下是一个安装管理文件示例,该安装管理文件几乎不需要与 pkgadd 实用程序进行用户交互。除非软件包需要的空间大于系统中的可用空间,否则 pkgadd 实用程序将使用此文件并安装软件包,而不会提示用户输入更多的信息。

mail=
instance=overwrite
partial=nocheck
runlevel=nocheck
idepend=nocheck
space=ask
setuid=nocheck
confiict=nocheck
action=nocheck
basedir=default

为区域设置软件包参数

软件包具有一些参数,用以控制在安装了非全局区域的系统上如何分布和显示软件包的内容。在安装了区域的系统上,SUNW_PKG_ALLZONES SUNW_PKG_HOLLOWSUNW_PKG_THISZONE 这三个软件包参数定义了软件包的特征。必须对这些参数进行设置,才能在安装了非全局区域的系统中管理软件包。

下表列出了四种用于设置软件包参数的有效组合。如果所选的设置组合不是表中所列的设置组合,则该设置无效,并将导致无法安装软件包。


注 –

请确保设置了所有这三个软件包参数。可以将这三个软件包参数保留为空。如果不设置这些参数,软件包工具会将缺少区域软件包参数视为该设置设为 "false",但强烈建议您设置这些参数。通过设置这三个软件包参数,可以指定安装或删除软件包时软件包工具所应呈现的确切行为。


表 B–3 区域的有效软件包参数设置

SUNW_PKG_ALLZONES 设置

SUNW_PKG_HOLLOW 设置

SUNW_PKG_THISZONE 设置

软件包说明 

false 

false 

false 

这是软件包的缺省设置,即,对于所有区域软件包参数都不指定值。 

具有这些设置的软件包既可以安装在全局区域中,也可以安装在非全局区域中。 

  • 如果在全局区域中运行 pkgadd 命令,则软件包将安装在全局区域以及所有非全局区域中。

  • 如果在某个非全局区域中运行 pkgadd 命令,则软件包将只安装在此非全局区域中。

在上述两种情况下,软件包的全部内容在安装了该软件包的所有区域中都是可见的。 

false 

false 

true 

具有这些设置的软件包既可以安装在全局区域中,也可以安装在非全局区域中。如果在安装软件包之后创建新的非全局区域,则软件包不会传播到这些新的非全局区域中。 

  • 如果在全局区域中运行 pkgadd 命令,则软件包将只安装在全局区域中。

  • 如果在某个非全局区域中运行 pkgadd 命令,则软件包将只安装在此非全局区域中。

在上述两种情况下,软件包的全部内容在安装了该软件包的区域中都是可见的。 

true 

false 

false 

具有这些设置的软件包只能安装在全局区域中。运行 pkgadd 命令后,软件包将安装在全局区域以及所有非全局区域中。软件包的全部内容在所有区域中都是可见的。


注 –

在非全局区域中安装软件包的任何尝试都将失败。


true 

true 

false 

具有这些设置的软件包只能由全局管理员安装在全局区域中。运行 pkgadd 命令后,软件包的内容将全部安装在全局区域中。如果将软件包的软件包参数设置为这些值,则软件包本身的内容并不会传送到任何非全局区域中,而只会将那些使软件包看起来似乎已安装的必要的软件包安装信息安装到所有非全局区域中。这样,将可以安装其他与此软件包相关联的软件包。有关 "hollow" 软件包的更多信息,请参见《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的第 24  章 “关于安装了区域的 Solaris 系统上的软件包和修补程序(概述)”

出于软件包相关性检查目的,软件包看起来像是安装在所有区域中。 

  • 在全局区域中,软件包的全部内容都是可见的。

  • 在完全根非全局区域中,软件包的所有内容都是不可见的。

  • 如果非全局区域从全局区域继承某个文件系统,则安装在此文件系统中的软件包在非全局区域中是可见的。由软件包传送的所有其他文件在此非全局区域中都是不可见的。

    例如,稀疏根非全局区域将与全局区域共享某些目录。这些目录是只读的。稀疏根非全局区域将与其他区域共享 /platform 文件系统。另外一个示例是只传送与引导硬件相关的文件的软件包。


注 –

在非全局区域中安装软件包的任何尝试都将失败。


描述 

更多信息 

有关软件包和区域的更多详细信息 

《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的第 24  章 “关于安装了区域的 Solaris 系统上的软件包和修补程序(概述)”

有关稀疏根区域和完全根区域的概述 

《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的第 16  章 “Solaris Zones 介绍”

有关软件包特征和参数的信息 

pkginfo(4)

有关显示软件包参数值的信息 

pkgparam(1)

有关背景信息

下列参考提供有关打包要求和特定命令语法的背景信息。

有关打包要求和术语定义的详细信息 

《Application Packaging Developer’s Guide》中的第 6  章 “Advanced Techniques for Creating Packages”

有关添加和删除软件包以及安装管理文件的基本信息 

《系统管理指南:基本管理》中的第 16  章 “管理软件(概述)”

有关本附录中引用的特定命令的详细信息,请参见手册页 

dircmp(1)fssnap(1M)ps(1)truss(1) pkgadd(1M)pkgchk(1M)pkgrm(1M)

有关 Solaris Live Upgrade 的概述 

第 2 章,Solaris Live Upgrade(概述)

有关自定义 JumpStart 的概述 

《Solaris 10 5/08 安装指南:自定义 JumpStart 和高级安装》中的第 2  章 “自定义 JumpStart(概述)”

有关 Solaris Zones 的概述 

《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的第 16  章 “Solaris Zones 介绍”

附录 C 升级时使用修补程序分析器(任务)

本章提供有关在升级 Solaris OS 前使用修补程序分析器检查修补程序的说明。如果要升级到初始 Solaris 10 3/05 发行版之后的 Solaris 10 发行版,修补程序分析器会在您的系统上执行分析。

升级到 Solaris 更新版

如果已在运行 Solaris 10 3/05 发行版的 OS,并且已安装了各个修补程序,则升级到后续的 Solaris 10 发行版将会导致以下结果:

修补程序分析器会在您的系统上执行分析,以确定升级到上述任何一个发行版时要删除哪些修补程序(如果有)。修补程序分析器有以下几种形式。

执行分析后,请参阅查看修补程序分析器输出以了解有关修补程序分析结果的详细信息。

Procedure运行 analyze_patches 脚本


注 –

要运行 analyze_patches 脚本,必须可以使用脚本通过 NFS 或本地挂载的介质访问已安装的系统和 Solaris Operating System DVD、Solaris Software CD 或网络安装映像。


  1. 更改到 Misc 目录。

    • SPARC:如果映像位于本地挂载的介质上,请键入:


      # cd /cdrom/cdrom0/s0/Solaris_10/Misc
      
    • x86:如果映像位于本地挂载的介质上,请键入:


      # cd /cdrom/cdrom0/Solaris_10/Misc
      

      在此命令中,date 为该发行版的实际日期,如 06。

    • 如果映像可以在 NFS 文件系统上得到,请键入:


      # cd /NFS_mount_directory/Solaris_10/Misc
      
  2. 运行 analyze_patches 脚本:


    # ./analyze_patches -R rootdir -N netdir -D databasedir
    
    -R rootdir

    rootdir 是已安装系统的根目录。缺省值是 /

    -N netdir

    netdir 是要安装的 OS 映像的根的路径。缺省值为 /cdrom/cdrom0netdirSolaris_10 目录所在的目录的路径。如果从 NFS 挂载点运行 patch_analyzer,则必须使用此选项。

    -D databasedir

    如果脚本从 OS 映像中 Misc/ 目录之外的目录调用,则程序无法找到用于修补程序分析的数据库。使用 -D 选项可以提供数据库的路径。如果没有此数据库(它位于 OS 映像的 Solaris_10 /Misc/database 中), 脚本将不能正常工作。

Procedure查看修补程序分析器输出

执行分析后,请执行以下步骤查看输出。

  1. 查看修补程序分析器的输出。

    修补程序分析器提供了要被其他修补程序删除、降级、积累或废弃的修补程序的列表。修补程序积累类似于修补程序升级。积累的修补程序将被删除,它的修复由一个新的修补程序传送。将显示以下信息:


    将要删除修补程序 105644-03。
    修补程序 105925 将从 -02 降级为 -01。
    修补程序 105776-01 将由修补程序 105181-05 积累/废弃。

    如果修补程序分析器程序不提供列表,将不会对系统上先前安装的任何修补程序采取任何操作。

  2. 确定修补程序替换和删除是否可以接受。

    • 如果是,则升级系统。

    • 如果否,则不升级系统。