grub stage  1

MBR中前 446个字节,如果把这里面的内容损坏,那么系统会认为当前磁盘没有启动引导功能,会尝试从光盘或者网络启动系统

grub  stage  1.5

存放识别/boot分区的文件系统的驱动,一般占用的空间是在MBR扇区后面的27个扇区

如果数据被损坏,启动系统的时候还是会从磁盘引导,但是不会出现启动菜单.会一直出现黑屏等待状态

grub  stage 2

只要看到内核的启动菜单,表示已经成功的进入了grub的stage 2阶段,因为启动菜单是在2 stage生成的.

读取grub.conf文件

系统启动到执行启动第一个进程

1.通过grub stage1 中的MBR 找到 grub stage 1.5

2.通过读取存储在stage 1.5中的/boot分区的驱动文件使grub能够以文件的方式读取/boot分区下面的文件

3.通过stage2中读取/boot/grub.conf加载linux内核文件到内存,然后再加载虚拟文件系统initramfs使内核能够以文件系统的方式识别操作系统的根分区

4.grub程序在加载完成内核后,会把程序执行权限移交给内核

5.当内核识别操作系统的根分区后,启动系统的第一个进程,执行系统初始化脚本

grub命令

1.grub-install      /dev/sda            修复grub1  1.5  2  所有阶段的数据  修复的时候不依赖于任何外部配置文件

2.grub中对应的/根分区不是操作系统的根分区,它代表的是/boot分区

3.(hd0,0) 表示第一块磁盘的第一个分区  即代表sda1

4.(hd0)    表示第一块磁盘    即表示sda

5.grub是一个交互式命令       (1) grub    >  (2)  root(hd0,0)    >   (3) setup(hd0)

6.grub这个命令依赖于/boot/grub目录下的一些配置文件,如果这些文件被删除或者移动,那么使用grub命令无法正常修复

7.如果没有使用grub修复过系统,那么/boot/grub/目录下的文件只有两个文件影响系统启动(grub.conf 和 splash.xpm.gz)

如果使用过grub修复过系统,那么 /boot/grub 目录下的其它配置文件同样会影响到系统启动.

系统启动脚本流程(系统启动第一个进程后/sbin/init)

/etc/rc.d/rc.sysinit:    系统初始化脚本(系统启动后运行的第一个脚本)

1.设置主机名

2.设置欢迎信息

3.激活udev和selinux

4.挂在/etc/fstab文件中定义的文件系统

5.检测根文件系统,并以读写方式重新挂载根文件系统

6.激活swap设备

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

8.激活lvm以及software raid设备

9.加载额外设备的驱动程序

运行设定级别脚本

根据设定的启动级别,执行 /etc/rc.d/rc0.d  rc1.d  rc2.d  rc3.d  rc4.d  rc5.d  rc6.d  中的其中一个目录下的脚本

按照文件名中包含的数字从小到大依次执行各个服务脚本

1.先执行k开头的叫不能文件 停止相关服务

2.再执行s开头的脚本文件    启动相关服务

系统启动最后执行的启动脚本是   /etc/rc.local  这个脚本是等所有的服务脚本执行完后才会执行的

可以把一些简单的命令写到这个文件作为开机启动命令

读取/etc/inittab(读取系统启动级别)  》  /etc/rc.d/rc.sysinit    》  /etc/rc.d/rc[0-6].d目录下的所有脚本   》/etc/rc.local 脚本

 [root@yxh6 rc.d]# ls
init.d rc rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rc.local rc.sysinit
[root@yxh6 rc.d]# cd rc3.d
[root@yxh6 rc3.d]# ls
K01smartd K69rpcsvcgssd K95firstboot S15mdmonitor S28autofs
K02oddjobd K73winbind K99rngd S22messagebus S50bluetooth
K05wdaemon K74ntpd S01sysstat S23NetworkManager S55sshd
K10psacct K75ntpdate S02lvm2-monitor S24nfslock S80postfix
K10saslauthd K75quota_nld S05rdma S24openct S82abrtd
K15htcacheclean K76ypbind S08ip6tables S24rpcgssd S83abrt-ccpp
K15httpd K84wpa_supplicant S10network S25blk-availability S90crond
K30spice-vdagentd K87restorecond S11auditd S25cups S95atd
K36mysqld K88sssd S11portreserve S25netfs S99certmonger
K50dnsmasq K89netconsole S12rsyslog S26acpid S99local
K50kdump K89rdisc S13cpuspeed S26haldaemon
K60nfs K92iptables S13irqbalance S26udev-post
K61nfs-rdma K92pppoe-server S13rpcbind S27pcscd
设置系统服务开机启动或停止

1.    chkconfig   --list   atd                                  查看atd服务开机设置状态

2.    chkconfig    --level  235  atd off                 设置atd服务在2,3,5启动级别中为不启动状态

3.    chkconfig    --level  235  atd  on                设置atd服务在2,3,5启动级别中为启动状态

4.    不指定模式的时候,默认指定的是2,3,4,5模式

自定义服务启动脚本

1.必须首先在/etc/init.d目录下创建一个服务脚本,格式如下:

 #!/bin/bash
#chkconfig:
#description: test my service
source /etc/init.d/functions
case $ in
start)
action "testservice is start"
touch /var/lock/subsys/testservice
;;
stop)
rm -fr /var/lock/subsys/testservice
action "testservice is stop"
;;
status)
[ -f /var/lock/subsys/testservice ] && echo testservice is starting || echo testservice is stoped
;;
*)
echo "usage start stop status"
;;
esac

2.给服务脚本添加执行权限        chmod +x testservice.sh

