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

[经验分享] centos6启动过程

[复制链接]

尚未签到

发表于 2018-4-21 10:01:33 | 显示全部楼层 |阅读模式
  前言
  每次在虚拟机里点击开启虚拟机后会看到屏幕不停地出现很多代码,后面有些跟着【ok】,有些代码后面跟着红色的【failed】。那么问题来了,为啥有些启动服务都失败了,系统还是进去了呢?本文就此给大家详细介绍一下,centos5和6 的启动流程。以后遇到系统无法启动,可以做到心中有数。
  一、加电自检POST,通过BIOS读取cmos上的配置信息,读取硬件的信息。并检测能否正常运行,硬件设备初始化。
  二、选择启动顺序
      1、加载MBR,存在于0磁道0扇区前446字节;
      2、读取位于MBR中存放的bootloader,功能是:识别、加载操作系统中的核心文件,交给内存。提供菜单信息和用户选择加载不同的操作系统,告诉下一阶段去哪里找系统和grub引导。
      3、为了打破MBR中只有446Byte存放bootloader,grub分为三个阶段
             stage1:存放于MBR中,用于加载stage1_5阶段,目的是为了识别并驱动stage2所在分区文件系统。
             stage1_5: 存放于MBR之后的扇区,让stage1中的bootloader能识别stage2所在分区的文件系统
             stage2:存放于磁盘分区上(/boot/grub),用于加载临时根文件ramdisk和加载内核文件
                          功能:(1)提供启动菜单、并提供交互式接口
                                          a:内核参数
                                          e:编辑模式、用于编辑菜单
                                          c:命令模式,交互式接口
                                    (2)加载用户选择的内核或操作系统
                                         允许传递参数给内核
                                          可隐藏启动菜单
                                    (3)为菜单提供了保护机制
                                        为编辑启动菜单进行认证
                                        为启用内核或操作系统进行认证
              总结:stage1_5就是向grub提供文件系统的驱动的,这样stage1就能访问stage2及内核所在分区(/boot)
              grub的配置:/etc/grub.conf,读取此文件的参数,准备启动内核
  三、加载系统内核kernel,执行系统初始化信息
  内核存放在/boot下,是一个vmlinuz的文件,通过initramfs文件(ramdisk)虚拟一个根文件系统在内存中,来加载合适的驱动程序,并以只读方式加载真正的根文件系统,然后运行用户空间的第一个应用程序/sbin/init
      ramdisk:centos 5 iniCentOS 5: initrd
                                 工具程序:mkinitrd
                  CentOS 6,7: initramfs
                                 工具程序:mkinitrd, dracut
      制作ramdisk文件的制作:
                                  (1) mkinitrd命令
                                        为当前正在使用的内核重新制作ramdisk文件
                                        mkinitrd   /boot/initramfs-$(uname-r).img   $(uname-r)
                                 (2) dracut命令
                                         为当前正在使用的内核重新制作ramdisk文件
                                          dracut   /boot/initramfs-$(uname-r).img   $(uname-r)
  四、启动/sbin/init
     1、 init的程序的类型:
          SysV: init, CentOS 5之前            配置文件:/etc/inittab
         Upstart: init,CentOS6                 配置文件:/etc/inittab————————-仅设置设置默认运行级别
                                                              /etc/init/*.conf   ——————-Upstart将配置文件拆分存放于/etc/init下以.conf结尾
        Systemd:systemd, CentOS 7     配置文件:/usr/lib/systemd/system、/etc/systemd/system
     2、流程
          (1)初始运行级别
          (2)系统初始化脚本————–/etc/rc.d/rc.sysinit:a、设置主机名(/etc/sysconfig/network中的HOSTNAME)
                                                                                           b、欢迎信息
                                                                                           c、激活udev和selinux
                                                                                           d、 挂载/etc/fstab定义的文件系统
                                                                                           e、挂载根文件系统(读写方式)
                                                                                           f 、系统时钟
                                                                                           g、根据/etc/sysctl.conf文件设置内核参数
                                                                                           h、激活swap
                                                                                           i、激活LVM和software RAID设备
                                                                                           j、加载额外的驱动程序
                                                                                           k、清理操作      
          (3)对应运行级别的脚本目录   
                    centos 5 的/etc/inittab有类似的几行: 13:3:wait:/etc/rc.d/rc 3 ————–读取/etc/rc.d/rc3.d的链接文件来决定如何启动或关闭赴服务:S开头的 进行start操作,K开头的stop。链接文件的源文件在/etc/init.d/目录下服务脚本
                     例外:S99local没有链接到/etc/init.d/下的服务脚本,而是链接到/etc/rc.d/rc.local (/etc/rc.local)。后序如果有不方便或者没必要写进脚本的程序,又希望开机自启动,可以直接写进这个脚本。
          (4)配置好组合键的功能
          (5)配置不断电系统PF、PR
          (6)启动tty6个终端
          (7)如果是3级别,启动字符界面
  五、启动终端,登录。
  六、到这里linux大概的过程就结束了,学习启动过程是为了在系统出故障时,能做到快速判断。后面一篇文章会详细模拟启动故障,根据启动所需的文件来恢复。
  

运维网声明 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-449911-1-1.html 上篇帖子: CentOS 6.5 Lvm测试笔记 下篇帖子: centos6启动故障及修复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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