整体流程
加电--》BIOS--》Bootloder--》kernel--》initrd(initramfs,嵌入式就结束了就是最后的文件系统这里有驱动声卡,显卡之类的等和工具包busybox)--》rootfs最后的真是文件系统
总序:
通过引导程序isolinux.bin和引导程序的配置文件boot.cat或isolinux.cfg来引导kernel和临时文件系统initrd。引导临时文件系统tmpfs(initrd一般是initramfs为roofs最后的系统做环境准备)目的是为安装最后的系统做环境准备。最后最好rootfs在安装grup引导程序,就over了;详细如下:
1、isohdpfx.bin
isolinux.bin是引导程序类似grup作用类似,这个引导程序的配置文件是isolinux.cfg,通过配置文件里面的内容进行执行,可以直接写kernel,initrd的位置进行加载启动,也可以去读取别的配置文件在加载
2、isolinux.cfg的内容
<pre name="code" class="html">DEFAULT loadconfig LABEL loadconfig CONFIG /redflag/boot/syslinux/syslinux.cfg APPEND /redflag/boot/syslinux/
UI vesamenu.c32 DEFAULT qomo PROMPT 0 MENU TITLE Red Flag inWise LiveCD MENU BACKGROUND splash.png TIMEOUT 30 MENU WIDTH 78 MENU MARGIN 4 MENU ROWS 5 MENU VSHIFT 10 MENU TIMEOUTROW 13 MENU TABMSGROW 11 MENU CMDLINEROW 11 MENU HELPMSGROW 16 MENU HELPMSGENDROW 29 MENU COLOR border 30;44 #40ffffff #a0000000 std MENU COLOR title 1;36;44 #9033ccff #a0000000 std MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all MENU COLOR unsel 37;44 #50ffffff #a0000000 std MENU COLOR help 37;40 #c0ffffff #a0000000 std MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std MENU COLOR msg07 37;40 #90ffffff #a0000000 std MENU COLOR tabmsg 31;40 #30ffffff #00000000 std LABEL QOMO MENU LABEL QOMO inWise LINUX /redflag/boot/x86_64/vmlinuz quiet splash INITRD /redflag/boot/x86_64/redflagiso.initrd APPEND redflagisolabel=QOMO rflive ONTIMEOUT QOMO LABEL QOMO-safe MENU LABEL QOMO inWise Safe Mode LINUX /redflag/boot/x86_64/vmlinuz quiet splash INITRD /redflag/boot/x86_64/redflagiso.initrd i915.modeset=0 nouveau.modeset=0 radeon.modeset=0 APPEND redflagisolabel=QOMO rflive
至此kernel和initrd通过引导程序isolinux.bin引导起来了,之后把initrd加载到内存解开,解开之后就是busybox提供的一个工具集,要是嵌入式到此就结束了,桌面或是服务器还要到最后的文件系统。在initrd中只要是的是通过busybox提供的工具集在init或是linuxrc的shell的脚本中为最外层的filesystem做准备。在initrd中有几个重要的目录bin、sbin、linuxrc。而linuxrc就是给用户留出的接口,可以在linuxrc里面做一些事情。如怎么去安装外层的文件系统。
第一:编译内核见Kernel编译,这个是最核心的。
第二:制作initrf见:initrd的多种制作方法,这个要是嵌入式就是最终的filesystem。如果是桌面或是服务器initrd只是temfs临时文件系统
第三:制作最终的文件系统,文件系统的目录结构应该符合FHS标准。LFS方式:LFS方式制作跟文件系统;debootstrap方式:febootstrap方式:busybox方式:
deb系统(ubuntu)提供一个制作标准的文件系统工具debootstrap,用来构建一套基本的根文件系统。既包含了/boot、/etc、/bin、/usr等,它的体积比发行版小很多功能也不强大,所以只能说是基本的系统。rpm(centos,fedora)系类的也提供了类似的工具febootstrap。制作根文件系统最全面的还是LFS,而嵌入式是用busybox工具制作根文件系统。