1. 你能执行在线离线迁移吗?
  2. 如果显示不同的翻译,你会更好地理解许可协议吗?
  3. 你的 /home 目录是已挂载还是闹鬼?

欢迎回到我们的语言学博客,伪装成 YaST 团队冲刺报告。

安装和升级

使用可引导介质通过 SCC 进行离线升级

过去几周,我们花费了大量时间来实现从旧 SUSE Linux Enterprise 产品(版本 11 和 12)到即将发布的版本 15 的离线迁移。

注意:离线迁移 术语实际上意味着你的生产系统未启动和运行,这与网络状态无关。在离线迁移中,会启动不同的系统(通常从 DVD)。有关更多详细信息,请参阅 官方 SUSE 文档

我们实现了并测试了从 SLE 12 SP3 的升级。离线迁移工作流程与 SLE 12 版本中实现的在线迁移类似。唯一的区别是,你启动 SLE 15 介质,在启动菜单中选择升级,然后选择要升级的磁盘分区。其余应该与在线迁移相同。

从 SLE 11 的迁移更加复杂,因为它已注册到较旧的Novell 客户中心,需要对安装程序进行一些额外的更改。这项工作仍在进行中。

最后说明:要测试到 SLE 15 的离线迁移,你的系统需要使用 Beta 注册密钥进行注册。对于常规 SLE 12 和 11 注册,将阻止迁移到 SLE 15。在 SLE15 正式发布后,它将被取消阻止。

使 addon Linuxrc 选项与软件包 DVD 配合良好

在 SLE 15 中,有许多模块和扩展,例如 Live Patching 模块或 Web Scripting 模块。在物理 DVD 上,我们将所有这些都放在一个软件包 DVD 上。

当你在从 DVD 安装 SLES 并且选择在安装过程中添加这样一个模块时,你将看到一个屏幕,用于从 DVD 上找到的所有模块中进行选择。

你也可以通过在安装启动提示符处传递 addon=dvd:/// 选项来自动化此步骤。(请参阅 Linuxrc 参考)。以前这仅适用于单产品介质。从 现在开始,addon 选项也将适用于多产品介质,例如软件包 DVD。

改进许可协议翻译支持

几个月前,YaST 开始使用 libzypp 来获取产品许可协议,而不是使用旧的 SUSE Tags 方法。但是,直到本次冲刺,此功能还不够完善。

一方面,显示了完整的支持语言列表,无论是否为给定语言提供翻译。另一方面,缺少“许可协议翻译”按钮(它仍然用于单产品介质)。

现在这两个问题都已解决,并且一旦在安装介质中包含新的翻译,它们应该在安装程序中得到妥善处理。

替换的组件

完成 xinetd 转换为 systemd sockets

本次冲刺我们完成了将 从 xinetd 转换为 systemd sockets 以按需启动服务 的更改。为了完成它,基本上有两个主要任务。

第一个任务是删除 YaST 的 xinetd 模块。这需要转换 yast2-ftp-server,该模块使用了这个模块,并且还需要向 AutoYaST 添加一个注释,说明不再支持 xinetd 配置,因此如果你的 AutoYaST 配置文件中有它,它将不会被应用。FTP 服务器部分更难,因为如上期报告中所述,其中一个后端不支持 systemd sockets,但我们发现这个后端有点古老,对我们的支持非常痛苦。结果是,我们放弃了 pure-ftp 并仅保留了 vsftpd 后端,这使得代码更简单,我们的生活也更好(最终的 diff-stat 是 +1100/-3700)。然后我们将用法转换为 systemd sockets。然后我们就可以删除 yast2-inetd,因为不再有依赖关系了。

第二个任务是直接使用 xinetd,并提供一个 API 以按需启动。它并不常用,最终最大的部分是删除基于 VNC 的安装的 xinetd 用法和 yast2-inst-server,现在已转换为使用 systemd sockets。在这里,我们可以给你一个我们在实现过程中发现的好技巧:如果 systemd 服务有一个参数(通常是 systemd socket 启动的服务所具备的),你可以使用通配符停止所有这些服务,例如 systemctl stop vnc@*

所以这是一个皆大欢喜的结局——本次冲刺后,没有 xinetd 用法,我们可以只支持一种按需启动工具,从而专注于改进其他部分。

添加了导出 firewalld AutoYaST 配置的支持

上一篇博客文章 中,我们宣布了 AutoYaST 支持配置 firewalld,但克隆防火墙配置尚未支持,并且 AutoYaST 摘要中关于防火墙模块的部分也需要改进,这基本上就是我们本次冲刺所实现的内容。

值得注意的是,不允许编辑 AutoYaST 防火墙配置,因为防火墙配置现在是通过 firewalld 图形配置工具(firewall-config)完成的

存储和分区器

将格式选项对话框添加到分区器

新分区器中缺少的一件事是格式选项对话框,它允许你在创建文件系统时对其进行微调。

