以下过程可用来以无人照管方式大批量执行 SUSE Linux Enterprise 11 SP2 到 SUSE Linux Enterprise 11 SP3 的升级。为了创建合适的 AutoYaST 配置文件,需要执行若干个准备步骤。AutoYaST 最后会执行升级过程。
自动升级的 AutoYaST 配置文件使用与 AutoYaST 安装相同的文件格式。有关 AutoYaST 的更多信息,请参见第 21 章 自动安装和AutoYaST (↑AutoYaST)。
但是,显然有一些系统部分(例如,分区)不需要在升级过程中进行配置。另一方面,它对于通过 AutoYaST 配置文件设置升级特定的选项很有用。
升级选项定义依赖性解析程序在升级过程中的行为:
<upgrade>
<only_installed_packages
config:type="boolean">false</only_installed_packages>
<stop_on_solver_conflict
config:type="boolean">true</stop_on_solver_conflict>
</upgrade>only_installed_packages
对于基于包的升级设置为 true(若升级到相同产品的下一个服务包,建议采用这种设置),对于基于模式的升级设置为 false(若为一个产品的两个版本之间的升级,建议采用这种设置,例如从 SLES10 升级到 SLES11)。
stop_on_solver_conflict
定义未能交互式解析包依赖性时是否显示建议(建议设置为 true,但这种设置会产生交互过程,在该过程中用户必须手动解决冲突。)
软件选择选项定义除解析程序结果外要选择或取消选择哪些组件:
<software>
<packages config:type="list">
<package>autoyast2-installation</package>
<package>apparmor-profile-editor</package>
</packages>
<patterns config:type="list">
<pattern>base</pattern>
</patterns>
<remove-packages config:type="list"/>
<remove-patterns config:type="list"/>
</software>
这对于设置要选择或取消选择的包或模式以解决包冲突,并因而避免交互式干扰尤其重要。升级完成后,新建的 autoupg_updated.xml 文件包含这些包和模式,以及因任何其他原因而选择或取消选择的那些包和模式。
升级前备份选项与升级建议中的这些功能相匹配。
<backup> <sysconfig config:type="boolean">true</sysconfig> <modified config:type="boolean">true</modified> <remove_old config:type="boolean">false</remove_old> </backup>
sysconfig
定义升级前是否备份 sysconfig。
modified
定义升级前是否备份修改过的配置文件。
remove_old
定义是否从以前的升级中删除旧备份。
要启动自动升级,请引导安装媒体,并向其传递 AutoYaST 配置文件。有两种方式可以将配置文件传递给系统:
将配置文件传递给内核命令行,与安装 AutoYaST 的方式相同(使用 autoupgrade=1 autoyast=http://host/path/profile.xml 参数)。对于 System z,这是唯一可行的办法。
将 autoupgrade=1 参数传递给内核命令行。启动升级之前,将配置文件复制到 /root/autoupg.xml。这样就不需要任何其他内核参数。
后一种方法允许您对于不同的计算机使用单个安装内核命令行 - 只需将各自的配置文件复制到其文件系统即可。
只要计算机上仅安装了一个 SUSE Linux Enterprise 系统,就不会发生包冲突,而且,您若没有在升级建议中将配置文件设置为停止,整个过程将以非交互方式进行。在输入升级建议的情况下,则可以修改升级设置。
升级完成后,YaST 将编写 /root/autoupg-updated.xml 文件,其中包含应用了建议中完成的软件选择更改的配置文件。这对用相同的包选择来大批量升级计算机特别有用。这样,一台计算机的冲突解决方式可以轻松地应用到另一台计算机中,因此这些冲突将会自动解决,而且升级过程本身也将是非交互式的。
如果计算机上安装了多个 SUSE Linux Enterprise 系统,总是会询问您升级哪个系统 - 这个问题无法预先做出选择。
引导系统的一个备用方式是在 GRUB 菜单中再创建一个部分(与其他引导加载程序和其他体系结构类似),用此部分启动安装。以下示例假设系统中有一个单独的 /boot 分区,该分区在 GRUB 中称为 (hd0,0):
title Upgrade
root (hd0,0)
kernel /upgrade/linux
install=inst_source_url autoupgrade=1
autoyast=autoyast_profile_url vga=0x314
initrd /upgrade/initrd
上述示例假设安装内核和安装 initrd
位于 /boot/upgrade 目录。
在 System z 上,您必须将参数添加到 PARM 文件 - 以执行 AutoYaST 驱动的安装时所执行的方式操作。
自动升级默认情况下不会在升级的第二个阶段执行配置更改。唯一的例外是网络配置,其需要在 AutoYaST 升级配置文件中设置为保留。
如果升级后需要对某些系统区域作配置调整(例如,配置新服务),请将相关部分添加到 AutoYaST 的升级配置文件中,这样所选系统区域的配置就会在升级过程中得到保存。
![]() | AutoYaST 提供的配置替换现有配置 |
|---|---|
请注意,AutoYaST 配置会替换并破坏该系统区域的现有配置。 | |
通常,AutoYaST 配置文件中应有的唯一配置调整是向订阅管理工具 (SMT) 或 Novell Customer Center (NCC) 注册系统。如果缺少此过程,系统将无法获取更新安装源,只能在稍后再次配置后才能进行更新。
如果使用 NetworkManager 管理网络设备和网络连接,在升级的第二个阶段将无法进行网络连接。从而使系统不能进行注册。
如果为触发升级过程对系统进行了更改(例如,将新部分添加到引导加载程序菜单),则在完成升级后可能要删除此类更改。
您可以使用安装后脚本自动删除它。可在第 4.16 节 “Custom User Scripts” (第 4 章 Configuration and Installation Options, ↑AutoYaST)中找到示例。autoupg.xml 样本文件中包含清理 GRUB 的 menu.lst 的样本脚本。确保脚本与您的特定设置匹配,且不删除实际要保留的内容!
Linuxrc 文档:http://en.opensuse.org/SDB:Linuxrc