您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

是否可以在不创建initrd映像的情况下引导Linux内核?

是否可以在不创建initrd映像的情况下引导Linux内核?

initrd / initramfs是可选的,不是必需的。bzImage是纯内核映像,可以由引导加载程序直接引导。但是,可能需要执行某些任务(通常需要访问文件系统和用户空间工具)(例如,加载文件系统模块,用于磁盘访问的驱动程序,从不具有固定名称/路径的可交换媒体安装根文件系统等)。

那就是 initramfs的 目的:它是一个CPIO存档,它在内核映像本身或在引导时由引导程序附加到内核映像(内核映像是initramfs的容器,而不是其他方式)。

该CPIO存档包含一个初始rootfs,其中包含设置所有设备以访问正确的根文件系统所需的模块,以及一些程序来标识那些设备,加载模块,执行其他一些启动任务,以将正确的根文件系统重新安装到/并启动/ sbin /在里面

initrd 与之相似,主要区别在于它是一个文件系统映像,可以并且通常被压缩。内核必须支持内置使用的文件系统,并将此映像安装为初始/。

由于CPIO简化了几个数量级,因此initramfs比initrd更受青睐,因为这样既节省了对内置任何文件系统模块的需求,又使initramfs的创建更加容易。无需创建ext2映像,而是通过loopdevice挂载并填充它,它可以简化为一个简单的存档创建过程,与使用tar不同。

但是,如果您使用内核映像中内置的所有必需的驱动程序和模块来编译内核,并且您的根文件系统设备在系统中具有固定名称,则您不需要initramfs,因为内核可以自行完成操作。

其他 2022/1/1 18:17:07 有605人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