1、首先我们先来了解一下系统在从按下电源开关到我们看到画面这个过程究竟干了些什么事情:
(1)按下电源开机-->bios(配置主板的程序,basic input and output system,加电自检,找到启动设备的编号)-->找到mbr(master bootloader record,它是属于硬盘的0磁盘0扇区)-->grub-->通过grub找到vmlinuz和initrd(驱动硬件)--> 内核启动,产生init进程-->/etc/inittab(确定系统的启动级别)-->/etc/rc.sysinit(获取主机的网络环境和主机类型,测试与载入设备,是否启动selinux,模块的加载,设置系统时间.................)--读取/etc/fstab-->按照启动的级别按顺序启动对应的服务-->/etc/rc.local----> 登录界面
(2)开机---> bios 硬件自检--->把MRB 加载内存,bois 完成了任务,把控制全转交给Bootloader(Grub) ----> 读取grub.conf配置文件,加载相应的内核,初始化镜像文件到内存,初始化镜像文件会加载一系列硬件驱动,把必要的硬件先驱动起来,最终内核理解这些硬件-->产生第一个进程init--->init 读取配置文件/etc/inittab,获取系统将要运行在哪个级别--->init 运行rc.sysinit脚本,对系统进行初始化(配置主机名,生成/dev/下所有设备文件,读取/etc/fstab进行分区挂载等)---> init 根据运行解别,运行级别对应的目录下的所有服务启动脚本-->运行rc.local---> init 根据配置文件 产生多个终端/sbin/mingetty ---> 各个终端分别运行login----> gdm ---> 图形界面的登录程序
以上两种是系统启动过程所干的事情,写法都是差不多,个人看第一种比较好理解,当然每个人的想法和看法都不一样,所以我就把两种情况都写了出来。
2、MBR
MBR=512byte=446byte启动设备的信息+64byte分区表信息+2byte结束位
3、GRUB系统引导程序
grub的全称是:Grand Unified Boot Loader ,通过翻译过来的中文意思:引导加载程序大统一。从这个字面就可以知道要想加载系统、引导系统都得靠它。
(1)我们把它托出来看看是什么高级东东:
[root@rootbug ~]# rpm -qa |grep grub
grubby-7.0.15-3.el6.x86_64
grub-0.97-77.el6.x86_64
(2)查看此软件的详细信息
[root@rootbug ~]# rpm -qi grub-0.97-77.el6.x86_64
Name : grub Relocations: (not relocatable)
Version : 0.97 Vendor: Red Hat, Inc.
Release : 77.el6 Build Date: Thu 01 Mar 2012 12:14:36 AM CST
Install Date: Tue 27 Aug 2013 06:37:52 PM CST Build Host: x86-004.build.bos.RedHat.com
Group : System Environment/Base Source RPM: grub-0.97-77.el6.src.rpm
Size : 2396735 License: GPLv2+
Signature : RSA/8, Fri 18 May 2012 08:07:02 PM CST, Key ID 199e2f91fd431d51
Packager : Red Hat, Inc. <>
URL :
Summary : Grand Unified Boot Loader.
Description :
GRUB (Grand Unified Boot Loader) is an experimental boot loader
capable of booting into most free operating systems - Linux, FreeBSD,
NetBSD, GNU Mach, and others as well as most commercial operating
systems.
(3)查看一下它的配置文件放在哪里:
[root@www ~]# ll /etc/grub.conf --发现是一个软链接文件
lrwxrwxrwx. 1 root root 22 Aug 27 18:42 /etc/grub.conf -> ../boot/grub/grub.conf
(4)打开它看看究竟是什么样的内容:
[root@rootbug ~]# vim /boot/grub/grub.conf