将自定义 SUSE Linux Enterprise Server 预安装到大量相同的计算机上,使您不必在每一台上单独安装,并使最终用户感到安装是标准化的。通过 YaST firstboot,创建自定义预安装映像,并确定包含最终用户交互的最终个性化步骤的工作流程(与 AutoYaST 相反,后者允许完全自动化安装;关于更多信息,请参见第 21 章 自动安装)。
创建自定义安装、部署到硬件及使最终产品个性化包括以下步骤:
准备磁盘需要克隆到客户端的主计算机。有关更多信息,请参考第 20.1 节 “准备主计算机”。
自定义 firstboot 工作流程。有关更多信息,请参考第 20.2 节 “自定义 Firstboot 安装”。
复制主计算机磁盘,将映像转到客户端磁盘上。有关更多信息,请参考第 20.3 节 “复制主安装”。
让最终用户个性化 SUSE Linux Enterprise Server 的实例。有关更多信息,请参考第 20.4 节 “个性化安装”。
为 firstboot 工作流程准备主计算机,请按以下步骤操作:
将安装媒体插入主计算机中。
引导计算机。
执行包含所有必要配置步骤的正常安装,等待安装好的计算机进行引导。同时安装 yast2-firstboot 包。
要对最终用户 YaST 配置步骤定义自己的工作流程,或将自己的 YaST 模块添加到该工作流程,请继续到第 20.2 节 “自定义 Firstboot 安装”。否则的话,直接转到步骤 5。
以 root 启用 firstboot:
创建空文件 /var/lib/YaST2/reconfig_system 触发 firstboot 的执行。成功完成 firstboot 配置后,该文件将删除。用以下命令创建该文件:
touch /var/lib/YaST2/reconfig_system
自定义 firstboot 安装可能涉及若干不同组件。对它们的自定义是可选的。如果不做任何更改,firstboot 会用默认设置执行安装。下列选项可用:
按第 20.2.1 节 “自定义 YaST 消息”中所述自定义用户收到的消息。
按第 20.2.2 节 “自定义许可证操作”中所述自定义许可证和许可证操作。
按第 20.2.3 节 “自定义发行说明”中所述自定义要显示的发行说明。
按第 20.2.4 节 “自定义工作流程”中所述自定义安装中涉及的组件的顺序和编号。
按第 20.2.5 节 “配置其他脚本”中所述配置其他可选脚本。
要自定义其中的任何组件,请修改以下配置文件:
/etc/sysconfig/firstboot
配置 firstboot 的不同方面(例如发行说明、脚本和许可证操作)。
/etc/YaST2/firstboot.xml
通过启用或禁用组件或者添加自定义组件,配置安装工作流程。
如第 20.2.6 节 “提供安装工作流程的翻译”中所述,提供此类自定义安装工作流程的翻译。
默认情况下,SUSE Linux Enterprise Server 的安装包含几条默认消息,它们会在安装过程的特定阶段进行本地化并显示。这些消息包括欢迎消息、许可证消息和安装结束时的祝贺消息。您可以将其中任何消息替换成自己的版本,并在安装中包含它们的本地化版本。要包含您自己的欢迎消息,请按以下步骤继续:
作为 root 登录。
打开 /etc/sysconfig/firstboot 配置文件,并应用以下更改:
将 FIRSTBOOT_WELCOME_DIR 设置为希望储存包含欢迎消息和本地化版本的文件的目录路径,例如:
FIRSTBOOT_WELCOME_DIR="/usr/share/firstboot/"
如果欢迎消息的文件名不是 welcome.txt 和 welcome_(其中,locale.txtlocale 与诸如 cs 或 de 的 ISO 639 语言代码相匹配),请在 FIRSTBOOT_WELCOME_PATTERNS 中指定文件名模式。例如:
FIRSTBOOT_WELCOME_PATTERNS="mywelcome.txt"
如未设置,将假定为默认值 welcome.txt。
创建欢迎文件和本地化版本,并将它们置于 /etc/sysconfig/firstboot 配置文件中指定的目录中。
按类似方法继续,配置自定义许可证并完成消息。这些变量是 FIRSTBOOT_LICENSE_DIR 和 FIRSTBOOT_FINISH_FILE。
如果用户需要在执行完安装后能够直接启动 YaST,请将 SHOW_Y2CC_CHECKBOX 更改为 Yes。
您可以自定义安装系统对不接受许可协议的用户所做出的反应。对于这种情况,系统有 3 种不同应对方式:
firstboot 安装已中止,整个系统关闭。这是默认设置。
firstboot 安装继续。
firstboot 安装已中止,但系统尝试引导。
作出选择,将 LICENSE_REFUSAL_ACTION 设置为适当的值。
根据您是否更改了 SUSE Linux Enterprise Server 的实例,可能需要让最终用户了解新操作系统的重要方面。标准安装使用发行说明(在安装的最后阶段之一显示),目的是为用户提供重要信息。要让您自己修改过的发行说明作为 firstboot 安装的一部分显示,请执行以下步骤:
创建您自己的发行说明文件。如 /usr/share/doc/release-notes 中的示例文件所示使用 RTF 格式,并将结果另存为 RELEASE-NOTES.en.rtf(英语)。
在原始版本附近储存本地化版本(可选),并将文件名中的 en 部分替换为实际 ISO 639 语言代码,如 de(德语)。
从 /etc/sysconfig/firstboot 打开 firstboot 配置文件,并将 FIRSTBOOT_RELEASE_NOTES_PATH 设置为保存发行说明文件的实际目录。
默认情况下,标准 firstboot 工作流程包含以下部分:
语言选择
欢迎
许可协议
主机名
网络
时间和日期
桌面
root 密码
用户身份验证方法
用户管理
硬件配置
完成安装
这一 firstboot 安装工作流程的标准布局不是必需的。您可以启用或禁用特定组件,或将您自己的模块集成到工作流程中。要修改 firstboot 工作流程,请手动编辑 firstboot 配置文件 /etc/YaST2/firstboot.xml。该 XML 文件是标准 control.xml 文件的子集,YaST 使用该文件控制安装工作流程。
有关建议书的概述,请参见例 20.1 “配置提议屏幕”。此概述所提供的背景知识足够您用于修改 firstboot 安装工作流程。firstboot 配置文件的基本语法(以及关键元素的配置方式)通过以下示例说明。
例 20.1. 配置提议屏幕
…
<proposals config:type="list">
<proposal>
<name>firstboot_hardware</name>
<mode>installation</mode>
<stage>firstboot</stage>
<label>Hardware Configuration</label>
<proposal_modules config:type="list">
<proposal_module>printer</proposal_module>
</proposal_modules>
</proposal>
<proposal>
…
</proposal>
</proposals>
所有提议的容器都应是 firstboot 工作流程的一部分。 | |
各条提议的容器。 | |
提议的内部名称。 | |
该提议的方式。不要在此处作任何更改。对于 firstboot 安装,必须设置为 | |
调用此提议的安装过程阶段。不要在此处作任何更改。对于 firstboot 安装,必须设置为 | |
提议上要显示的标签。 | |
所有属于提议屏幕的模块的容器。 | |
属于提议屏幕的一个或多个模块。 |
firstboot 配置文件的下一部分由工作流程定义组成。此处必须列出应为 firstboot 安装工作流程一部分的所有模块。
例 20.2. 配置工作流程部分
<workflows config:type="list">
<workflow>
<defaults>
<enable_back>yes</enable_back>
<enable_next>yes</enable_next>
<archs>all</archs>
</defaults>
<stage>firstboot</stage>
<label>Configuration</label>
<mode>installation</mode>
… <!–– list of modules ––>
</modules>
</workflow>
</workflows>
…
工作流程部分的总体结构和提议部分很相似。容器包含工作流程元素,工作流程元素都包括和例 20.1 “配置提议屏幕”中所介绍的建议相同的阶段、标签和模式信息。最显著的差别是默认设置部分,它包含工作流程组件的基本设计信息:
enable_back
在所有对话框中包含按钮。
enable_next
在所有对话框中包含按钮。
archs
指定使用该工作流程的硬件体系结构。
所有工作流程组件的容器。 | |
模块定义。 | |
随模块显示的标签。 | |
启用或禁用工作流程中该组件的开关。 | |
模块名称。模块本身必须位于 |
要更改 firstboot 安装过程中提议屏幕的编号或顺序,请按以下步骤操作:
在 /etc/YaST2/firstboot.xml 处打开 firstboot 配置文件。
删除或添加提议屏幕,或更改现有提议屏幕的顺序:
要删除整个提议,请从提议部分删除提议元素(包括其所有子元素),并从工作流程删除单个模块元素(及子元素)。
要添加新的提议,请创建新的提议元素,并填入所有必需的子元素。请确保提议作为 /usr/share/YaST2/clients 中的 YaST 模块存在。
要更改提议的顺序,请在工作流程中前后移动包含提议屏幕的各个模块元素。请注意,与其他要求提议和工作流程组件有特定顺序的安装步骤间可能存在依赖关系。
应用更改并关闭配置文件。
默认设置不符合您的要求时,始终可以更改配置步骤的工作流程。启用或禁用工作流程中的特定模块(或添加您自己的自定义模块)。
要切换 firstboot 工作流程中模块的状态,请按以下步骤操作:
打开 /etc/YaST2/firstboot.xml 配置文件。
将已启用元素的值从 true 改为 false 可禁用该模块,或从 false 改为 true 再次启用它。
<module>
<label>Time and Date</label>
<enabled config:type="boolean">true</enabled>
<name>firstboot_timezone</name>
</module>
应用更改并关闭配置文件。
要向工作流程添加自定义模块,请按以下步骤继续:
创建您自己的 YaST 模块,将模块文件 保存在 module_name.ycp/usr/share/YaST2/clients 中。
打开 /etc/YaST2/firstboot.xml 配置文件。
确定您的新模块要在工作流程的哪一点运行。这样做时,请确保考虑到并已解决与工作流程中其他步骤之间可能存在的依赖性。
在模块容器中创建新的模块元素,并添加相应的子元素:
<modules config:type="list">
…
<module>
<label>my_module</label>
<enabled config:type="boolean">true</enabled>
<name>filename_my_module</name>
</module>
</modules>
在标签元素中输入要在模块上显示的标签。
请确保已启用已设置为 true,将您的模块包括在工作流程中。
在名称元素中输入您模块的文件名。省略完整路径和 .ycp 后缀 。
应用您的设置并关闭配置文件。
![]() | 有关详细信息 |
|---|---|
关于 YaST 开发的更多信息,请参见 http://en.opensuse.org/YaST/Development。关于 YaST firstboot 的详细信息可以在 http://forgeftp.novell.com/yast/doc/SL11.1/tdg/inst_in_general_chap.html 下找到。 | |
可配置 firstboot,使之在完成 firstboot 工作流程后执行其他脚本。要向 firstboot 序列添加其他脚本,请执行以下步骤:
打开 /etc/sysconfig/firstboot 配置文件,确保为 SCRIPT_DIR 指定的路径正确。默认值为 /usr/share/firstboot/scripts。
创建您的外壳脚本,将它保存在指定的目录中,应用适当的文件许可权限。
根据最终用户,可能需要提供自定义工作流程的翻译。如果如第 20.2.4 节 “自定义工作流程”中所述,通过更改 /etc/YaST2/firstboot.xml 文件来自定义工作流程,则可能会需要这些翻译。它不同于自定义 YaST 消息的本地化,第 20.2.1 节 “自定义 YaST 消息” 中已对此进行了介绍。
如果更改了 /etc/YaST2/firstboot.xml 并引入了字符串更改,则需要生成新的翻译模板文件(.pot 文件),并使用 gettext 工具链进行翻译,并且最终将翻译好的文件作为编译的 .mo 文件安装到 YaST 区域设置目录 (/usr/share/YaST2/locale) 中。按如下所示继续:
将 textdomain 设置从:
<textdomain>firstboot</textdomain>
更改为(示例)
<textdomain>firstboot-oem</textdomain>
使用 xgettext 将可翻译字符串提取到翻译模板文件(.pot 文件)中,例如提取到 firstboot-oem.pot 中:
xgettext -L Glade -o firstboot-oem.pot /etc/YaST2/firstboot.xml
开始翻译过程。然后打包翻译的文件(. 文件),方法与其他项目的翻译相同,并安装编译的 LL_code.pofirstboot-oem.mo 文件。
如果需要其他或已更改 YaST 模块的翻译,请在此类模块自身中提供翻译。如果刚刚更改了某个现有模块,请确保也更改它的 textdomain 语句,以避免意外的不利影响。
用您可以获得的任何映象机制复制主计算机磁盘,将映象转到目标计算机。有关映像的详细信息,请参见第 17 章 KIWI。
引导已复制磁盘映像后,firstboot 会启动,安装会严格按第 20.2.4 节 “自定义工作流程”中的安排继续。只有 firstboot 工作流程配置中包含的组件会启动。所有其他安装步骤都将跳过。最终用户可调整语言、键盘、网络和密码设置,以个性化工作站。这一过程完成后,firstboot 已安装系统的行为就会像 SUSE Linux Enterprise Server 的任何其他实例一样。