网站搜索

Arch 的 mkinitcpio 升级 Boost 到 v39,这里是新变化


mkinitcpio 39 通过未压缩的 cpio 调整、ARM zImage 支持、新的 ACPI 钩子等功能提高了启动速度。

对于来自 Arch 生态系统的人来说,mkinitcpio 是一个熟悉的工具。对于其他人,让我们澄清一下,它生成在启动过程中使用的初始内存盘环境(类似于 Dracut 或 Booster)。

本质上,这是一个 Bash 脚本,它创建一个压缩的文件系统镜像,其中包含在挂载主根文件系统之前支持启动过程所需的一切。

最近的 mkinitcpio 39 版本带来了若干重要更新和新功能,以增强功能性并改善用户体验。以下是相关内容。

mkinitcpio 39 亮点

mkinitcpio 39

本次更新强调了不再推荐使用全局变量来访问命令行参数。以前,修改启动过程的脚本(称为钩子)可以使用全局变量来获取这些参数。

未来,mkinitcpio 鼓励开发者改为使用 getarg 函数。为什么需要进行此更改?简而言之,这是为了更广泛地现代化该工具,并提高其稳健性和安全性。

此外,最新版本引入了对 ARM zImage 的支持,扩展了 mkinitcpio 对不同架构的兼容性——这对于在基于 ARM 的系统上开发的开发者来说是一个受欢迎的新增功能。此外,mkinitcpio 39 推出了一个新的钩子“install/acpi_override”,它可以方便地进行 ACPI 表的升级和覆盖,进一步扩展了该工具的自定义功能。

关于对 mkinitcpio 本身的更改,压缩文件的位置已进行了调整。它们现在被包含在早期的未压缩 cpio 中,而不是压缩的 cpio 中。这一修改避免了文件的二次压缩,从而可以提高启动速度,尤其是在 CPU 性能较弱的系统上。

此外,该工具现在默认在启动过程中解压模块和固件文件,而这以前是一个手动设置。

其他改进包括对文件处理命令的更改,如add_file和add_dir_early,这些改进提升了工具的灵活性和功能。例如,add_file现在支持从文件描述符复制,从而允许在启动过程中进行更动态的文件操作。

mkinitcpio 39 还更新了 lsinitcpio,这是一个配套工具,用于列出、分析和提取 initramfs 镜像。它现在支持新格式并提供更详细的输出,这对于调试和开发可能非常重要。

在持续进行的变更中,mkinitcpio 的打包也进行了优化,例如将“mkinitcpio-generate-shutdown-ramfs.service”集成到各种系统目标中,以确保在重启或关机等系统电源状态转换时更加顺畅。

最后,开发者还专注于通过各种增强功能和错误修复来优化 mkinitcpio 的可用性。这些改进包括优化模块和文件在内存盘中的包含方式、调整默认文件权限以增强安全性等。

查看更新日志以获取更多详细信息以及 mkinitcpio 39 中的新功能完整列表。