第 7 章更新 SUSE Linux Enterprise

目录

7.1. 术语
7.2. 新维护模型
7.3. 准备工作
7.4. 用 YaST Wagon 升级
7.5. 用 zypper 升级
7.6. 从 SLE 10 SP4 更新到 SLE 11 SP2
7.7. 从 SLE 11 SP1 更新到 SLE 11 SP2
7.8. 安装服务包
7.9. 原子更新

摘要

SUSE® Linux Enterprise (SLE) 使您可以将现有系统更新为新版本而不用完全重安装系统。不需新安装。用户主目录和系统配置等旧数据保持不变。在产品的生命周期内,您可以应用服务包以改进系统安全性和改正软件缺陷。从本地 CD 或 DVD 驱动器安装或从中央网络安装源安装。

[Note]版本发行说明

发行说明文档的当前版本可在 http://www.suse.com/documentation/sles11/#additional 上联机阅读。

7.1. 术语

本章使用了若干术语。为了理解该信息,请阅读以下定义:

Deltarpm

deltarpm 仅包含某个包的两个已定义版本之间的有区别二进制文件,因此其下载大小最小。

迁移

从非 SUSE 操作系统或产品到 SUSE 产品的安装,例如从 Windows 到 SUSE Linux Enterprise Server。

增补程序

增补程序由一个或多个包组成,可通过 deltarpm 方式应用。它也可能带来与尚未安装的包的依赖性。

包是 rpm 格式的压缩文件,包含特定程序的文件。

服务包 (SP)

将几个增补程序合并到便于安装或部署的一个组织体中。服务包是有编号的并通常包含安全性修复、更新、升级或程序增强。

更新

安装更新版本的包或分发包。

升级

安装包或分发包的更新版本,引入新功能

7.2. 新维护模型

新的维护模型结合了服务包的灵活性和控制性。它提供以下优势:

  • 使服务包变得更轻便,更易于测试和部署。

  • 允许使用更旧版本,但支持完整系统。

  • 通过选择性增强来实现在各服务包发行间隔期间迎合市场需求,并允许常规更新安装源中的更多更新。通过选择增强,可将各服务包发行间隔维持得更长。

图 7.1 “维护递送演进”描述了以上某些方面。

图 7.1. 维护递送演进

维护递送演进

产品的生命周期为 10 年:7 年常规支持和 3 年扩展支持。主要版本每 4 年发布一次,服务包每 18 个月发布一次。长期服务包支持是一段扩展期或扩展主版本生命周期(请参见图 7.2 “长期服务包支持”)。

图 7.2. 长期服务包支持

长期服务包支持

长期服务包支持需要标准或优先级活动订阅。它不影响 L1 或 L2 订阅条款。主动处理安全性更新:这些是非用户驱动的关键漏洞、内核中的本地 root 攻击或无需用户干涉可直接执行的其他 root 攻击。

扩展支持级别的范围从第 8 年开始直至第 10 年。这些包含持续的 L3 工程级别诊断和反应性关键 bug 修复。这些支持级别主动更新内核中的本地 root 攻击或无需用户干涉可直接执行的其他 root 攻击而且,它们借助有限包排除列表支持现有工作负载、软件堆栈和硬件。可在表 7.1 “安全更新和 bug 修复”中找到概述。

表 7.1. 安全更新和 bug 修复

 

- 常规支持 -

延长支持

主题

当前 SP

SP (n-1) 6 个月

SP (n-1) ,带 LTSS

第 6 和 7 年 ,带 LTSS

第 8、9 和 10 年 ,带 LTSS

L1/L2 技术服务

主动维护

 

 

通过 PLDP 的驱动程序更新

  

主动安全更新

 

L3 工程支持

后端可用

 


7.3. 准备工作

更新之前,请将旧配置文件复制到单独的媒体(如磁带设备、可卸硬盘等),以保证数据安全。这主要适用于储存在 /etc 中的文件以及 /var/opt 中的一些目录和文件。最好将 /homeHOME 目录)中的用户数据也写入备份媒体。以 root 用户的身份备份此数据。仅 root 用户对所有本地文件具有读许可权限。

在开始更新之前,记录必要的 root 分区信息。命令 df / 可以列出 root 分区的设备名。在例 7.1 “使用 df -h 列示信息”中,要记录的 root 分区是 /dev/sda3(作为 / 装入)。

例 7.1. 使用 df -h 列示信息

Filesystem     Size  Used Avail Use% Mounted on
/dev/sda3       74G   22G   53G  29% /
tmpfs          506M     0  506M   0% /dev/shm
/dev/sda5      116G  5.8G  111G   5% /home
/dev/sda1       44G    4G   40G   9% /data

