内容
- “系统角色”选择对话框进行了可用性改进
- 并且我们在过程中向小部件库添加了一个 CustomStatusItemSelector。
- Snapper 获得了 机器可读的输出
- 存储
- 远程加密设备在启动时被正确激活
- 随机和全面加密也支持在 AutoYaST 中
- 改进了对 AutoYaST 引导分区的支持
更友好的角色选择对话框
循序渐进地,我们继续改进用户体验,利用新添加到 libyui 的小部件。本次冲刺轮到更新角色选择对话框,以使用在冲刺 87 中引入的 新的项目选择器。除了如下截图所示,外观更好之外,还有两个直接的改进
- 垂直滚动条(如果存在)在选择角色后得到尊重(而不是“跳到开头”),并且
- 即使列表很长或可用空间太短,到达对话框时也会显示所选角色(如果有)。
| 之前 | 之后 |
更重要的是,更新对话框对我们来说也有用,可以意识到小部件本身需要的一些改进,如下一节所述。一个高效的 更改 ![]()
当一个位不够时:CustomStatusItemSelector
几周前,我们写了关于正在进入 YaST 用户界面的新 ItemSelector 小部件的文章。事实证明,在某些情况下,简单的开/关状态是不够的,因此我们必须扩展该概念。例如,软件模块可能有依赖项,我们希望显示用户显式选择的一个与由于其他软件模块需要它而自动选择的一个之间的区别。
这在某种程度上动摇了底层类的基础;突然间,一个位不再只是一个位,而是需要分解成更小的部分。好吧,我们作弊了;现在我们使用整数值。大多数类层次结构仍然只使用 0 和 1,但新的 YCustomStatusItemSelector 还支持为应用程序定义的目的使用更高的数字。
对于每个可能的状态值,应用程序定义要显示的图标名称(对于 Qt UI 等图形用户界面),文本等效项(对于文本模式/NCurses UI)以及可选的 nextStatus,它告诉小部件在用户使用鼠标或键盘更改项目状态时循环到哪个状态。值为 -1 让应用程序处理此问题。
因此,这不仅仅是一个一次性的工具,对于那个用例(软件模块)有用,而是一个通用的工具,可能在 YaST 的其他地方也能找到很好的用途。
Snapper 和机器可读的输出
您很可能已经知道 snapper,一个很棒的工具,可以处理您的文件系统快照。一些第三方脚本和工具(例如 YaST)使用 snapper CLI 来获取一些信息,但通常,snapper 生成的输出旨在让人类可读。有时这可能会在检查 snapper 输出的脚本中导致一些问题。现在,snapper 还提供 CLI 选项以生成机器可读格式的输出,即 CSV 和 JSON。请查看 这篇文章 以获取有关这些新选项的更多信息。
修复远程加密设备的启动问题
自从我们采用 systemd 以来,在基于网络的设备(例如 iSCSI 或 FCoE 磁盘)之上的加密设备的启动期间管理一直不太理想。但是现在我们很高兴地宣布,我们已经将所有部分组合在一起,以使体验尽可能流畅。
systemd 的主要职责之一是在启动期间对执行的操作进行排序并设置它们之间的依赖关系。例如,如果有加密设备,systemd 首先会要求您输入密码并激活设备,然后才能挂载包含在这些加密设备中的文件系统。systemd 应该能够区分基于网络存储设备的加密设备,因此只能在网络启动后才能对其进行初始化。在某些情况下,该检测失败(例如基于网络块设备(如 iSCSI 和 FCoE 磁盘)的挂载),并且 systemd 在初始化网络之前陷入僵局,等待设备可用。
最近,SLE 和 openSUSE Leap 已经合并了对在 /etc/crypttab 文件中指定 _netdev 选项的支持。使用此选项,systemd 将识别加密设备为基于网络的设备,并且仅在设置网络后才尝试激活它。这类似于已经存在的 /etc/fstab 中的相应 _netdev 选项,可用于推迟何时挂载设备。为了使其正常工作,_netdev 选项必须存在于 crypttab 和 fstab 的所有相关条目中。
现在 YaST 将在 openSUSE Tumbleweed 以及 SLE 和 openSUSE Leap 的即将发布的版本中执行此操作。从现在开始,_netdev 选项将添加到 fstab 中,用于所有依赖于网络(直接或间接)的挂载点。此外,该选项(以及 noauto 和 nofail 选项)将从 fstab 传播到所有相应的 crypttab 条目。
这应该标志着加密 iSCSI 和 FCoE 设备在启动期间超时进入黑暗时代的结束。
AutoYaST 支持随机和全面加密
早在十月份,我们宣布 YaST 支持新的加密方法,例如随机或全面加密。当时,AutoYaST 超出了范围,因为我们希望首先拥有稳定(且经过测试)的 API。幸运的是,时机已经成熟,现在 AutoYaST 支持这些加密机制。
从 autoyast2 4.2.17 开始,您可以使用 crypt_method 元素指定加密方法,如下所示。可能的值是 luks1(常规 LUKS1 加密)、pervasive_luks2(全面卷加密)、protected_swap(使用易失性保护密钥加密)、secure_swap(使用易失性安全密钥加密)和 random_swap(使用易失性随机密钥加密)。
<drive>
<type config:type="symbol">CT_DISK</type>
<use>all</use>
<partitions config:type="list">
<partition>
<size>20G</size>
<mount>/</mount>
<filesystem config:type="symbol">ext4</filesystem>
<crypt_method config:type="symbol">luks1</crypt_method> <!-- default method if crypt_key is defined -->
<crypt_key>S3CR3T</crypt_key>
</partition>
<partition>
<size>1G</size>
<mount>swap</mount>
<crypt_method config:type="symbol">random_swap</crypt_method> <!-- set encryption method -->
</partition>
</partitions>
</drive>
正如我们希望 AutoYaST 尽可能用户友好,如果您在设置加密配置时犯了错误,它将尝试帮助您,如屏幕截图所示。
最后,旧的 crypt_fs 元素已被弃用,尽管出于向后兼容的原因它仍然有效。基本上,它等同于将 crypt_method 设置为 luks1。
改进 AutoYaST 引导分区支持
在分区方面,我们可以将 AutoYaST 用例分为三个不同的级别
- 自动分区:用户不在乎分区,并信任 AutoYaST 来做正确的事情。
- 引导分区:用户希望设置一些基本设置(使用 LVM、设置加密密码等)
- 专家分区:用户指定布局应该是什么样子,尽管不需要完整的定义。
在某种程度上,这就像使用常规安装程序,您可以在其中跳过分区屏幕并信任 YaST,使用引导建议,或通过专家分区器定义分区布局。
第二级(引导分区)是在 AutoYaST 中随着 SUSE Linux Enterprise 15(和 Leap 15.0)的发布而引入的,但它完全没有记录。此外,虽然乍一看它按设计工作,但离有用还差得很远。
本次冲刺投入了大量时间来改进文档(感谢我们出色的文档团队)和行为。现在,如果您想设置一个 LVM 系统而无需指定所有详细信息,您可以使用您的配置文件中的以下片段
<general>
<storage>
<lvm config:type="boolean">true</lvm>
</storage>
</general>
如果您有兴趣了解可用选项,可以查看 文档草案。



