Linux安装过程


1 开机后BIOS自检

    由BIOS判断磁盘上有哪些引导程序之后加载

    常见bootloader   –>   grub lilo syslinux/isolinux

2 由(bootloader)ISOLINUX 进行安装引导(第一阶段)

    由引导程序isolinux.bin启动系统

    启动时默认读取cdrom中的isolinux.cfg(配置文件)

    列出认为最重要的部分

    

    需在最后添加  inst.ks=kickstart配置文件所在位置(如果要实现自动安装)

    menu label 为安装时的引导选项 kernel 要加载的内核· initrd=initrd.img是定义内核的挂在器是initrd.img(不是很懂 望高人指点) inst.stage2镜像所在位置

由bootloader 加载vmlinuz映像(第二阶段)

    vmlinuz包含有linux内核的静态链接的可执行文件

    bootloader 释放内核映像到内存 开始内核引导过程

    内核加载部分硬件驱动(通过devtmpfs)     

    并且释放initramfs

4 由内核判断initrd.img的格式如果是cpio则释放到rootfs(加载必要的驱动)

    会被bootloader加载到内存中,并且启动init程序(所有进程的父进程  PID为1)。之后它会被复制到RAM中并挂载到系统上,并作为临时根文件系统使用

    并且加载相关模块驱动,从而找到真正的根文件系统。

    cpio-initrd( >= 2.6 ) image-initrd( 2.4 < )

    最主要区别为image-initrd的运行的第一个程序为linuxrc

    在运行完毕后又重新将系统控制权交给内核

    cpio-initrd运行的第一个程序为init

    之后不会将系统交给内核而是完全由init程序操作

5 执行initrd.img里的init程序进行初始化

    ./usr/sbin/anaconda-diskroot  查找kickstart文件

    以下为./usr/sbin/fetch-kickstart-disk函数输出

    ./usr/sbin/dmsquashfs-live-root程序挂载squashfs.img

    Init程序停止initrd文件系统

    并且重新remount到真实文件系统

    直到init程序到达basic system

6 运行squashfs中的usr/bin/anaconda程序 启动安装

    安装时anaconda读取kickstart中的内容进行安装