阅读最新的 Upstart 版本 (新贵 1.6现在),我看到了下面这句话:
添加了无 initramfs 启动支持
这是否意味着可以跳过 initramfs 的步骤?
启动时间是否会更快或者系统性能是否会更好?
答案1
initramfs 或 initrd 负责在启动整个系统之前设置根文件系统。如果您有软件 RAID,则在 initrd 中设置。如果您有全盘加密,则在 initrd 中处理。某些存储驱动程序在使用之前必须从用户空间运行,因此这些驱动程序在 initrd 中处理。可能还有其他我遗漏的东西。您可以通过查看 来检查 Ubuntu 系统上的整个内容/usr/share/initramfs-tools
。文件init
实际上是内核首先运行的 init 脚本。如果您查看底部,您会看到它在哪里设置新的根 FS 并运行 /sbin/init(即 upstart)
但对于专用系统(例如嵌入式系统)来说,这都是额外的噪音和复杂性。它确实会占用一小部分启动时间。我们花费 1 秒或更短的时间,但对于需要快速启动的设备来说,这多出来的 1 秒可以缩短启动时间。
Upstart 在这一过程中的作用是创建所需的设备节点和其他未由 initrd/initramfs 处理的系统设置。它需要将系统初始化到这样的状态:所有必需的部分都已存在,系统才能成功启动到用户空间。相关提交清楚地呈现了这一切:http://bazaar.launchpad.net/~upstart-devel/upstart/trunk/revision/1375#init/main.c