CentOS系统启动流程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS系统启动流程相关的知识,希望对你有一定的参考价值。

CentOS 6启动流程:

POST --> Boot Sequence(Bios) --> BootLoader (MBR) --> Kernel(ramdisk) --> rootfs --> switchroot -->/sbin/init -->(/etc/inittab, /etc/init/*.conf) --> 设定默认运行级别 --> 系统初始化脚本 --> 关闭或启动对应级别下的服务 --> 启动终端GRUB(Boot Loader): 

 

  1. grub: GRand UnifiedBootloader

  2. grub 0.x: grub legacy

  3. grub 1.x: grub2 grub legacy:

  4. stage1: mbr

  5. stage1_5: mbr之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统;

  6. stage2:磁盘分区(/boot/grub/)配置文件:/boot/grub/grub.conf <-- /etc/grub.confstage2及内核等通常放置于一个基本磁盘分区;



功用:

(1) 提供菜单、并提供交互式接口

e: 编辑模式,用于编辑菜单;

c: 命令模式,交互式接口;

(2) 加载用户选择的内核或操作系统

允许传递参数给内核

可隐藏此菜单

(3) 为菜单提供了保护机制

为编辑菜单进行认证

为启用内核或操作系统进行认证如何识别设备:


Linux Kernel:

    

CentOS启动流程:POST --> Bootloader(BIOS, MBR)--> Kernel(initrd) --> rootfs --> switch_root --> /sbin/init

               

内核设计体系:单内核、微内核

Linux:单内核设计,但充分借鉴了微内核体系的设计的优点;为内核引入了模块化机制;

内核的组成部分:

kernel:内核核心,一般为bzImage,通常位于/boot目录,名称为vmlinuz-VERSION-release;

kernel object:内核对象,即内核模块,一般放置于/lib/modules/VERSION-release/

  

内核的组成部分:kernel, kernel object, ramdisk

kernel: uname

kernel object: lsmod, modinfo, modprobe,insmod, rmmod, depmod

ramdisk:mkinitrd,dracut   启动流程:POST --> BootSequence(BIOS) --> Bootloader (MBR) --> kernel (ramdisk)--> rootfs (switch_root) --> /sbin/init (/etc/inittab, /etc/init/*.conf,/usr/lib/systemd/system/)--> 默认运行级别、系统初始化、关闭及启动服务、启动终端(图形终端)

   

grub:

1st stage:mbr

1_5 stage: mbr之后的扇区

2nd stage:/boot/grub/加密:编辑、内核



(hd#,#)

hd#: 磁盘编号,用数字表示;从0开始编号

#: 分区编号,用数字表示; 从0开始编号(hd0,0)grub的命令行接口

  1. help: 获取帮助列表

  2. help KEYWORD: 详细帮助信息

  3. find (hd#,#)/PATH/TO/SOMEFILE:

  4. root (hd#,#)

kernel /PATH/TO/KERNEL_FILE: 设定本次启动时用到的内核文件;额外还可以添加许多内核支持使用的cmdline参数;

例如:init=/path/to/init, selinux=0

  1. initrd /PATH/TO/INITRAMFS_FILE: 设定为选定的内核提供额外文件的ramdisk;

  2. boot: 引导启动选定的内核;手动在grub命令行接口启动系统:

  3. grub> root (hd#,#)

  4. grub> kernel /vmlinuz-VERSION-RELEASE roroot=/dev/DEVICE

  5. grub> initrd/initramfs-VERSION-RELEASE.img

  6. grub> boot配置文件:/boot/grub/grub.conf


配置项:

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

  2. timeout=#:指定菜单项等待选项选择的时长;

  3. splashimage=(hd#,#)/PATH/TO/XPM_PIC_FILE:指明菜单背景图片文件路径;

  4. hiddenmenu:隐藏菜单;

  5. password [--md5] STRING: 菜单编辑认证;

  6. title TITLE:定义菜单项“标题”, 可出现多次;

  7. root (hd#,#):grub查找stage2及kernel文件所在设备分区;为grub的“根”;

  8. kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:启动的内核

  9. initrd /PATH/TO/INITRAMFS_FILE: 内核匹配的ramfs文件;

  10. password [--md5] STRING: 启动选定的内核或操作系统时进行认证;grub-md5-crypt命令进入单用户模式:

(1) 编辑grub菜单(选定要编辑的title,而后使用e命令);

(2) 在选定的kernel后附加

1, s, S或single都可以;

(3) 在kernel所在行,键入“b”命令;安装grub:

(1) grub-install

grub-install --root-directory=ROOT/dev/DISK(2) grub

grub> root (hd#,#)

grub> setup (hd#)练习:

1、新加硬盘,提供直接单独运行bash系统;

2、破坏本机grub stage1,而后在救援模式下修复之;

3、为grub设置保护功能;博客作业:grub应用;

   


内核模块与内核核心版本一定要严格匹配;[   ]:N

[M]:Module

[*]:Y,编译进内核核心内核:动态装载和卸载;ramdisk:辅助性文件,并非必须,这取决于内核是否能直接驱动rootfs所在的设备;

目标设备驱动,例如SCSI设备的驱动;

逻辑设备驱动,例如LVM设备的驱动;

文件系统,例如xfs文件系统;ramdisk:是一个简装版的根文件系统;内核信息获取:


本文出自 “完美世界” 博客,请务必保留此出处http://angelababy.blog.51cto.com/6326130/1755127

以上是关于CentOS系统启动流程的主要内容,如果未能解决你的问题,请参考以下文章

Centos系统启动流程

13.1 CentOS系统启动流程介绍

CentOS系统启动流程

CentOS 6系统启动流程

CentOS系统启动流程

CentOS系统启动流程