2.2 内存中的initramfs

 

使用CONFIG_INITRAMFS_SOURCE选项在内核配置级别定义initramfs的内容

可以是包含根文件系统内容的目录的路径

可以是cpio归档文件的路径

可以是描述initramfs内容的文本文件

内核构建过程将自动获取CONFIG_INITRAMFS_SOURCE选项配置的内容,并将根文件系统集成到内核映像中

详细信息(在内核源文件中):

Documentation/filesystems/ramfs-rootfs-initramfs.txt

Documentation/early-userspace/README

2.3 用initramfs启动过程

 

2.4 initramfs 降低启动时间

创建尽可能小的最小初始化文件,足以启动关键应用程序,然后使用switch_root切换到最终根文件系统:

使用轻量级的C库以减小固件大小,建议使用uClibc。

将BusyBox裁剪到最小。甚至可以不用BusyBox直接在C中实现/init。

使用静态链接的应用程序(较少的CPU开销,较少的库加载,较小的initramfs(如果根本没有库))。Buildroot中用BR2_STATIC_LIBS配置。

2.5 静态链接可执行文件

静态链接的可执行文件对于减小大小(特别是在小型initramfs中)非常有用,并且启动工作量较少。

如果您将initramfs放在压缩的内核映像中,请不要对其进行压缩(启用CONFIG_INITRAMFS_COMPRESSION_NONE)。

否则默认情况下,您的initramfs数据将被压缩两次,内核将更大,并且将花费更多的时间来加载和解压缩。