CentOS6.4之Linux引导流程解析

本文转自 http://redking.blog.51cto.com/27212/1230447


Linux引导流程

? Linux运行级别

? Linux启动服务管理

? GRUB配置与应用

? 启动故障分析与解决


? Linux引导流程


clipboard

常用固件设置

安全设置

可引导介质列表

可引导介质搜索顺序

电源管理

启动细节显示

固件设置实例

clipboard

clipboard

MBR介绍

MBR,全称为Master Boot Record,即硬盘的主引导记录。

为了便于理解,一般将MBR分为广义和狭义两种:广义的MBR包含整个扇区(引导程序、分区表及分隔标识),也就是上面所说的主引导记录;而狭义的MBR仅指引导程序而言。

硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR)。它由三个部分组成,主引导程序、硬盘分区表DPT(Disk Partition table)和硬盘有效标志(55AA)。在总共512字节的主引导扇区里主引导程序(boot loader)占446个字节,第二部分是Partition table区(分区表),即DPT,占64个字节,硬盘中分区有多少以及每一分区的大小都记在其中。第三部分是magic number,占2个字节,固定为55AA。

clipboard

Grub载入内核,指定内核路径。

clipboard

vmlinuz-2.6.32-358.el6.x86_64此为压缩的可执行内核文件

clipboard

内核

https://www.kernel.org/

clipboard

clipboard

init的工作

init启动后读取inittab文件,执行缺省运行级别,从而继续引导过程。在UNIX系统中,init时第一个可以存在的进程,它的PID恒为1,但它也必须向一个

更高级的功能负责:PID为0的内核调度器(Kernelscheduler),从而获得CPU时间。

clipboard

? Linux运行级别

inittab 文件剖析

运行级的切换:

1. 查看当前的运行级

clipboard

2. 运行级的切换

# init [0123456Ss] 或# telinit [0123456Ss]

clipboard

在inittab中,所有条目采取以下格式:

id:run-levels:action:process

id:标识符,一般为两位字母或数字

run-levels:指定运行级别,可以指定多个

action:指定运行状态

process:指定要运行的脚本/命令

clipboard

action常用取值:

initdefault:指定系统缺省启动的运行级别

sysinit:系统启动执行process中指定的命令

wait:执行process中指定的命令,并等其结束再运行其他命令

once:执行process中指定的命令,不等待其结束

ctrlaltdel:按下Ctrl+Alt+Del时执行process指定的命令

powerfail:当出现电源错误时执行process指定的命令,不等待其结束

powerokwait:当电源恢复时执行process指定的命令

respawn:一旦process指定的命令中止,便重新运行该命令

clipboard

指定系统默认运行级别为3,如果想系统启动后自动运行X Window,则将上面的3改为5

clipboard

clipboard

启动脚本/etc/rc.d/rc.sysinit,完成系统服务程序启动,如系统环境变量设置、设置系统时钟、加载字体、检查加载文件系统、生成系统启动信息日志文件等。

clipboard

clipboard

判断默认运行级别,调用/etc/rc.d/rc脚本,执行相应运行级别目录中的服务程序,完成相应运行级别的初始化设置

clipboard

/etc/rc.d/init.d

该目录下包含各个运行级别的服务程序脚本

clipboard

/etc/rc.d/rc[0123456].d

分别存放对应于运行级别的服务程序脚本的符号链接,链接到init.d目录中的相应脚本

clipboard

? Linux启动服务管理

设置自启动程序

? ln -s

? chkconfig

? ntsysv

clipboard

clipboard

相关命令及日志

? 运行dmesg检查引导期间的错误

dmesg显示内核驱动硬件的信息。

clipboard

? 检查系统日志/var/log/messages,查找可能被dmesg忽略的应用程序错误

030233563.png

? GRUB配置与应用

GRUB的配置文件默认为/boot/grub/grub.conf

# ls -l /etc/grub.conf

clipboard

default定义缺省启动系统

timeout定义缺省等待时间

splashimage定义GURB界面图片

hiddenmenu隐藏菜单

title定义菜单项名称

root设置GRUB的根设备即内核所在的分区

kernel定义内核文件所在位置

initrd命令加载镜像文件

clipboard

功能键:

e: 编辑当前的启动菜单项

c: 进入GRUB的命令行方式

b: 启动当前的菜单项

d: 删除当前行

Esc: 返回GRUB启动菜单界面,取消对当前单项所做的的任何修改

? 启动故障分析与解决

单用户模式应用

案例:root密码忘记

进入单用户模式重新设置root密码,方法如下:

开机进入GRUB界面,按e进入编辑行模式,选中kernel行,再次按e键,在新的界面的最后一行输入1或s,即可进入单用户模式。

clipboard

clipboard

clipboard

下面已经进入单用户模式了。

clipboard

passwd可以进行重置密码

clipboard

设置GRUB密码

1. 使用GRUB自带的grub-md5-crypt命令

[root@localhost ~]# grub-md5-crypt

Password:

Retype password:

$1$RngcE1$6Fv73guzmE7NvU.1gwGgb/

clipboard

2. 在GRUB交互命令行界面中使用md5crypt命令

grub> md5crypt    

md5crypt

Password: 99999999

99999999

Encrypted: $1$79hcE1$3YccUVPe4pDgnNWFKvXOV0

clipboard

同样的明文口令每次加密获得的MD5密文口令也是不同的。

编辑GRUB配置文件,加入如下行:

password --md5  $1$79hcE1$3YccUVPe4pDgnNWFKvXOV0

--md5参数表示口令是MD5加密的。

GRUB加密分为两种:1、全局加密2、局部加密

clipboard

全局加密:

功能:锁定启动界面,禁止了

e    to edit the commands before booting

a    to modify the kernel arguments before booting

c    for a command-line

clipboard

这个全局加密最主要的功能就是edit the commands,此时就需要输入全局密码才能继续。

clipboard

clipboard

局部加密:相对与某个特定的操作系统来进行控制。功能:用户必须输入密码才能进入系统。

clipboard

输入局部密码后才能继续启动选定的操作系统

030403669.png

clipboard

GRUB修复

当开机后进入grub界面但没有菜单,只剩下一个

grub>提示符,解决方法:

grub>cat /grub/grub.conf (为查看参数)

grub>root (hd0,6)

grub>kernel (hd0,6)/vmlinuz-2.6.18-14 ro root=LABEL=/

grub>initrd (hd0,6)/initrd-2.6.18-14.img

grub>boot

相关内容可以参考制作CentOS 6.4 U盘启动安装盘

Linux修复模式

解决过程

1.把安装盘放到光驱,然后重新启动机器,在BOIS中把系统设置为光驱引导。

2.等安装界面出来后,选择Rescue installed system,然后回车,进入修复模式。

clipboard

clipboard

END


你可能感兴趣的:(CentOS6.4之Linux引导流程解析)