从旧版本到新版本,软件的大小有增长的趋势。因此,在进行更新之前,请使用 df 查看可用分区空间。如果怀疑磁盘空间不足,请在更新和重分区系统前保证数据安全。对于每个分区应该具有多少空间,没有一般的经验可以借鉴。空间要求取决于特定的分区配置文件和选定的软件。

[Note]系统版本要求

有关升级到此版本的具体系统版本要求,请参考更新产品随附的发行说明。在发行说明中,您可以找到有关升级过程的详细信息。

[Note]产品版本升级要求

从上个版本( 例如 SUSE Linux Enterprise 11 SP1)升级到当前版本 (SUSE Linux Enterprise 11 SP2) - 不要跳过中间的任何服务包版本;这表示既不是从 SUSE Linux Enterprise 10 SP3 或根早版本升级到此服务包,也不是从 SUSE Linux Enterprise 11 GA 升级到 SUSE Linux Enterprise 11 SP2。请先确保所有可用的联机更新都已成功应用,再开始系统升级。

7.4. 用 YaST Wagon 升级

YaST Wagon 是自动 YaST 联机迁移过程。在启动 YaST Wagon 以升级到 SP 功能级别之前,请确保符合以下要求:

  • 整个更新过程中系统必须联机,因为此过程需要访问 Novell Customer Center。

  • 如果您的设置包含第三方软件或外接式附件软件,则在另一台计算机上测试此过程以确保升级未破坏依赖性。

  • 确保整个过程成功完成。否则系统将不一致。

[Note]

使用 Wagon 升级迁移期间,将更新此更新堆栈。因此,建议避免使用诸如 zypper 或桌面更新小程序的任何其他软件管理工具。建议迁移期间停止桌面更新小程序。

  1. 如果更新安装源中提供了迁移增补程序(更新堆栈更新),则以 root 身份使用 wagon 从命令行启动迁移过程。

    [Note]迁移增补程序通知

    当迁移可用时,GNOME 桌面右下角会显示一条通知消息。单击此通知消息中的链接可启动迁移过程。

  2. 确认欢迎对话框。

  3. 如果在常规 YaST 联机更新期间尚未安装迁移增补程序,则 wagon 会首先安装预选择的迁移增补程序(更新堆栈更新)。此增补程序包含包管理堆栈的更新以及(如果需要)新内核。因此,需要重引导系统。

    有关 YOU 的更多信息,请参见第 1 章 YaST 联机更新 (↑管理指南)。

  4. 重引导系统,wagon 将继续使用更新方式进行迁移。保留预选择的客户中心设置。如果要在以后校验任何第三方相关安装源配置,则启用检查自动安装源更改。确认此对话框。

  5. Novell Customer Center 配置中注册迁移状态,并确认更新的软件安装源(SLES11-SP1-Pool 而不是 SLES11-Updates)。

  6. 如果启用了检查自动安装源更改,将出现已配置的软件安装源菜单。

  7. 分发包升级设置是在实际迁移过程发生之前出现的最后一个对话框。仔细检查所有设置 - 确认后就不能回滚了。

    将自动运行包安装和系统配置 (SuSEconfig)。需要重引导。

  8. Novell Customer Center 中注册新版本。再次确认更新的软件安装源,其中 SLES11-SP1-Updates 现在已启用。

  9. 最后确认迁移完成对话框并重引导系统。

7.5. 用 zypper 升级

如果需要脚本可编写的解决方案用于更新,请使用 zypper

使用 zypper 启动联机更新以继续到 SP2 功能级别之前,确保以满足第 7.4 节 “用 YaST Wagon 升级”中所列的要求。

