CentOS 6启动流程:
POST --> |
加电自检 |
Boot Sequence(BIOS) --> |
根据bootsequence定义的启动次序(BIOS定义), |
Boot Loader (MBR) --> |
逐一搜索带有启动功能的设备,找到这个设备然后找到bootloader(MBR中) |
Kernel(ramdisk) --> |
显示一个菜单,让用户选择内核或者系统版本,加载用户选择的内核kernel(借助于ramdisk完成加载根文件系统的操作) |
rootfs --> |
kennel能识别真正根文件系统rootfs, |
switchroot --> |
并且做根切换switchroot |
/sbin/init --> |
运行真正/sbin/init |
(/etc/inittab, /etc/init/*.conf) --> |
根据配置文件(Centos6为例(/etc/inittab, /etc/init/*.conf)给出的设定 |
设定默认运行级别 --> |
|
系统初始化脚本 --> |
|
关闭或启动对应级别下的服务 --> |
启动终端 |
GRUB(Boot Loader):
加载用户所选择的的内核,某个磁盘某个分区某个文件(关键)
grub: GRand Unified Bootloader
grub 0.x: grub legacy
grub 1.x: grub2
grub legacy:
stage1: mbr 安装在MBR中
stage1_5: mbr之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统;
stage2:磁盘分区(/boot/grub/) (不但有stage还有ramdisk,即加载内核文件的原因)
配置文件:/boot/grub/grub.conf <-- /etc/grub.conf(链接文件)
stage2及内核等通常放置于一个基本磁盘分区;
功用:
(1) 提供菜单、并提供交互式接口
e: 编辑模式,用于编辑菜单;
c: 命令模式,交互式接口;
(2) 加载用户选择的内核或操作系统
允许传递参数给内核
可隐藏此菜单
(3) 为菜单提供了保护机制
为编辑菜单进行认证
为启用内核或操作系统进行认证
一、grub如何识别设备
(hd#,#)
hd#: 磁盘编号,用数字表示;从0开始编号
#: 分区编号,用数字表示; 从0开始编号
(hd0,0) 第一个磁盘的第一个分区
二、grub的命令行接口
进入grub命令行,在当前界面按C键
1、help: 获取帮助列表
2、help KEYWORD: 详细帮助信息