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

第 9 章 Solaris Live Upgrade(示例)

本章提供了有关创建引导环境,然后升级并激活该新引导环境以使之成为当前运行系统的示例。


注 –

本章介绍针对 UFS 文件系统的 Solaris Live Upgrade。有关将 UFS 文件系统迁移到 ZFS 根池或创建和安装 ZFS 根池的过程,请参见第 13 章


本章包含以下几节:

使用 Solaris Live Upgrade 进行升级的示例

在本示例中,将在运行 Solaris 9 发行版的系统上使用 lucreate 命令创建新的引导环境。通过使用 luupgrade 命令将此新引导环境升级到 Solaris 10 5/09 发行版。通过使用 luactivate 命令激活已升级的引导环境。此外,还提供了回退到初始引导环境的示例。

准备使用 Solaris Live Upgrade

在第一次运行 Solaris Live Upgrade 之前,必须从安装介质安装最新 Solaris Live Upgrade 软件包以及安装 SunSolve 信息文档 206844 中列出的修补程序。在 SunSolve Web 站点上搜索信息文档 206844(以前为 72099)。

最新的软件包以及修补程序可确保您具有该发行版的所有最新错误修复和新增功能。在继续创建新的引导环境之前,请确保安装了所有与您的系统相关的修补程序。

下列步骤介绍了 SunSolve 信息文档 206844 中的步骤。


注 –

此过程假设系统正在运行卷管理器。有关使用卷管理器管理可移除介质的详细信息,请参阅《系统管理指南:设备和文件系统》


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

  2. 按照 SunSolve Web 站点上信息文档 206844 中的说明删除和添加 Solaris Live Upgrade 软件包。

    1. 删除现有的 Solaris Live Upgrade 软件包。

      三个 Solaris Live Upgrade 软件包(SUNWluuSUNWlurSUNWlucfg)组成了使用 Solaris Live Upgrade 进行升级或修补所需的软件。这些软件包包含现有的软件、新增功能和错误修复。如果在使用 Solaris Live Upgrade 前未删除现有软件包并在系统上安装新的软件包,则升级或修补到目标发行版将会失败。从 Solaris 10 8/07 发行版开始,新增了 SUMWlucfg 软件包。如果您要从 Solaris 10 8/07 之前的发行版使用 Solaris Live Upgrade 软件包,则不需要删除此软件包。


      # pkgrm SUNWlucfg SUNWluu SUNWlur
      
    2. 安装新的 Solaris Live Upgrade 软件包。

      可以使用安装 DVD 或 CD 上的 liveupgrade20 命令或使用 pkgadd 命令安装软件包。liveupgrade20 命令要求有 Java 软件。如果系统没有安装 Java 软件,则需要使用 pkgadd 命令安装软件包。请参见 SunSolve 信息文档了解更多信息。

      • 如果您使用的是 Solaris 操作系统 DVD,请更改目录并运行安装程序。

        • 更改目录。


          # cd /cdrom/cdrom0/Solaris_10/Tools/Installers
          

          注 –

          对于基于 SPARC 的系统,Solaris 10 10/08 之前的发行版的安装程序的路径是不同的。


          # cd /cdrom/cdrom0/s0/Solaris_10/Tools/Installers
          

        • 运行安装程序。


          # ./liveupgrade20  -noconsole - nodisplay
          

          -noconsole-nodisplay 选项可以阻止显示字符用户界面 (character user interface, CUI)。


          注 –

          不再支持 Solaris Live Upgrade CUI。


      • 如果您使用的是 Solaris Software – 2 CD,可以在不更改路径的情况下运行安装程序。


        % ./installer
        
      • 验证已成功安装软件包。


        # pkgchk -v SUNWlucfg SUNWlur SUNWluu
        
  3. 安装信息文档 206844 中列出的修补程序。

    1. 如果您要在本地磁盘上存储修补程序,请创建一个目录,如 /var/tmp/lupatches

    2. 从 SunSolve Web 站点获取修补程序列表。

    3. 转至修补程序目录,如本示例中所示。


      # cd /var/tmp/lupatches
      
    4. 安装修补程序。


      # patchadd -M  path-to-patchespatch-id  patch-id
      

      path-to-patches 是修补程序目录的路径,例如 /var/tmp/lupatchespatch-id 是修补程序号。用空格分隔多个修补程序名称。


      注 –

      需要按照信息文档 206844 指定的顺序应用修补程序。


    5. 根据需要重新引导系统。某些修补程序需要重新引导后才能生效。

      仅限 x86:需要重新引导系统。否则,Solaris Live Upgrade 会失败。


      # init 6
      

      您现在有了成功创建新的引导环境所需的软件包和修补程序。