选项本身与旧分区器中的选项大致相同。此功能更适合专家。作为普通用户,你很少需要微调文件系统参数。但如果你需要,该对话框可以帮助你(记住帮助按钮)。

这是 ext4 选项的屏幕截图

移除分区器中的空视图

在重写 YaST 存储堆栈的过程中,我们也重写了分区器。旧分区器中的一些视图被 übernommen,但到目前为止还没有任何功能填充,它们只显示空页面。我们现在删除了这些空页面

  • 加密文件
  • 设备映射器
  • 未使用的设备
  • 挂载图
  • 设置(这个很快会带着内容回来)

现在看起来是这样

与带有空视图的先前版本相比

另请参阅 Bug #1078849

分区器中的安装摘要

分区器筛选中幸存下来的部分之一是安装摘要。在此冲刺期间,我们重新实现了这个有用的视图,它显示了将在系统上执行的更改,包括为了使系统与所选技术一起工作而需要安装的软件包。一图胜千言。

当然,两个列表中的信息会随着分区器中的每次更改而更新,并且像往常一样,所有内容在文本模式下也能正常工作。包括折叠或展开子卷上通常冗长的操作列表的可能性。

分区器中的阻止错误

几轮冲刺前,我们在分区器中实现了警告,如果某些内容看起来可能无法正常工作,但通过专家知识可以使其正常工作。现在我们还添加了阻止错误,在这种情况下我们确定它将无法工作。这只是一个草稿,将根据需要和出现的问题进行调整。一些检查已经从引导加载程序移动到分区器,以便你可以快速修复分区。但说得够多了,请查看屏幕截图,第一个是阻止继续的错误,第二个只是一个警告。

扩展 AutoYaST <device> 元素

在 AutoYaST 配置文件中定义 <drive> 部分时,<device> 元素应确定要将分区方案应用于哪个磁盘。通常,它是内核设备名称,例如 /dev/sda,或解析到磁盘的链接(例如,/dev/disk/by-id/*/dev/disk/by-path 等)。

但是,AutoYaST 支持指定其他名称,例如 by-partlabelby-label 等。这些链接不会直接解析到磁盘,但存储层能够查明它们属于哪个磁盘。

虽然 SLE 12 支持此行为,但直到本次冲刺,SLE 15 才支持它。

微调启动系统要求

在某些情况下,需要额外的分区或给定的磁盘布局才能启动 (open)SUSE 操作系统。例如,某些遗留场景中所需的单独 /boot 分区,必须在 EFI 系统中挂载在 /boot/efi 的 ESP 分区,或 PowerPC 系统所需的 PReP 分区。安装程序的分区建议尝试确保满足这些启动要求(AutoYaST 在某些情况下也是如此),我们心爱的分区器还包括一些检查,以警告你是否忘记创建或挂载这些分区中的任何一个。

但有时,安装程序会建议大小不理想的分区,甚至是不严格必需的分区。另一方面,分区器有时过于挑剔,警告的情况并非如此严重的问题。因此,在本次冲刺期间,我们完善了启动要求列表,更新了相应的文档,放宽了分区器检查,并微调了建议结果。特别是,基于来自多位专家和制造商的错误报告,PowerPC 要求得到了改进。

因此,无论你通常信任安装程序建议,喜欢使用分区器手动制作,还是使用 AutoYaST 安装,现在体验应该更流畅,启动时遇到的意外情况更少(如果有的话)。

挂载选项重审:当旧的恶魔再次缠身时

最近,我们重新引入了按文件系统类型划分的挂载选项默认值。我们认为这将是一个清理一段时间以来变得混乱的代码的好机会;我们认为我们可以提供一种干净、结构良好且易于理解的方式来做到这一点。

然后人们开始测试更多的场景,我们发现以一种艰难的方式,在某些情况下,这些挂载选项取决于挂载点,原因有很多:底层内核模块的一些怪癖,例如 VFAT 文件系统,或者 systemd 处理在启动期间挂载根文件系统的方式,使得这成为必要的。

所以我们不得不屈服并重新引入一些旧代码,这些代码有点混乱;例如,对于 ext4 或 ext3 根文件系统,我们不再指定任何 data=... 挂载选项,因为这可能会导致在启动时将根文件系统以读写方式重新挂载失败;在另一种情况下,在 VFAT 分区上执行 mkdir -p /boot/efi/EFI(在安装引导加载程序时)失败,尽管 VFAT 在技术上是区分大小写的(省略 iocharset=utf8 修复了这个问题)。

经验教训:有些混乱的旧代码之所以混乱是有原因的。试图简化它可能会破坏一些场景。

结论

对最初问题的答案是

  1. 是的。
  2. 也许吧。
  3. 大多数时候。

随着 SLE 发布周期从“所有功能都是强制性的”阶段转变为“所有错误都是头等大事”阶段,预计下一份报告(两周后)将减少功能新闻,而增加错误修复新闻。