首先内核会加载sysfs文件系统,然后会创建一个虚拟的rootfs文件系统;
如果uboot系统通过bootm传的第二个参数有initrd的话,这时候会将initrd挂到前面创建的rootfs下,
我看有的博看写的是通过bootagrs下的root=/dev/ram 或者是root=/dev/mdtblock1这样的方式,把rootfs压缩包先
放到这些设备下,然后内核启动的时候把这些设备里的rootfs加载到前面创建的虚拟rootfs下的。
但是这种方法他是怎么创建设备驱动的。我还没明白呢。
initramfs根文件系统启动的第一个进程是init,通过下面的方法实现:
#ln -s bin/busybox init
这样就为busybox创建了一个软链接init,这个文件就是我们要创建的init文件。
rdinit 是指定initramdisk里执行的第一个程序,
populate_rootfs会把initramfs 和 initrd 里的内容解压到rootfs下
然后在init进程里会把sysfs文件系统挂再到/sys目录下