Linux启动过程

wKioL1Z-TQPDp4stAADQT1zRtHg742.png

1、检测硬件

2、读取硬盘MBR(Master Boot Record)

    MBR位于第0磁道第一个扇区,默认扇区大小为512 bits,包含主引导程序、分区表、分区有效标志

        1)、主引导程序(boot loader),占446 bits,引导grub/lilo,一般常用grub。

        2)、分区表(Disk Partition table 简写DPT),大小为64 bits,记录分区及分区表大小。

        3)、分区有效标志,占用2bits,固定为55AA。

3、引导grub(GRand Unified Bootloader简称“GRUB”),是一个来自GNU项目的多操作系统启动程序

      按grub.conf配置文件,加载内核(kernel)

4、执行init进程,内核启动后,执行的第一个进程init,开始初始化系统。

5、init 读取/etc/inittab配置文件,获取启动级别run-level

     例如/etc/inittab默认启动运行级别: id:5:initdefault:      

6、init 运行/etc/rc.d/rc.sysinit,启动相关服务环境(如网络、时区等)。

7、init 执行/etc/rc.d/rcX.d(X表示数字,run-level级别) 下各个服务并启动 (script 方式);

    例如系统默认启动级别为5,系统就会运行/etc/rc.d/rc5.d目录下的脚本。查看这些脚本文件:

    [root@lnmp01 ~]# ls /etc/rc.d/rc5.d
    K01smartd          S01sysstat           S25cups
    K05wdaemon         S02lvm2-monitor      S25netfs
    K10psacct          S03vmware-tools      S26acpid
    K10saslauthd       S08ip6tables         S10network
    文件名意义:K表示关闭;S表示启动;数字:表示顺序,数值越大,启动顺序越早;后面字母表示服务名称。脚本有一项关于chconfig配置,以network这个服务为例,查看S10network 这个脚本:

 

wKioL1Z-NKqCvWX7AAAvFE7ukD4366.png



8、init 执行/etc/rc.d/rc.local,启动开机自动执行的脚本。

9、init 执行虚拟终端机控制程序 mingetty 来启动 login 程序,最后就等待用户登入


你可能感兴趣的:(开机启动)