这是将系统升级到 SP2 增补程序级别所需的最少命令序列:

  1. 刷新所有服务和安装源:

    zypper refresh -s
  2. 更新增补程序,尤其是包管理堆栈:

    zypper update -t patch
  3. 使用刚刚更新的包管理堆栈更新剩余的增补程序:

    zypper update -t patch
  4. 阅读 /etc/products.d/*.prod 中有关分发包更新的产品特定信息。其中包含分发包升级的信息。

  5. 使用之前检索到的名称安装迁移产品信息,例如:

    grep '<product>' /etc/products.d/*.prod
    /etc/products.d/sle-sdk.prod:      <product>sle-sdk-SP2-migration</product>
    /etc/products.d/SLES.prod:         <product>SUSE_SLES-SP2-migration</product>
  6. 注册产品以获取池安装源:

    suse_register -d 2 -L /root/.suse_register.log
    ...
    Execute command: /usr/bin/zypper ... modifyservice --ar-to-enable SMT-https_srv64_suse_de:SLES11-SP2-Pool SMT-https_srv64_suse_de
    Execute command exit(0):
    Execute command: /usr/bin/zypper ... modifyservice --ar-to-enable SMT-https_srv64_suse_de:SLE11-SDK-SP2-Pool SMT-https_srv64_suse_de
    Execute command exit(0):
  7. 刷新服务和安装源:

    zypper refresh -s
  8. 禁用旧 GA 产品中的所有安装源,启用新的 SP2 池安装源。对于 ISV,对外接式附件产品应用相同操作。如果旧安装源没有 SP2 升级,则仍保持启用。

    使用以下命令禁用安装源:

    zypper services
    zypper modifyrepo --disable REPO_ALIAS

    使用以下命令启用安装源:

    zypper modifyrepo --enable REPO_ALIAS
  9. 使用 zypper 执行分发包升级 (dup):

    zypper dup
  10. 迁移完成后,再次注册新产品:

    suse_register -d 2 -L /root/.suse_register.log

    该操作应删除旧的 GA 更新安装源,并添加新的 SP2 更新安装源。SP1-Pool 和 SP1-Update 安装源应保持不变。

  11. 重引导系统以运行 SP2 内核。

7.6. 从 SLE 10 SP4 更新到 SLE 11 SP2

如果要从 SUSE Linux Enterprise Server 10 SP4 升级到 SUSE Linux Enterprise Server 11 SP2,请按照本部分所列步骤操作。有关从 10 SP4 到 11 SP2 的自动升级,请参见第 22 章 从 SUSE Linux Enterprise 11 SP1 自动升级到 11 SP2请先确保将旧系统更新为最新的增补程序级别。

  1. 执行第 7.3 节 “准备工作”中所述的准备过程。

  2. 执行 YaST 方法(第 7.4 节)或 zypper 方法(第 7.5 节)升级到 SP 功能级别。

7.6.1. 可能的问题

如果将默认系统从上一版本更新到当前版本,则 YaST 将分析出所需更改并执行更改。根据您的自定义,一些更新步骤或整个更新过程都可能失败,此时必须将备份数据复制回来。开始系统更新之前检查以下问题。

7.6.1.1. 检查 /etc 中的 passwd 和 group

在更新系统之前,确保 /etc/passwd/etc/group 不包含任何语法错误。为此,以 root 用户身份启动校验实用程序 pwckgrpck 并消除任何报告的错误。

7.6.1.2. PostgreSQL

在更新 PostgreSQL (postgres) 之前,先转储数据库。请参见 pg_dump 的手册页。只有当实际上是在更新之前使用了 PostgreSQL 时才需要执行此操作。

7.7. 从 SLE 11 SP1 更新到 SLE 11 SP2

如果要从 SLE 11 SP1 升级到 SLE 11 SP2,请按照本部分所列步骤操作。

  1. 执行第 7.3 节 “准备工作”中所述的准备过程。

  2. 运行 Novell Customer Center 注册。

  3. 将 SP2 安装源添加到客户端。

  4. 运行 yast2 online_update

7.8. 安装服务包

用服务包更新一个 SUSE Linux Enterprise 安装。可使用不同的方式应用服务包。可使用服务包媒体更新现有安装或启动全新安装。第 14.2 节 “设置存放安装源的服务器”介绍更新系统和设置中央网络安装源的可能情形。

[Tip]安装更改

有关更改的更多信息,请阅读服务包媒体上的安装指导。

7.8.1. 安装服务包

[Note]

要将现有 SUSE Linux Enterprise 11 系统升级为 SUSE Linux Enterprise 11 服务包 (SP),请参见第 7.8.2 节 “升级到 Service Pack”

安装 SUSE Linux Enterprise 服务包与安装原始 SUSE Linux Enterprise 媒体的方法很类似。在原始安装中,可选择从本地 DVD 驱动器或中央网络安装源安装。

7.8.1.1. 从本地 DVD 驱动器安装

启动 SUSE Linux Enterprise 服务包的新安装之前,请确保所有服务包安装媒体 (DVD) 都可用。

过程 7.1. 从服务包媒体引导

  1. 插入第一张 SUSE Linux Enterprise SP 媒体后引导计算机。一个类似于 SUSE Linux Enterprise 11 原始安装的引导屏幕就会出现。

  2. 选择安装并按照第 6 章 使用 YaST 进行安装中的 YaST 安装说明所述继续。

7.8.1.2. 网络安装

启动 SUSE Linux Enterprise 服务包的网络安装之前,请确保满足以下要求:

7.8.1.2.1. 网络安装 - 从 DVD 引导

要用 SP DVD 作为引导媒体执行网络安装,请执行如下操作:

  1. 插入 SUSE Linux Enterprise SP DVD 1 后引导计算机。一个类似于 SUSE Linux Enterprise 11 原始安装的引导屏幕就会出现。

  2. 选择安装引导服务包内核,然后使用 F3 选择网络安装源的类型(FTP、HTTP、NFS 或 SMB)。

  3. 提供相应的路径信息或选择 SLP 作为安装源。

  4. 从所提供的服务器里选择相应的安装服务器,或用引导选项提示提供安装源类型和实际地址(如 第 6.1.2 节 “从没有 SLP 的网络源安装” 中所示)。YaST 启动。

    第 6 章 使用 YaST 进行安装中所述完成安装。

7.8.1.2.2. 网络安装 - PXE 引导

要通过网络执行 SUSE Linux Enterprise 服务包网络安装,请执行以下操作:

  1. 按照第 14.3.5 节 “准备目标系统的 PXE 引导”调整您的 DHCP 服务器设置以提供 PXE 引导需要的地址信息。

  2. 设置 TFTP 服务器来储存 PXE 引导需要的引导映像。

    为此使用 SUSE Linux Enterprise 服务包的第一张 CD 或 DVD 或者遵循第 14.3.2 节 “设置 TFTP 服务器”中的指导。

  3. 在目标计算机上准备 PXE 引导和局域网唤醒。

  4. 对目标系统引导进行初始化,并用 VNC 远程连接到此计算机正运行的安装例程上。有关更多信息,请参见第 14.5.1 节 “VNC 安装”

  5. 接受许可协议,然后选择语言、默认桌面以及其他安装设置。

  6. 单击是,安装开始安装。

  7. 继续安装:输入 root 的密码、完成网络配置、测试因特网连接、激活联机更新服务、选择用户身份验证方法并输入用户名和密码。

    有关如何安装 SUSE Linux Enterprise 的详细指导,请参见第 6 章 使用 YaST 进行安装

7.8.2. 升级到 Service Pack

将系统升级到服务包 (SP) 功能级别有两种首选方法。一种方法是从 SP 媒体引导。或者可以运行 Wagon。通过更新到新功能级别,您的系统将可使用新驱动程序或软件增强之类的附加功能。

升级的其他方法包括,例如手动使用 zypper 命令、使用增补程序 CD 或使用本地安装的 SMT 系统。

[Note]

在 System z 系统上,增补程序 CD 更新选项不可用。

7.8.2.1. 从服务包媒体引导

从 SP 媒体引导并选择更新作为 YaST 中的安装方式。

7.9. 原子更新

原子更新所基于的工具能够管理系统的两个副本,并在更新失败后可以轻松地恢复系统。提供的工具需要特殊的磁盘分区设置。每个系统副本都驻留在自己的主分区上。如果更新失败,总是可以转换回以前的系统状态,该系统状态在其他分区上。

7.9.1. 设置

[Warning]严格的分区要求

磁盘分区的实施有严格的要求,第一个 root 分区是 /dev/sda1,占用空间不得超过整个磁盘大小的一半。然后工具会为系统的第二个 root 分区创建 /dev/sda2。其他分区(如果有)在两个 root 分区的基础上共享大小,即要考虑 root 分区的大小,并相应减小第一个分区的大小;大致计算方法如下:

整个磁盘大小减去 sda1sda2 等于其他分区的可用空间。

  1. /dev/sda1 作为单个 root 分区安装系统,其空间小于整个磁盘大小的一半。

  2. 根据需要自定义已安装系统。确保 multi-update-tools 包已安装。

  3. 运行 multi-update-setup --partition,创建大小类似的第二个 root 分区 (/dev/sda2)。

  4. 根据需要对剩余磁盘空间分区,并继续自定义 (*)。

  5. 运行 multi-update-setup --clone 将系统复制到其他分区。用此命令还可以更改目标系统 /etc/fstab 中的 /(root) 条目。

  6. 如果需要,请执行进一步自定义 (*)。

  7. 运行 multi-update-setup --bootloader 初始化引导加载程序设置。这样引导加载程序菜单就会包含引导另一个系统的条目。

    [Warning]强制安装 GRUB 引导加载程序

    安装 GRUB 引导加载程序是强制性的。这些工具与其他引导加载程序不兼容。

  8. 如果没有对标有 (*) 的项进行自定义,请运行 multi-update-setup --complete 执行所有三个步骤。

7.9.2. 更新另一个系统

运行 multi-update。此命令在 chroot 环境中运行 zypper,更新另一个系统 - 不管哪一个处于活动状态。其引导菜单在引导时作为默认值提供。

7.9.3. 查错

如果更新的系统在更新后具有损坏的引导加载程序,必须更改活动标志,将该标志分配给另一个系统的 root 分区,以便可以引导系统。

如果更新的系统根本无法引导,则需要访问引导加载程序菜单以选择另一个系统。

有关 GRUB 的更多信息,请参见第 9 章 引导加载程序 GRUB (↑管理指南)。

7.9.4. 更多信息

有关更多信息,请参见随 multi-update-tools 包一起提供的 /usr/sha e/doc/packages/multi-update-tools/README