创建引导环境

使用 -c 选项将源引导环境命名为 c0t4d0s0。仅在创建第一个引导环境时才需要命名源引导环境。有关使用 -c 选项进行命名的更多信息,请参见“首次创建引导环境”中步骤 2 的描述。

将新引导环境命名为 c0t15d0s0-A 选项将创建一个与引导环境名称相关联的说明。

将根 (/) 文件系统复制到新引导环境。同时,创建了一个新的交换片,而不是共享源引导环境的交换片。


# lucreate -A 'BE_description' -c /dev/dsk/c0t4d0s0 -m /:/dev/dsk/c0t15d0s0:ufs\
-m -:/dev/dsk/c0t15d0s1:swap -n /dev/dsk/c0t15d0s0

升级非活动的引导环境

将非活动的引导环境命名为 c0t15d0s0。从网络中获取用于升级的操作系统映像。


# luupgrade -n c0t15d0s0 -u -s /net/ins-svr/export/Solaris_10 \ 
combined.solaris_wos

检查引导环境是否可引导

lustatus 命令报告引导环境创建是否完成。lustatus 还显示引导环境是否可引导。


# lustatus
boot environment   Is        Active  Active     Can	    Copy
Name               Complete  Now	 OnReboot   Delete	 Status
------------------------------------------------------------------------
c0t4d0s0           yes       yes      yes      no      -
c0t15d0s0          yes       no       no       yes     -

激活非活动的引导环境

通过 luactivate 命令使 c0t15d0s0 成为可引导的引导环境。然后重新引导系统,c0t15d0s0 即会成为活动的引导环境。c0t4d0s0 引导环境现在处于非活动状态。


# luactivate c0t15d0s0
# init 6

(可选)回退到源引导环境

以下回退过程取决于新引导环境的激活情况:


示例 9–1 SPARC: 在忽略引导环境创建成功的情况下回退

在本示例中,虽然新引导环境已经被成功激活了,但初始引导环境 c0t4d0s0 被重新恢复为活动的引导环境。设备名称为 first_disk


# /sbin/luactivate first_disk 
# init 6


示例 9–2 SPARC: 从失败的引导环境激活中回退

在本示例中,新引导环境是不可引导的。您必须返回到 OK 提示符,然后在单用户模式下从初始引导环境 c0t4d0s0 中引导。


OK boot net -s
# /sbin/luactivate first_disk
Do you want to fallback to activate boot environment c0t4d0s0 
(yes or no)? yes
# init 6

初始引导环境 c0t4d0s0 成为活动的引导环境。



示例 9–3 SPARC: 使用 DVD、CD 或网络安装映像回退到初始引导环境

在本示例中,新引导环境是不可引导的。您无法从初始引导环境中引导,因此必须使用介质或网络安装映像。设备为 /dev/dsk/c0t4d0s0。初始引导环境 c0t4d0s0 成为活动的引导环境。


OK boot net -s
# fsck /dev/dsk/c0t4d0s0
# mount /dev/dsk/c0t4d0s0 /mnt 
# /mnt/sbin/luactivate
Do you want to fallback to activate boot environment c0t4d0s0 
(yes or no)? yes
# umount /mnt 
# init 6


示例 9–4 x86: 通过使用 GRUB 菜单回退到初始引导环境

从 Solaris 10 1/06 发行版开始,以下示例介绍了通过使用 GRUB 菜单回退的步骤。

在本示例中,正确显示了 GRUB 菜单,但是新引导环境不可引导。要启用回退,在单用户模式中引导初始引导环境。

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

  2. 要显示 GRUB 菜单,请重新引导系统。


    # init 6
    

    此时将显示 GRUB 菜单。


    GNU GRUB version 0.95 (616K lower / 4127168K upper memory)
    +-------------------------------------------------------------------+
    |Solaris                                                            |
    |Solaris failsafe                                                   |
    |second_disk                                                        |
    |second_disk failsafe                                               |
    +-------------------------------------------------------------------+
    Use the ^ and v keys to select which entry is highlighted. Press
    enter to boot the selected OS, 'e' to edit the commands before
    booting, or 'c' for a command-line.
  3. 从 GRUB 菜单中选择初始引导环境。必须已使用 GRUB 软件创建了该引导环境。在 Solaris 10 1/06 发行版之前创建的引导环境不属于 GRUB 引导环境。如果您没有可引导的 GRUB 引导环境,则跳至示例 9–5

  4. 通过键入以下内容来编辑 GRUB 菜单: e

  5. 通过使用方向键选择 kernel /boot/multiboot 并键入 e,将显示 grub 编辑菜单。


    grub edit>kernel /boot/multiboot
  6. 通过键入 -s 引导至单用户模式。


    grub edit>kernel /boot/multiboot -s
    
  7. 引导并挂载该引导环境。然后将其激活。


