在前面的两篇文章大致的讲解了initramfs,和设备文件文件系统,这篇文章就继续前两篇的文章继续讲解initramfs是如何实现让内核访问磁盘的。
设备的驱动程序都是以内核模块的形式存放的,本人用的是kvm的环境,机器挂载磁盘文件需要用到virtio相关的驱动,将相关的驱动复制到initramfs文件中。
安装驱动需要用到相关的程序,例如insmod,modprobe,lsmod等,其实这些程序都指向kmod,将相关程序也在initramfs中创建好。
开机进行测试
加载virtio_pci与virtio_blk
modprobe会自动分析驱动之间的依赖关系,其实相关的驱动会自动加载,但是以上两个驱动需要手动加载。
加载完驱动后会发现/dev/目录下已经出现了vda磁盘设备
最后就是切换到真正的根文件系统,并启动根文件系统的第一个进程,完成操作系统的启动工作