CentOS 6系统启动流程

CentOS 6系 统启动流程

这里大概介绍一下系统启动的大概框架仅限CentOS 6 启动流程,因为系统版本不同启动也是有区别的,方便看到系统启动时哪里出问题可以及时排错,也是因为说深了臣妾也做不到啊~

系统的内核是基于模块化的".ko",而且内核很小只有4M左右,这样就有一个问题,系统启动是需要很多很多很多控制模块的,内核只有这么小怎么启动系统呢? 因为启动时的大部分文件并不在内核里面,通过启动时的调用来实现。

[[email protected] lib]# ll /boot/vmlinuz-2.6.32-642.el6.x86_64 -h

-rwxr-xr-x. 1 root root 4.1M May 10 2016 /boot/vmlinuz-2.6.32-642.el6.x86_64

系统启动的时候需要加载操作系统的根,操作系统的根是使用ext4系统来格式化的,而ext4的驱动在/lib/modules/2.6.32-642.el6.x86_64/kernel/fs/ext4/ext4.ko 这里就有一个矛盾了,系统要启动需要加载根的操作系统驱动,而系统驱动模块在根上,这好像是一个先有鸡还是先有蛋的深度哲学问题啊。其实不是这样的,在/boot/initramfs-2.6.32-642.el6.x86_64.img 这是一个辅助伪根系统,相当于一个虚拟的内存磁盘文件,这样就可以调用根了。
相比较CentOS 5|6|7启动速度
  • 启动速度7最快 6其次 5最慢
  • 6 启动基于d-bus
  • 5启动是有依赖关系的串行
  • 7用到谁启动谁如果有依赖的话,被依赖的那个包会“假装”启动。这样节约时间,启动速度就显得快了。

启动流程

  • POST :Power-On-Self-Test (加电自检)就是在加载主板里面内置的程序。
  • 启动引导设备内MBR的Boot Loader 保存着有关计算机系统最重要的基本输入输出程序,系统信息设置。
  • 加载核心操作系统启动RAM 读写存储器,重启不会丢失,因为主板里有电池,电池一直供电所以丢不了,不过电池如果坏了或者使用时间太长就有可能会丢。
  • 查找bootlooder在硬盘,引导加载器,来引导计算机,引导操作程序。调用/sbin/init程序
    这里需要了解一下GRUB(GRand Unified Bootloader)非常强大的系统管理工具,在CentOS5|6|7中版本都不一样
    系统启动时是分几个阶段来启动的,存在于硬盘第一个扇区,在MBR前446字节当中,这里称为grub的第一阶段。可以通过446字节找到第一点五阶段。把里面的ext4驱动读取出来加载进去,就可以识别boot了
    第一点五阶段,我们称之为过渡,来识别第二阶段内容,存放在MBR之后的一些扇区。
    第二阶段的内容存在 /boot/grub目录下,其中grup.conf文件很重要,用来存放操作系统的内核文件和存放了操作系统的根,找到根之后挂载操作系统,然而根的操作系统在哪里找呢,在kernel下面/initrd 这一行存放的就是操作系统的驱动。
  • 执行/etc/inittab设定Linux运行等级 共有七个运行等级

    • 0 - halt (Do NOT set initdefault to this) 关机

    • 1 - Single user mode 单用户模式(root 自动登录), single,

    • 2 - Multiuser, without NFS (The same as 3, if you do not have networking) 多用户模式,启动网络功能,但不会启动NFS ;维护模式

    • 3 - Full multiuser mode 多用户模式,正常模式;文本界面

    • 4 - unused 预留级别;可同3

    • 5 - X11 多用户模式,正常模式;图形界面

    • 6 - reboot (Do NOT set initdefault to this) 重启

      • id:5:initdefault: 这一行把中间的是5代表启动时启用图形界面,也可以修改成别的你需要的界面例如3

  • 执行/etc/rc.d/rc.sysinit初始化系统

/etc/rc.d/rc#.d "#是一个数字"文件里存放的都是软连接,写着每个系统启动或关闭的顺序 K*代表关闭顺序 数字越小,通常为依赖别的服务,所以要先关闭。S*代表启动顺序 同样数字越小,越先执行,但是这里先执行的是被依赖的服务。 当然不是每个服务都是处于常用服务状态,关了不合适,开着还浪费资源这样就有了Xinetd这个代理,所有不常用的服务挂到Xinetd下面,Xinetd就在需要的时候会负责开启或者关闭他所代理的服务的状态。在/etc/rc.d/rc2|3|4|5.d每个文件的最后一个文件是S99local最后启动的,这一个开机脚本,可以把自己生产中需要的脚本写进里面,而且不用担心依赖关系。

查看atd服务的开启关闭状态
[[email protected] rc3.d]# chkconfig --list atd

atd     0:off     1:off     2:off     3:on     4:on     5:on     6:off

设置主机名
设置欢迎信息
激活udev 和selinux
挂载/etc/fstab 文件中定义的文件系统
检测根文件系统,并以读写方式重新挂载根文件系统,等于计算机启动的时候会挂载两次根,第一次只读挂载,第二次变成可读可写。
设置系统时钟
激活swap 设备
根据/etc/sysctl.conf 文件设置内核参数
激活lvm 及software raid 设备
加载额外设备的驱动程序
清理操作
  • 执行/etc/rc.d/rc.local脚本,自定启动程序。
  • 运行/sbin/local启动终端,可以登录了,启动流程结束。

下面附加一下grub.conf文件的最基础几行,有兴趣的话可以自己写一下

