linux   启动顺序

第一步:BIOS

  计算机接通电源后,主板被唤醒。BIOS对计算机硬件进行检测,即加电自检(POST,Power On Self Test ),功能是检查计算机是否良好,例如接线是否正确,内存有无故障等。检测成功并初始化硬件完成后。BIOS会寻找CMOS中所记录的第一启动项(通常是硬盘)。

第二步:MBR  (Master Boot Record)

 MBR位于磁盘的0柱面 0磁头 1扇区 ,由引导程序(bootloader)磁盘分区表DPT 硬盘有效标志0x55AA组成,大小512字节其中bootloader占446字节。

  grub的主要文件 :

                                        stage1 位于MBR中  主要作用是引导stage2

                                        stager1.5 位于磁盘的其他位置 主要作用是识别文件系统

                                        stager2    位于/boot/grub/ 主要作用是加载ketnel  借助于  grub.conf 来完成工作

  grub.conf配置文件:

   

default=0      #设置默认启动的title编号从0开始
timeout=5     #等待时间单位是秒
splashimage=(hd0,0)/grub/splash.xpm.gz  #开机时的系统图片
hiddenmenu                                                 #隐藏菜音
title CentOS 6 (2.6.32-504.el6.i686)              #内核标题,或操作系统名称,字符串,可自由修改

 root (hd0,0)                                                  # 内核文件所在的设备;对grub而言,所有类型硬盘一律hd,格式为(hd#,N)hd#, #表示第几个磁盘;最后的N表示对应磁盘的分区;

 kernel /vmlinuz-2.6.32-504.el6.i686 ro root=UUID=53ab89c9-c383-471f-9639-30234b04dfa9 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet  # 内核文件路径,及传递给内核的参数

 initrd /initramfs-2.6.32-504.el6.i686.img                           #ramdask(可以把内存当成磁盘来用)文件

  当BIOS找到第一启动项后将MBR中的bootloader(grub中的stage1)加入到内存这时BIOS将控制权交给grub,stage1载入stage2可通过stage1.5载入stage2

第三步:kernel

当bootloader开始读取内核文件时,kelnel将initramfs-2.6.32-504.el6.i686.img             解压到内存这时grub将控制权交到kernel.kernel会检测硬件以及加载驱动

第四步:init

           init主要作用是准备软件运行的环境

当kernel加载驱动完成时表示计算机硬件已就绪,这时就会主动加载/sbin/inittab级确定运行级别

     linux运行级别:

                                 

                   0halt     关机

                   1:single user mode, 直接以管理员身份切入, s,S,single    类似于安全模式

                   2multi usermode, no NFS  多用户模式,不启动网络功能

                   3:multi user mode, text mode 正常模式,文本:只有命令行

                   4reserved                未使用

                   5:multi user mode, graphic mode  正常模式图形

                   6:reboot   重启

     使用runlevel和who -r可查看运行级别

第五步:初始化

    取得运行级别后运行 /etc/rc.d/sysinit进行初始化

第六步:启动runlevel对应的服务 /etc/rc.d/rc.N

第七步:运行/etc/rc.d/rc.local来启动用户自定义开机运行的服务

第八步:启动终端等侍用户登陆

 

你可能感兴趣的:(linux,启动顺序)