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

[经验分享] CentOS开机流程详解

[复制链接]

尚未签到

发表于 2018-4-26 13:14:04 | 显示全部楼层 |阅读模式
CentOS开机流程详解

  
  一、linux开机流程:

  

DSC0000.png

     BIOS:(Basic Input Output System)基本输入输出系统,它是一组固化到计算机内主板上一个ROM芯片 上的程序,保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,可从CMOS中读写系统设置的具体信息。
     MBR:Master Boot Record,主要引导记录区。
     Boot Loader:启动引导程序。
  

  二、详细流程
  

  第一步:加载BIOS
         打开计算机电源,计算机硬件会自动加载BIOS,读取BIOS内相关硬件信息及进行硬件系统的自检,随后根据BIOS配置找到第一个有引导程序的的设备。
  第二步:读取MBR
         硬盘上第0磁道第一个扇区被称为MBR,即主引导记录,大小是512字节,存放了预启动信息、分区表信息。系统找到BIOS所指定的硬盘的MBR后,就会将其复制到物理内存中,被复制到物理内存的内容就是Boot Loader(lilo或者grub)。
  第三步:启动Boot Loader
          Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好一切准备。
Boot Loader有若干种,其中Grub、Lilo是常见的Loader。
本文以Grub为例讲解,grub功能:提供一个菜单,允许用户选择要启动的系统或不同的内核版本; 把用户选定的内核装载到RAM中的特定空间中,解压、展开。
        系统读取内存中的grub配置信息(一般为menu.lst或grub.conf),并依照此配置信息来加载指定内核。
DSC0001.png

  第四步:加载内核
       grub把系统控制权移交给内核,内核开始探测可识别到的所有硬件设备及尝试挂载根目录以获取其驱动程序。此时就需要首先加载磁盘驱动程序以便读取磁盘,而磁盘驱动程序又保存在磁盘内,这样就会导致linux无法启动。此时需要通过伪文件系统来解决这一问题。
        虚拟文件系统 (Initial RAM Disk) 即/boot/initramfs-release.img ,这个文件的特色是,能够通过boot loader 来加载到内存中, 然后这个文件会被解压缩并且在内存当中模拟成一个根目录,且此模拟在内存当中的文件系统能够提供一支可运行的程序,透过该程序来加载启动过程中所最需要的核心模块,通常这些模块就是 U盘, RAID, LVM, SCSI 等文件系统与磁盘的驱动程序。等加载完成后, 会帮助核心重新呼叫 /sbin/init 来开始后续的正常启动流程。
   注:RamDisk是辅助性文件,并非必须,取决于内核是否能直接驱动根文件系统所在的设备。
DSC0002.png

  第五步:运行/sbin/init程序,设定linux的运行等级
     内核加载完毕后,运行用户空间内第一个应用程序就是/sbin/init,然后读取/etc/inttab文件,依据文件配置设定系统运行等级;
DSC0003.png

  第六步:init进程执行rc.sysinit
      设定了运行等级后,Linux系统执行/etc/rc.d/rc.sysinit系统初始化脚本程序。初始化包括:设置主机名、设置欢迎信息、激活Udex和seliux、挂载/etc/fstab文件中定义的所有文件系统、检测根文件系统、设置系统时钟、根据/etc/sysctl.conf文件来设置内核参数、激活LVM及软RAID设备、激活swap设备、加载额外设备的驱动程序、执行清理操作。
   第七步:启动内核模块
         具体是依据/etc/sysconfig/modules文件目录下的文件来装载内核模块。

第八步: 执行 run-level 的各个服务启动 (script 方式)
        根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。

DSC0004.png

  第九步:执行/etc/rc.d/rc.local
      rc.local就是在一切初始化工作后,Linux留给用户进行个性化的地方。你可以把你想设置和启动的东西放到这里。

   DSC0005.png
  第十步:执行/bin/login程序,进入登录状态
     Linux 就会启动终端机或者是 X Window 来等待使用者登陆。
   DSC0006.png
  

  

运维网声明 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-452340-1-1.html 上篇帖子: How to recover the root password in Centos 6 ? 下篇帖子: CentOS 6 编译安装Git 2.8.1
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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