设为首页 收藏本站
查看: 525|回复: 0

[经验分享] centos6启动流程详解

[复制链接]

尚未签到

发表于 2018-4-21 09:43:56 | 显示全部楼层 |阅读模式
  

  当我们在平常的工作学习的环境中使用linux时,我们只需要按一下开机键,系统就会自动为我们加
  载好相关配置,然后为我们打开操作界面,那么在这个过程中究竟都发生了什么,如果系统突然起不来
  了,那么到底是启动时的哪一部分发生了错误呢,下面,我们就来看看linux中的centos6启动的具体流
  程。   

  centos6启动流程大致分为以下这些步骤:
     
  1.加电自检,得到BIOS的硬件信息,获取第一个启动设备
  2.读取第一个启动设备MBR的引导加载程序(grub)的启动信息

  3.加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备
  4.运行init程序
  5.运行系统初始化脚本  /etc/rc.d/rc.sysinit
  6.启动核心的外挂模块
  7.init执行运行各个批处理文件
  8.init执行/etc/rc.d/rc.local
  9.执行/bin/login程序,等待用户登录
  10.登陆之后,打印登陆提示符,并开始shell控制主机
  

  下面我们来分别解释下每一步的具体细节
  

  1.加电自检
  当我们按下电源键后,rom芯片中的CMOS程序开始执行并检测CPU,内存等设备是否存在并正常运
  行,CMOS中的程序叫做BIOS,可以设置硬盘接口,网卡声卡开关之类的简单设置。一般PC主机板上会有

  一个纽扣电池,它的主要作用就是给BIOS供电,当系统由于突然停电或者其其他原因意外断电的时候,
  这个纽扣电池可以保证主板在断电后BIOS的一些基本设置不会被重置。
  

  2.读取MBR的启动信息
  

   计算机不是人类,他的所有操作都是认为的事先设定好的,所以当启动计算机的时候,它并不知道
  系统放在哪里,我们需要告诉它,怎么告诉它呢,就是用程序引导它,这个程序叫做bootloader,不同
  的操作系统的bootloader是不同的,windos使用的bootloader是ntloader,只能对windos系统进行引
  导,而在linux中的bootloader叫做GRUB,它不仅可以对linux进行引导,也可以对windos进行引导,所
  以在装windos和linux双系统的电脑的时候,要先装windos再装linux。
         MBR记录一般在磁盘0磁道1扇区,一共512个字节,前446个字节是Bootloder,后64个字节是存放
  分区信息的,一共四个分区,每个分区占用16个字节,最后两个字节是分区结束信息,一般是55AA.
          所以,当加点自检完成后,会启动bootloader也就是grub程序,他会引导计算机到磁盘的第一个扇
  区并加载MBR记录,然后按照MBR记录启动系统。
  

  3.加载核心信息,尝试驱动所有的硬件设备
        
         当加载完MBR的启动信息后,系统会进行自身初始化,首先它会侦测所有可识别到的
  硬件设备,然后会借助于ramdisk加载硬件驱动程序,接着以只读方式挂载根文件系统,最
  后运行用户空间的第一个程序/sbin/init。那么,什么是ramdisk呢?
           ramdisk是内核中的特性之一,它使用缓冲和缓冲加速来对硬盘上的文件进行访问,并
  且加载相应的硬件驱动程序。
  

  4.运行init程序
  

           init程序是系统启动的时候,第一个运行的程序,我们都知道任何程序都有自己的父程序,一旦父程
  序被关闭,那么该程序也将无法运行,而init程序就是系统中所有程序的祖宗程序。
  

  5.运行系统初始化脚本
          
          当init程序启动后,它做的第一件事就是运行 /etc/rc.d/rc.sysinit,也就是系统初始化脚本,那么运行这个脚本能做什么呢?
  (1) 设置主机名
  (2) 设置欢迎信息
  (3) 激活udev和selinux
  (4) 挂载/etc/fstab文件中定义的文件系统
  (5) 检测根文件系统,并以读写方式重新挂载根文件系统
  (6) 设置系统时钟
  (7) 激活swap设备
  (8) 根据/etc/sysctl.conf文件设置内核参数

  (9) 激活lvm及software raid设备
  (10) 加载额外设备的驱动程序

  (11) 清理操作
     
  6.启动核心的外挂模块
  

  7.init执行运行各个批处理文件
  

        当核心的外挂模块被启动后,init会执行各个批处理文件,这些批处理文件位于如下目录中
  

                  DSC0000.png
  

  

        这些文件夹分别对应级别0到级别6,我们进入rc5.d中查看有哪些文件
  

                  DSC0001.png
  

    而如果我们使用ls -al命令查看,可以发现这些文件其实都是软连接
  

      DSC0002.png
     
      他们其实都指向一个一个的服务脚本,其中K代表此服务开机不自动启动,S代表开机自动启动,
  后面的数字代表了启动的顺序。

  

  8.执行rc.local文件
            rc.local也是一个脚本。该脚本是在系统初始化级别脚本运行之后再执行的,因此我们可以安全地在里面添加在
  系统启动之后执行的脚本。例如的我们可以在里面添加fstab挂载脚本。此外,我们可以在里面添加一些调试用的脚
  本命令。
           rc.local脚本是在启动过程中较后执行的,在正常级别下,最后一个启动服务S99local是指向lrc.local脚本,我们
  可以将不方便或者不需要写为服务脚本的脚本放置于rc.local文件中,他是用户自定义的一些设置。
  

  9.执行/bin/login程序,等待用户登录
  

  出现登陆界面,选择用户后,输入登录密码即可登录
  

  10.登陆之后,打印登陆提示符,并开始shell控制主机   

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-449893-1-1.html 上篇帖子: Centos7安装iptables服务 下篇帖子: cobbler 在centos7.3上的部署
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表