# b
# fsck /dev/dsk/c0t4d0s0
# mount /dev/dsk/c0t4d0s0 /mnt 
# /mnt/sbin/luactivate
Do you want to fallback to activate boot environment c0t4d0s0
(yes or no)? yes
# umount /mnt
# init 6


示例 9–5 x86: 通过使用 DVD 或 CD 回退到具有 GRUB 菜单的初始引导环境

从 Solaris 10 1/06 发行版开始,以下示例介绍了通过使用 DVD 或 CD 回退的步骤。

在本示例中,新引导环境是不可引导的。另外,也不显示 GRUB 菜单。要启用回退,在单用户模式中引导初始引导环境。

  1. 插入 Solaris Operating System for x86 Platforms DVD 或 Solaris Software for x86 Platforms - 1 CD。

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

  3. 从 DVD 或 CD 引导。


    # init 6
    

    此时将显示 GRUB 菜单。


    GNU GRUB version 0.95 (616K lower / 4127168K upper memory)
    +-------------------------------------------------------------------+
    |Solaris 10 5/09                                                    |
    |Solaris 10 5/09 Serial Console ttya                                |
    |Solaris 10 5/09 Serial Console ttyb (for lx50, v60x and v65x       |
    +-------------------------------------------------------------------+
    Use the ^ and v keys to select which entry is highlighted. Press
    enter to boot the selected OS, 'e' to edit the commands before
    booting, or 'c' for a command-line.
  4. 等待引导缺省选项,或选择所显示的任一选项。

    此时将显示安装屏幕。


    +-------------------------------------------------------------------+
    
    |Select the type of installation you want to perform:                |
    |                                                                    |
    |         1 Solaris Interactive                                      |
    |         2 Custom JumpStart                                         |
    |         3 Solaris Interactive Text (Desktop session)               |
    |         4 Solaris Interactive Text (Console session)               |
    |         5 Apply driver updates                                     |
    |         6 Single user shell                                        |
    |                                                                    |
    |        Enter the number of your choice followed by the <ENTER> key.|
    |        Alternatively, enter custom boot arguments directly.        |
    |
    |         If you wait 30 seconds without typing anything,            |
    |         an interactive installation will be started.               |
    +----------------------------------------------------------------- --+
  5. 选择 "Single user shell" 选项。

    此时将显示以下消息。


    Do you wish to automatically update the boot archive? y /n
  6. 键入: n


    Starting shell...
    #

    现在即进入单用户模式。

  7. 挂载引导环境。然后将其激活并重新引导。


    # fsck /dev/dsk/c0t4d0s0
    # mount /dev/dsk/c0t4d0s0 /mnt 
    # /mnt/sbin/luactivate
    Do you want to fallback to activate boot environment c0t4d0s0
    (yes or no)? yes
    # umount /mnt
    # init 6
    

拆离和升级 RAID-1 卷(镜像)一面的示例

该示例说明如何完成以下任务:

图 9–1 显示了当前的引导环境,其中包含三个物理磁盘。

图 9–1 拆离和升级 RAID-1 卷(镜像)的一面

文中对此图例进行了说明。

  1. 创建包含镜像的新引导环境 second_disk

    下列命令执行这些任务。

    • lucreate 配置挂载点根 (/) 的 UFS 文件系统,并创建镜像 d10。该镜像是复制到镜像 d10 的当前引导环境的根 (/) 文件系统的容器。镜像 d10 上的所有数据都被覆写。

    • c0t1d0s0c0t2d0s0 两个片被指定用作子镜像。这两个子镜像被附加到镜像 d10


    # lucreate -c first_disk -n second_disk \ 
    -m /:/dev/md/dsk/d10:ufs,mirror \ 
    -m /:/dev/dsk/c0t1d0s0:attach \ 
    -m /:/dev/dsk/c0t2d0s0:attach
    
  2. 激活 second_disk 引导环境。


    # /sbin/luactivate second_disk
    # init 6
    
  3. 创建另一个引导环境 third_disk

    下列命令执行这些任务。

    • lucreate 配置挂载点根 (/) 的 UFS 文件系统,并创建镜像 d20

    • 从当前镜像中删除片 c0t1d0s0,并将其添加到镜像 d20 中。子镜像(即根 [ /] 文件系统)内容被保存,不进行任何复制。


    # lucreate -n third_disk \ 
    -m /:/dev/md/dsk/d20:ufs,mirror \ 
    -m /:/dev/dsk/c0t1d0s0:detach,attach,preserve
    
  4. 升级新的引导环境,third_disk


    # luupgrade -u -n third_disk \ 
    -s /net/installmachine/export/Solaris_10/OS_image
    
  5. 将修补程序添加到已升级的引导环境中。


    # luupgrade -t n third_disk -s /net/patches 222222-01
    
  6. 激活 third_disk 引导环境以使该引导环境成为当前运行系统。


    # /sbin/luactivate third_disk
    # init 6
    
  7. 删除引导环境 second_disk


    # ludelete second_disk
    
  8. 下列命令执行这些任务。

    • 清除镜像 d10

    • 检查 c0t2d0s0 串联的数目。

    • metastat 命令发现的串联附加到镜像 d20 中。metattach 命令将新附加的串联与镜像 d20 中的串联同步。串联上的所有数据都被覆写。


    # metaclear d10 
    # metastat -p | grep c0t2d0s0
    dnum 1 1 c0t2d0s0
    # metattach d20 dnum
    
    num

    是在 metastat 命令中发现的串联数目

新引导环境 third_disk 已经升级,并成为当前运行系统。third_disk 包含已镜像的根 (/) 文件系统。

图 9–2 显示了通过使用以上示例中的命令拆离镜像和升级镜像的整个过程。

图 9–2 拆离和升级 RAID-1 卷(镜像)的一面(继续)

文中对此图例进行了说明。

从现有卷迁移到 Solaris 卷管理器 RAID-1 卷的示例

Solaris Live Upgrade 允许在 RAID–1 卷(镜像)上创建新的引导环境。当前引导环境的文件系统可位于以下任一位置:

但是,新引导环境的目标必须是 Solaris 卷管理器 RAID-1 卷。例如,为根 (/) 文件系统的副本指定的片必须是 /dev/vx/dsk/rootvolrootvol 是包含根 (/) 文件系统的卷。

在本示例中,当前引导环境包含非 Solaris 卷管理器卷上的根 (/) 文件系统。新引导环境是用 Solaris 卷管理器 RAID-1 卷 c0t2d0s0 上的根 (/) 文件系统创建的。lucreate 命令将当前卷迁移到 Solaris 卷管理器卷中。新引导环境的名称为 svm_belustatus 命令将报告新引导环境是否做好了激活和重新引导准备。激活新引导环境后,该环境将成为当前环境。


# lucreate -n svm_be -m /:/dev/md/dsk/d1:mirror,ufs \  
-m /:/dev/dsk/c0t2d0s0:attach
# lustatus
# luactivate svm_be
# lustatus
# init 6

创建空引导环境并安装 Solaris Flash 归档文件的示例

下列过程为包含三个步骤:

使用 lucreate 命令创建一个基于活动引导环境中的文件系统的引导环境。如果使用 lucreate 命令时附带 -s 选项,则 lucreate 命令将快速创建一个空引导环境。系统会保留指定文件系统的片,但是不会复制该文件系统;会命名引导环境,但在使用 Solaris Flash 归档文件安装之前不会真正创建该引导环境。使用归档文件安装空引导环境时,文件系统会被安装在保留的片上。然后激活该引导环境。

创建空引导环境

第一步是创建空引导环境。为指定的文件系统保留片 ,但是不会复制当前引导环境的文件系统。新引导环境命名为 second_disk


# lucreate  -s - -m /:/dev/dsk/c0t1d0s0:ufs \  
-n second_disk

该引导环境已做好使用 Solaris Flash 归档文件进行总装的准备。

图 9–3 显示了如何创建空引导环境。

图 9–3 创建空引导环境

文中对此图例进行了说明。

在新引导环境中安装 Solaris Flash 归档文件

第二步,在前一个示例创建的 second_disk 引导环境中安装归档文件。归档文件位于本地系统中。对应 -s-a 选项的操作系统版本都是 Solaris 10 5/09 发行版。归档文件被命名为 Solaris_10.flar


# luupgrade -f -n second_disk \
-s /net/installmachine/export/Solaris_10/OS_image \ 
-a /net/server/archive/10.flar 

引导环境已经做好激活准备。

激活新引导环境

最后一步,使 second_disk 引导环境可以用 luactivate 命令进行引导。然后重新引导系统,second_disk 就成为活动的引导环境。


# luactivate second_disk
# init 6