在上一个冲刺中,我们修复了几个非常特殊场景的问题。 就像在大部分东西都正常工作后才能发现的那种问题! 所以让我们来看看这些案例以及我们如何努力稳定即将发布的版本。

保持 S390x 上的可预测网络设备设置

YaST 中一个不太为人所知的功能是,许多用于安装的特定启动参数也会在目标系统中使用。 然而,这种方法有一个例外:S390 主机。 在这种情况下,许多安装特定的参数不应该传递到目标系统,因此,我们忽略该系统上的所有安装参数。
在上一个冲刺中,我们修复了一个错误,该错误报告称至少 systemd 可预测的网络设备名称也应该用于 S390 系统,否则在安装过程中完成的配置在运行的系统中将无效,因为网络名称会不同。 因此,从 SLE15 开始,我们开始为 S390 系统保留可预测网络名称的设置。

GRUB2 控制台配置的乐趣

另一份报告帮助我们了解了其他不太为人所知的功能,即启动加载程序模块不支持 GRUB2 的多个控制台输出。 在深入研究一些代码后,我们发现 YaST 启动加载程序仅考虑本机终端、gfxterm 或串行控制台,而不考虑它们的组合。
当我们查看 GRUB2 的手册时,我们了解到它支持一些有趣的输出,例如摩尔斯电码、PC 蜂鸣器或使用系统扬声器的简单数据协议。 当然,YaST2 启动加载程序不支持所有这些选项,当它获得其中一个选项时,它会被视为意外值,并且启动加载程序将失败。

由于我们非常接近 Leap/SLE 15 的发布,我们希望避免对系统进行大的更改。 因此,我们决定通过显示一个弹出窗口来处理此问题,该窗口告知配置包含意外值,并询问是否应该再次提出整个建议的配置,或者 YaST 是否应该退出并让用户手动编辑它。

如果您好奇它看起来如何

对于 Leap 15.1 / SLE 15 SP1,我们计划扩展我们支持的值,以便为用户提供更好的体验。

升级期间的启动加载程序配置

上一个冲刺中还解决了启动加载程序中报告的另一个问题。 从 Leap 42/SLE 12 升级到 Leap/SLE 15 时,如果用户单击“启动建议”,系统将崩溃。 原因通常是在 openSUSE 13.2/SLE 11 上,需要在升级期间重新提出启动加载程序。 对于最新的升级,不再需要这样做,因此 YaST 不期望用户单击它。 我们希望完全删除此选项,但 YaST 仍然支持从 SLE11 升级到 SLE15,因此我们仍然需要它。 最终,解决方案是显示一个弹出窗口,告知用户在升级期间不支持修改启动加载程序。

简而言之,请查看屏幕截图

修复 Xen 上的 kdump

我们收到了一份关于 kdump 在 Xen 中崩溃的报告。 为了解释这个问题,我们需要回顾一下我们如何配置一个参数以及我们为什么以这种方式实现它:在当前版本(在此修复之前),当用户想要使用 kdump 时,我们会为所有目标配置 crashkernel 内核参数,为通用内核、Xen PV0 域和 Xen 虚拟机。 过去,这种方法工作得很好,因为传统的 xenlinux 会忽略 PV0 的 crashkernel 并将其传递给 Xen 虚拟机。 然而,Xen 的当前 pvops 实现不再忽略此参数,因此,它会导致 Xen 虚拟化崩溃。 解决此问题的方案很简单:YaST 停止为 Xen PV0 提出使用 crashkernel,一切又恢复正常。 这是一个很好的例子,说明理解问题有时比解决它花费更多的时间!

改进从 SLE11/12 到 SLE15 的升级

我们仍在改进从 SLE11 或 SLE12 到 SLE15 的迁移,并且在本冲刺中,我们专注于使用 AutoYaST 进行自动注册升级。 如果您不熟悉自动升级功能,可以在 文档 中找到更多详细信息。

我们已经支持从旧产品手动注册升级,但自动方式尚未适应新的 SUSE 客户中心 (SCC) API,并且无法正常工作。 本冲刺中,我们调整了注册升级代码,使其能够在交互模式和自动升级中正确工作。

该代码已调整为在自动升级模式下跳过用户交互并手动执行所有操作。 唯一的问题是如何处理多个迁移目标,在交互式升级中,我们会要求用户选择一个。 为了获得一个简单的解决方案,我们决定采用第一个迁移,以后(SP1)我们可能会允许配置它。 但现在只有一个迁移是可能的,这看起来是一个足够好的解决方案。

回退到引导式建议

在此冲刺期间,我们得知 AutoYaST 无法显示适当的错误消息,当未指定 partitioning 部分并且磁盘空间不足时。 此错误相对容易解决,但我们希望借此机会强调 AutoYaST 在缺少配置文件中的 partitioning 部分时的工作方式。

过去,AutoYaST 实现了自己的逻辑,与正常安装期间使用的逻辑不同。 幸运的是,作为对新存储层的适应的一部分,AutoYaST 现在依赖于与常规安装相同的代码,以便在未指定 partitioning 部分时提出分区布局。 此外,您可以设置产品控制文件中定义的一些值,方法是在 AutoYaST 配置文件中的 general/storage 部分中进行设置。

Leap /SLE 15 已关闭,但 Tumbleweed 仍在滚动

我们非常接近发布 Leap/SLE 15,并且更专注于仅修复关键问题的最小更改。 另一方面,Tumbleweed 用户始终寻求最新的功能。 为了满足这两个群体,YaST 将 Leap 15.1/SLE 15 和 Tumbleweed 分开到两个不同的 git 分支中。 这样,我们可以轻松开始为 Tumbleweed 添加新功能、错误修复和其他改进,同时保持 SLE15 的稳定。 此外,SLE12 还有一个计划的服务包,一旦我们开始工作,我们也会创建一个新的分离分支来包含这些更改。 我们还调整了与分支相关的所有相关基础设施,例如 CI、docker 测试镜像等。

这样,我们就可以让您享受稳定的 Leap 15 或最新的 Tumbleweed。

结论

我们现在正在进行在 openSUSE Conference 2018 之前的最后冲刺。 两个星期后,我们将带着冲刺 57 的亮点回来,在此之前,我们希望您已经计划好一切,以便享受今年在布拉格举行的会议(我们也希望您喜欢这座城市)。 我们期待在那里见到您!