default=0(设定默认启动的菜单项;落单项(title) 编号从0 开始)

temeout=3(指定菜单项等待选项选择的时长)

title:  CentOS 6.8(定义菜单项“标题”, 可出现多次)

kernel /vmlinuz   root=/dev/sda1 (查找stage2 及kernel 文件所在设备分区)

initrd /initramfs-2.6.32-642.e16.x86_64.img(启动选定的内核或操作 系统时进行认证)

时间: 2024-10-05 05:00:38

CentOS 6系统启动流程的相关文章

CentOS 6 系统启动流程

CentOS 6中所采用的Bootloader程序为grub,init为upstart.开机启动的大致流程图如下: 步骤图分解如下: 1.加电自检,当按下电源时,计算机通过BIOS去加载CMOS的信息,取得主机的各项硬件配置,并会进行硬件检测和硬件初始化. 2.BIOS根据Boot Sequence(设备启动次序)取得第一个可启动设备.按次序查找,如果当前设备没有MBR时,跳过当前设备查找下一个设备,直到找到含有MBR的设备.如果MBR出现损坏等故障,启动则会失败,且不会继续往下查找可引导的设备

CentOS 5,6 系统启动流程详解

一.linux 组成介绍 1.linux 组成: Linux: kernel+rootfs(根文件系统) kernel: 进程管理.内存管理.网络管理.驱动程序.文件系统.安全功能 rootfs: 程序和glibc 库:函数集合, function, 调用接口(头文件负责描述) 过程调用: procedure,无返回值 函数调用: function 程序:二进制执行文件 2.内核设计流派: 单内核(monolithic kernel): Linux 把所有功能集成于同一个程序 微内核(micro

CentOS 系统启动流程

一.Linux系统的组成部分:内核+根文件系统 1.内核: 进程管理:进程之间的通信为:IPC(Inter Process Communication)机制,有消息队列.semerphor.shm.socket(跨主机之间的通信) 内存管理: 网络管理: 文件系统: 驱动程序: 安全功能: 2.运行中的系统环境可分为两层:内核空间.用户空间 用户空间:应用程序(表现为进程或线程) 内核空间 :内核代码(系统调用) 3.内核设计流派: 单内核设计:把所有功能集成与同一程序: Linux 微内核设计

linux基础之CentOS系统启动流程

CentOS系统启动流程 Linux系统的组成部分:内核+根文件系统 内核:进程管理.内存管理.网络协议栈.文件系统.驱动程序.安全功能 IPC:Inter Process Communication 消息队列.semerphor.shm socket 运行中的系统环境可分为两层:内核空间.用户空间 用户空间:应用程序(进程或线程) 内核空间:内核代码(系统调用) 内核设计流派: 单内核设计:把所有功能集成于同一个程序: Linux 微内核设计:每种功能使用一个单独的子系统实现: Windows

CentOS 6的系统启动流程

一.POST加电自检 按下电源后ROM芯片中的CMOS程序执行并检测CPU.内存等设备是否存在并正常运行,CMOS中的程序叫BIOS,可以设置硬盘接口,网卡声卡开关之类的简单设置.一般PC机主板上有一个纽扣电池,这个电池就是给ROM供电的,可以保证主板断电后BIOS的一些基本设置不会重置. 下面是一个比较新的主板的BIOS,在老主板上一般只有英文不会有中文界面,老式主板只支持键盘操作不支持鼠标,现在很多新主板已经可以支持鼠标操作了. 二.引导加载次序Boot Sequence 在系统启动前计算机

学习笔记之centos系统启动流程

 CentOS 系统的启动流程: 简介: (内核级别)POST -读取-> BootSequence(在BIOS中) --> BootLoader(在MBR中)--> Kernel(借助ramdisk完成根文件系统的加载)--> rootfs(readonly)--> /sbin/init (用户空间的第一个程序)接下面 (用户空间的启动流程): /sbin/init (读取/etc/inittab) [centos5,6,7在此略有区别]   设置默认运行级别(1) --&

13.1 CentOS系统启动流程介绍

CentOS系统启动流程介绍 本章我们将学习 Linux 启动流程和内核模块管理相关的内容.通过本章我们将学习如下内容: Linux 系统的组成及特点 CentOS 系统的启动流程 开机启动成 grub 的配置和使用 内核功能与内核模块的加载与使用 在学习本章内容之前,需要对之前学习的操作系统知识做一个简单梳理总结,目的是了解 Linux 系统在启动时面临了哪些问题,怎么去解决这些问题.这样我们才能知道为什么启动流程是"这样". 1 2 3 4 5 6 7 8 9 ----------

CentOS系统启动流程

POST(加电自检):检测硬件在CPU的控制下,将RAM芯片中的某个程序映射到ROM地址空间,并执行其中的指令完成系统硬件健康状况检查,例如存储设备.网卡.CPU.声卡等硬件设备是否完好.当检查完成后,所有硬件或基本硬件.核心硬件没有问题,则下一个启动流程BIOS BIOS(Boot Sequence):决定启动介质按照BIOS所设定的系统启动流程,根据引导次序(Boot Sequence)自上而下的寻找对应存储设备上操作系统的MBR(全称为Master Boot Record即硬盘的主引导记录

Linux系统启动流程分析与关机流程

Linux 系统启动流程分析 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导. 运行 init. 系统初始化. 建立终端. 用户登录系统. init程序的类型: SysV: init, CentOS 5之前, 配置文件: /etc/inittab. Upstart: init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf. Systemd: systemd, CentOS 7,配置文件: /usr/lib/