3.把服务脚本变成后台服务        chkconfig  --add  testservice

4.系统启动时候这些显示都是执行都是 /etc/init.d目录下的后台脚本

5.如果某个后台服务在启动时出现异常,把系统重启进入1模式, 然后执行 chkconfig   service  off.  最后正常重启后  修改服务脚本

xinetd管理的服务(非独立服务)

使用频率不高,如果设置为开机启动会浪费资源。如果设置为开机不启动,当有用户访问的时候再去启动就已经来不及了.

xinetd管理的服务在开机的时候不用启动,由xinetd服务负责监听用户的请求.只有当用户访问这些服务的时候再由xinetd服务

激活相应的进程,处理完用户的请求后被xinetd激活的服务又会自动关闭.

centos7的Systemd服务

centos7上由systemd代替了xinetd服务,启动系统的时候只启动systemd服务

其它的服务都无需启动,只有被访问的时候才会由systemd激活

这就是centos7系统启动比较快速的原因   按需启动服务的方式

grub启动流程和配置的更多相关文章

  1. Tomcat5启动流程与配置详解

    标签:配置 tomcat 休闲 职场 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhangjunhd.blog.51cto. ...

  2. 第二十章、启动流程、模块管理与 Loader grub

    Boot Loader: Grub 『 boot loader 是加载核心的重要工具』!没有 boot loader 的话,那么 kernel 根本就没有办法被系统加载! boot loader 的两 ...

  3. Linux的启动流程以及GRUB详解

     一.Linux引导和启动流程       概述,计算机电源接通后通过BISO之后,没有问题,就会去硬盘上找到MBR(Main Boot Record 主引导记录区)位于整个硬盘的0磁道0柱面1扇区, ...

  4. Centos启动流程及grub legacy

    Linux系统的组成部分:内核+根文件系统 内核的功能:进程管理.内存管理.网络管理.文件系统.驱动程序.安全功能 系统在运行时要么就是在运行内核代码,要么就是在运行应用程序代码.如果一个程序大多数时 ...

  5. Centos7启动流程及systemd中Nginx启动配置

    Centos7启动流程: 1.post(Power-On-Self-Test) 加电自检 主要实现的功能是检测各个外围硬件设备是否存在而且能够正常运行起来,实现这一自检功能的是固化在主板上的ROM(主 ...

  6. MyCat源码分析系列之——配置信息和启动流程

    更多MyCat源码分析,请戳MyCat源码分析系列 MyCat配置信息 除了一些默认的配置参数,大多数的MyCat配置信息是通过读取若干.xml/.properties文件获取的,主要包括: 1)se ...

  7. 小程序的目录结构/配置介绍/视图层wxml数据绑定/双线程模型/小程序的启动流程

    安装好微信小程序开发软件,创建项目 小程序文件结构和传统web对比 结构 传统web 微信小程序 结构 HTML WXML 样式 CSS WXSS 逻辑 Javascript Javascript 配 ...

  8. Linux 的启动流程(转)

    原文链接:http://blog.jobbole.com/46078/ 半年前,我写了<计算机是如何启动的?>,探讨BIOS和主引导记录的作用. 那篇文章不涉及操作系统,只与主板的板载程序 ...

  9. CentOS6 启动流程图文解剖

    我们在使用Linux操作系统的时候,我们只需按下电源键,等待,然后输入账户和密码就可以使用Linux操作系统了.那么在按下电源到输入账号和密码之前,操作系统都做了些什么?下面就来讲述在这段时间发生的动 ...

随机推荐

  1. ThinkingInJava 学习 之 0000006 复用类

    1. 组合语法 将对象引用置于新类中. 2. 继承语法 衍生类自动获得基类中所有的域和方法 super关键字表示基类. 1. 初始化基类 当创建一个衍生类的对象时,该对象创建一个基类的子对象并包含子对 ...

  2. SpringBoot Logback配置,SpringBoot日志配置

    SpringBoot Logback配置,SpringBoot日志配置  SpringBoot springProfile属性配置 ================================ © ...

  3. python分支语句

    一.if else语句 if 条件表达式: else: a = 3 b = 4 if a >= b: print("a >= b") else: print(" ...

  4. TIScript 代码Demo

    var filelist = null; function alert(msg) { view.msgbox(null,msg); } self.on("click", " ...

  5. java封装实现Excel建表读写操作

    对 Excel 进行读写操作是生产环境下常见的业务,网上搜索的实现方式都是基于POI和JXL第三方框架,但都不是很全面.小编由于这两天刚好需要用到,于是就参考手写了一个封装操作工具,基本涵盖了Exce ...

  6. PHP 设置分页 可以直接引用 最下面有自己引用的方法和注释

    1 <?php 2 /** 3 file: page.class.php 4 完美分页类 Page 5 */ 6 class Page { 7 private $total; //数据表中总记录 ...

  7. MySQL介绍,下载,安装,配置

    MySQL用了很多年了,今天写个总结. 一.介绍 MySQL是开源软件,后来归Oracle所有.开源便于软件的完善改进.但开源不等于滥用,也不等于完全免费.MySQL有商业版,商业用途是付费的.也有免 ...

  8. poj3376 Finding Palindromes【exKMP】【Trie】

    Finding Palindromes Time Limit: 10000MS   Memory Limit: 262144K Total Submissions:4710   Accepted: 8 ...

  9. hdu2609 How many【最小表示法】【Hash】

    How many Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  10. 新一代.NET平台三大框架的定位

    这是今天坐公交时继续阅读 Virtual Panel: What's Next for .NET? 这篇采访报道的收获. 新一代.NET平台的三大框架是:.NET Core, .NET Framewo ...