zoukankan      html  css  js  c++  java
  • Linux系统初始化流程

    POST-->BIOS(Boot Sequence)-->MBR(bootloader)-->Kernel(initrd)-->/sbin/init(/etc/inittab)  

      当我们按下开机按钮时,会发生这些事:

        1.自检:依赖于CPU,ROM中的程序

        2.加载BIOS,Boot Sequence确定启动顺序

        3.MBR:

            硬盘0磁道0扇区的MBR文件,共512字节

              446:BootLoader

              64:分区表,每16字节一个分区

              2:5A(一个特殊标记)

        4.kernel文件vmlinuz+initrd:只能放在基本磁盘分区,BootLoader会把vmlinuz当做根来使用,即/vmlinuz

          将vmlinuz加载到内存中使用。vmlinuz分为两段,前半部分未压缩段,是为了解压第二段。

          至此BootLoader任务完成,退场。

          操作系统安装时会执行一个命令,安装程序完成后自动运行脚本,收集操作系统运行需要的脚本,将所需要的模块打包成initrd,帮助内核完成初始化

          initrd: ram disk,内核将之作为根来使用,将硬盘模拟成磁盘

        5.initrd将所需文件复制到/下,内核完成初始化后进行根切换

        6.启动/sbin/init,由内核空间进入用户空间

          /lib/modules

          /sbin/init:

            /etc/inittab

            id:3:initdefault:

              /etc/rc.d/rc.sysinit脚本

      运行级别:

        0:关闭所有服务,切断电源。效果等同于关机

        1:单用户模式:直接以root身份登录。破解管理员密码?

        2:多用户模式:不支持NFS

        3:多用户模式:文本模式,不启动图形界面

        4:预留级别

        5:多用户模式:图形模式

        6:重启

       /sbin/init的配置文件

        每行定义一种模式:

          id:操作的ID

          runlevels:在哪些级别下操作此操作

          action:

            initdefault:设置运行级别,无需定义操作

            sysinit:指定系统初始化运行脚本

              si::sysinit:/etc/rc.d/rc.sysinit

            wait:等待系统切换至此级别时运行一次

             ctrlaltdel:定义组合键被按下时运行的命令

             respawn:当操作系统进程被关闭时立即再启动一次

          process:

        /etc/inittab中定义的操作:

          设定默认运行级别

          指定系统运行的初始脚本

          启动指定级别下要启动的服务,并关闭需要停止的服务

          定义CtrlAltDel组合键的动作

          启动图形终端

        init要完成的任务:

          设定默认运行级别

          指定系统运行的初始脚本

          启动指定级别下要启动的服务,并关闭需要停止的服务

            /etc/init.d

              /etc/rc.d/rcN.d (0-6)

                S##

                K##

          定义CtrlAltDel组合键的动作

          初始化字符终端

            终端:对应的设备

              /dev/tty#,/dev/ttyS#,/dev/console,/dev/pts#

                login-->/etc/issue

          启动图形终端

            X-Window,桌面管理器

        系统初始化脚本/etc/rc.d/rc.sysinit

          设置主机名

          激活SFELinux和Udev

          激活swap

          挂载/ etc/fstab定义的本地系统

          检测根文件系统并对其以读写方式重新挂载

          设置系统时钟

          根据/etc/sysctl.conf设置内核参数

          激活RAID和LVM设备

          清理操作

  • 相关阅读:
    2018ACM上海大都会赛 F Color it【基础的扫描线】
    2018大都会赛 A Fruit Ninja【随机数】
    两个数互质的概率
    【shell脚本学习-3】
    【mysql学习-1】
    【HCNE题型自我考究】
    【为系统营造的一个安全的环境】
    【nginx下对服务器脚本php的支持】
    【linux基于Postfix和Dovecot邮件系统的搭建】
    不同状态的动态路由协议对比
  • 原文地址:https://www.cnblogs.com/jixingke/p/6047271.html
Copyright © 2011-2022 走看看