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

[经验分享] CentOS5和6的系统启动流程

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-6 14:47:52 | 显示全部楼层 |阅读模式
CentOS 5和6的启动流程
我们在启动linux后,等待输入用户名和密码就可以进入系统了。那么linux系统在内部是怎样启动的呢?下面我们就来介绍下linux系统的启动流程。
下面以CentOS6为例详细介绍下Linux系统的启动流程
Linux启动流程的大致过程
wKiom1XpFtOwZm5cAAIhlBjg9F0978.jpg
  (1)POST加电自检
    POST(PowerOnSelfTest)首先对每一个设备进行检查。完成后会交给BIOS寻找存有引导记录的设备,找到后读入操作系统引导记录,然后将系统控制权交给引导记录,并由引导记录来完成系统的顺利启动。
  (2)MBR引导
    MBR(Master Boot Record) MBR记录一般是在磁盘 0 磁道 1 扇区,共512个字节。前446个字节是BootLoder,后 4*16 的 64 个字节是存放分区信息的,最后 2 个字节是校验信息,一般是 55AA。
  (3)GRUB(GRand Unified Bootloader)、加载内核
    就是MBR中的前 446 个字节,是BooTLoader的一种,它的作用是要选择要启动和加载内核的。
  (4)kernel
    Linux属于单核系统:Kernel+各种外围模块组成。通过grub加载内核后(有可能会借助于ramdisk加载驱动),内核开始自我解压并工作通过虚拟根文件系统initrfs 调用init工作。
    ramdisk:内核中的特性之一:使用缓冲和缓存来回事对磁盘上的文件访问;
    CentOS 5: initrd,  工具程序:mkinitrd
CentOS 6: initramfs, 工具程序:mkinitrd, dracut
  (5)启动init程序(/sbin/init)
    init程序的类型:
            SysV: init, CentOS 5
  配置文件:/etc/inittab
Upstart: init, CentOS 6
  配置文件:/etc/inittab, /etc/init/*.conf
        Systemd:systemd, CentOS 7

                          配置文件:/usr/lib/systemd/system, /etc/systemd/system
   /sbin/init程序有0-6,七个级别
   0:关机
                                                    1:单用户模式(root, 无须登录), single, 维护模式;
                                                    2: 多用户模式,会启动网络功能,但不会启动NFS;维护模式;
                                                    3:多用户模式,正常模式;文本界面;
                                                    4:预留级别;可同3级别;
                                                    5:多用户模式,正常模式;图形界面;
                                                    6:重启
    默认级别为3,5,配置文件是/etc/inittab
    wKioL1XpNMixh2IbAANOK5IGzZ8359.jpg
每一行定义一种action以及与之对应的process
配置文件中四个字段的定义:id:runlevel:action:process

   action:(action的选项)
                                                            wait: 切换至此级别运行一次;
                                                            respawn:此process终止,就重新启动之;
                                                            initdefault:设定默认运行级别;process省略;
                                                            sysinit:设定系统初始化方式,此处一般为指定/etc/rc.d/rc.sysinit;
init程序启动以后首先运行脚本/etc/inittab来读取级别,如果你指定级别,就按指定级别运行,不是就是用默认的3级别;
然后运行/etc/rc.d/rc.sysinit这来初始化脚本;
运行完后会执行/etc/rc.d/rc#.d
    /etc/rc.d 目录中存放着123456运行级别的目录,
wKioL1XpODvg1YuKAAKhUM6KesU599.jpg

每一个rc#.d里都包含很多K或S开头的文件这些都是链接文件,这些文件代表这个级别需要启动和关闭的服务,K开头表示需要关闭的服务,S开头表示需要关闭的服务
    K*: K##*:##运行次序;数字越小,越先运行;数字越小的服务,通常为依赖到别的服务;
      S*: S##*:##运行次序;数字越小,越先运行;数字越小的服务,通常为被依赖到的服务;
    chkconfig命令:查看和管理每个级别下的服务的状态
        查看服务在所有级别的启动或关闭设定情形:
        chkconfig [--list] [name]或者直接chkconfig
wKiom1XpODzxVvjLAATxy9TiRWA802.jpg
        添加:  chkconfig --add name  可以将自己写的一些脚本,让此命令统一管理
    这条命令是在每个级别里面创建对应的K或S开头的文件,创建什么类型的文件要根据/etc/rc.d/init.d (/etc/init.d)的配置文件
我们测试一下,编辑一个配置文件/etc/rc.d/init.d/testsrv
wKioL1XpQHbw9txtAADFu_eK2SM143.jpg
wKiom1XpPlKQj1BmAAGDYl3NfGE470.jpg

        删除:  chkconfig --del name 服务不由chkconfig这种机制来管理
      修改指定的链接类型:

        chkconfig [--level levels] name <on|off|reset>
            --level LLLL: 指定要设置的级别;省略时表示2345
wKiom1XpP5PBawHcAAL0p97WxS4593.jpg
使用这个命令修改下chkconfig --level 45 testsrv off
wKioL1XpQerAvdXcAAItqhG_HnA203.jpg

    前面执行完了,会执行/etc/rc.d/rc.local脚本,此脚本是启动过程中最后启动的一个脚本。
       因此不便或不需写为服务脚本放置于/etc/rc.d/init.d/目录,且又想开机时自动运行的命令可以放在/etc/rc.d/rc.local中
    最后会执行 /bin/login 登录用户。至此系统启动过程完成




运维网声明 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-110219-1-1.html 上篇帖子: 使用iptables配置linux服务器请求转发 下篇帖子: linux常用进程管理工具及查看
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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