第4章 构建initramfs
一般而言,桌面、服务器等通用系统都使用initramfs。部分嵌入式系统中,也会使用initramfs,甚至有的使用initramfs作为最终的根文件系统。那么什么是initramfs呢?很难用一句话将initramfs的作用描述清楚,或许可以将initramfs定位为内核通往根文件系统的桥梁。
但是,在上一章中我们看到,在没有使用initramfs的情况下,内核也已经成功挂载了根文件系统并进入了用户空间。因此,我们不禁会产生疑问:既然内核不用借助这座桥梁就能到达彼岸,为什么还要使用initramfs呢?是不是多此一举?
这一章就来回答这个问题。本章先后讲述了为什么要使用initramfs;接着阐述了initramfs的工作原理;然后从零开始,构建了一个initramfs,其中将讨论内核如何做到动态加载用户空间的驱动,如何让冷插拔(coldplug)设备也如热插拔(hotplug)设备一样,可以动态加载用户空间的驱动等等;最后讨论如何从initramfs切换到真正的根文件系统。