Centos系统启动流程
本节内容
- 内核设计模型简介
- Centos系统启动流程
- grub和ramdis配置与安装
- checkconfig脚本
- init程序
- systemd
一 内核设计模型简介
在内核设计体系中分为两种
(1)单内核设计:把所有功能集成于同一程序
(2)微内核设计:每种功能使用一个单独的系统实现
那么linux系统中使用的是单内核设计,但是linux内核的特点就是支持内核模块化以及动态装载和卸载内核
Linux 内核组成部分
核心文件:/boot/vmlinuz-VERSION-relsefs
模块文件:/lib/modules/vmlinuz-VERSION-relsefs
二 Cetnos系统启动流程
1 POST加点自检:计算机在电源启动后会通过COMS程序对硬件进行检查
2 BootSequence:根据BIOS的设置,按需加载启动时用到的设备
3 BootLoder:提供一个菜单供用户选择并加载用户所选定的内核至内存展开,随后将系统引导权交至内核。
MBR:存放在硬盘最前面的一个扇区,总共512字节,前446字节存放MBR, 后64字节存放分区表,最后2个字节表示BootLoader是否有效
Linux中使用的BootLoader:Centos6 以下版本使用的是Grub 0.X Centos7所使用的为Grub1.X
4 内核初始化:
(1) 探测可识别的所有硬件
(2) 加载硬件驱动(有可能需要rmdisk进行加载)
(3) 只读挂载根文件系统
(4) 如果硬件驱动是由rmdisk加载还需切换根文件系统
(5)启动用户空间的第一个进程/sbin/init
5 设置运行默认级别
在centos系统中5, 6,7 的init程序各部相同,这里暂以centos5为例。在Cetnos5中使用的init程序为SysV,主配置文件在/etc/inittab并定义了7中运行级别
运行级别:为了系统的运行或维护的目的而设定的机制
0:表示关机
1:单用户模式,root用户,无需认证
2:多用户模式,会启动网络功能,但不会启动NFS,维护模式
3:多用户模式,完全功能模式
4:预留级别,目前无特别使用目的,同3级别对待
5:带有图形界面的多用户模式
6:重启模式
三 grub的配置与安装
grub全称GRand Unified BootLoader,是linux系统中的一种BootLoader引导加载程序,可以用于选择系统中不同的内核或者向内核传递参数。grub程序分为三个阶段,第一阶段存储在MBR中,中间隐藏1.5阶段在mbr之后的扇区,目的是让stage1中的BootLoader能够识别stage2所在分区上的文件系统。第二阶段则保存在/boot/grub下
1 如何进入grub编辑模式以及编辑模式的命令
进入到grub界面后按‘c’键可进入编辑模式
(1)命令模式下的常用命令:
help:获取帮助列表
help KEYWORD:详细帮助信息
find (hd#,#)/PATH/TO/SOMEFILE:定位某文件是否存在
root (hd#,#)将某一个设备设置为根
kernel /PATH/TO/KERNEL_FILE: 内核文件路径,本次启动时用到的内核文件:额外还可以添加许多内核支持的cmdline参数。 例如:init=/path/to/init, selinux=0
initrd /PATH/TO/INITRAMFS_FILE:设定为选定的内核提供额外文件的ramdisk
boot:引导启动选定的内核
(2)在命令模式下启动
grub> root (hd#,#) grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE grub> initrd /initramfs-VERSION-RELEASE.img grub> boot
2 grub的配置文件
grub的配置文件保存在/boot/grub/grub.conf下
配置项:
default=#:设定默认启动的菜单项,落单项(title)编号从0开始
timeout=#:指定菜单项等待选项选择的时长
splashimage=(hd#,#)/PATH/TO/XPM_PIC_FILE:指定菜单背景图片路径
hiddenmenu:隐藏菜单
password [--md5] STRING:菜单编辑认证
title TITLE:定义菜单项“标题” , 可出现多次
root (hd#,#):grub 查找stage2及kernel文件所在的设备分区,为grub根
kernel /PATH/TO/VMLINUZ_FILE [PARAMENTS]: 启动的内核
initrd /PATH/TO/INITRAMFS_FILE:内核匹配的ramfs文件
passwd [--md5] STRING:启动选定的内核或操作系统时认证
3 grub损坏后的安装方法
第一种方法直接使用grub-install命令 grub-install --root-directory=/ /dev/sda 注意root为boot目录所在根
第二种方法先使用 dd if=/dev/zero of=/dev/sda count=1 bs=226 破坏掉了MBR系统无法进入引导