LiveCD的启动过程
1. LiveCD的辅助系统
之前提到的initrd以及initramfs都可以使用
2. LiveCD最终系统
采用CD或者DVD作为存储介质不可写入,基本采用ISO9660文件系统
3. LiveCD对硬件设备的驱动
LiveCD要支持不同的硬件设备需要动态对驱动模块加载
(1)内核支持大量硬件驱动
(2)辅助系统提供LiveCD存储介质
(3)最终系统中提供硬件自动检测和模块自动加载
使用以下方法
(1)内核配置中选择大量的硬件驱动
(2)辅助系统中加载最基本的内核模块以及光驱设备
(3)最终系统中采用udev进行硬件检测和模块加载
4. LiveCD基本的启动过程
(1)LivdCD启动器
为了让光盘可以启动系统,需要在光盘的特定位置上放入(Grub),将计算机的BIOS设置为从光盘启动,就会在光盘的特定位置启动该控制器,载入光盘上的辅助文件系统。
(2)镜像文件的启动过程
镜像文件有两种方式,一种是Initrd, 另外一种是Initramfs
<1>使用Initrd时候内核会在自身启动完成以后运行辅助系统中的"/linuxrc"程序文件, linuxrc必须是一个可执行文件,可以是二进制文件也可以是脚本文件。
linuxrc需要完成几项功能
- 测试当前计算机的硬件配置
- 找到livecd的光驱设备文件并且加载
- 将livecd的最终系统挂载到内存中
- 对最终系统做使用前的处理
- 设置real-root-dev为/dev/ram0设备号
- 将LiveCD的最终系统切换到根文件系统上
- 将启动控制权交还给
<2>使用"Initramfs"内核会在启动完以后运行辅助系统中的/init程序文件
init需要完成以下几项功能
- 测试当前计算机的硬件配置
- 查找当前LiveCD所在光驱设备文件并加载
- 将LiveCD中的最终系统加载到内存中
- 对最终系统做使用前的处理
- 将最终系统切换到根文件分区上
两者的区别在于initrd需要考虑内核衔接的问题,而Initramfs不需要考虑。
关于LiveCD请关注我的博客,还有后续文章介绍如何自己制作LiveCD以及如何修改已经做好的LiveCD发行版,并且会介绍一些LiveCD相关的技术