注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

xu3stones的技术博客

OS >> Virtualization >> Cloud

 
 
 

日志

 
 

Linux 启动流程学习笔记  

2013-01-16 10:39:40|  分类: Linux内核学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
Linux启动有很多个init,包括内核初始化,initrd,/sbin/init,用户环境初始化等等,足以把人绕晕。在深入学习后,写下本文的笔记(所有内容来源于网络,本人只是稍加整理和梳理)。

开机过程详细说明 (Red Hat系,Debian系有所不同):

  示意图:

过程说明:
    1.  BIOS:系统首先由POST程序来对内部各个设备进行检查;自检后,就首先按照系统CMOS设置中保存的启动顺序搜寻软硬盘驱动器及CD—ROM、网络服务器等有效地启动驱动器,读入MBR,然后将计算机控制权交给MBR,并由MBR来完成系统的顺利启动。

   补充: 
    MBR(Master Boot Record):位于硬盘0磁道0柱面1扇区,该扇区共512bytes;MBR所做的唯一的事情就是装载第二引导装载程序。    分区表DPT(Disk Partition Table)占64bytes;    硬盘有效标志(Magic Number)占2bytes;


    2.  引导扇区的前446字节,其中定义如何启动本硬盘上的系统(根据分区表找到对应分区上的内核);而对于Linux,一般多用Grub引导,由于grub相对较大,所以grub1(现在发行版大多开始使用grub2了)分为三段式的进行引导(stage1,stage1.5, stage 2),stage1存储于硬盘MBR的前446字节中,第二段放置于紧挨着MBR的32K空间中,第三段存放于操作系统内核所在的分区上。stage2中放置的有GRUB菜单等信息(grub.conf和menu.lst),可以让用户选择需要继续引导启动的系统;并且菜单中指定的有内核及initrd信息(kernel=***;initrd=***);


    3.  根据用户选择将对应的内核读到内存,解压展开;然后内核开始初始化;初始化完成后需要读取根分区(根是一切的起点),这时候如果系统不是普通磁盘,是scsi或是raid形式时,就需要先加载相关的文件系统驱动来驱动该磁盘设备,从而读取根分区(鸡和蛋问题);这时候给内核提供了一个minilinux,即initrd,其中含有内核所需的一些基本模块驱动,该linux只在内存中运行。内核启动时展开该initrd到一段空的内存空间中(rootfs)来加载相应的驱动,在该驱动的补充之下从而挂载上根分区;


    4.  然后运行根分区脚本/sbin/init 来初始化系统;这个客户自行程序运行会读取初始化配置文件inittab(debian系是读取/etc/init/rc-sysinit.conf):在其中顺序定义并运行的有1.默认的运行级别 2.默认的系统服务初始化脚本sysinit位置 3.各种运行级别;系统会根据默认的运行级别,来对应执行相应级别下的脚本,该处脚本是链接文件,链接到init.d中相对应的文件,真正运行的是init.d里的脚本)。

    注:
     rc N;表示用rc脚本去运行rc N.d目录下的脚本;rc脚本就是去执行所需级别脚本的功能脚本;
    目录下的文件均为脚本链接文件,指向/etc/rc.d/rcN.d/目录,并且命名时以S或K开头,后面跟上0-99的数字;S代表启动时执行;K代表关闭时执行;01-99代表启动或关闭的级别(数字越小越优先)


    5.  初始化结束前执行最后一个文件:/etc/rc.d/rc.local,系统会读取该脚本中的所有命令并执行一遍;但是该脚本只在启动时执行一次,系统关闭时不能执行,所以不要为了实现开机启动而将某些服务写入这个脚本,那样会造成服务关机时的非正常关闭;


开机详细流程图:

 



  评论这张
 
阅读(159)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017