本文转自 http://redking.blog.51cto.com/27212/1230447
Linux引导流程
? Linux运行级别
? Linux启动服务管理
? GRUB配置与应用
? 启动故障分析与解决
? Linux引导流程
常用固件设置
安全设置
可引导介质列表
可引导介质搜索顺序
电源管理
启动细节显示
固件设置实例
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。
Grub载入内核,指定内核路径。
vmlinuz-2.6.32-358.el6.x86_64此为压缩的可执行内核文件
内核
https://www.kernel.org/
init的工作
init启动后读取inittab文件,执行缺省运行级别,从而继续引导过程。在UNIX系统中,init时第一个可以存在的进程,它的PID恒为1,但它也必须向一个
更高级的功能负责:PID为0的内核调度器(Kernelscheduler),从而获得CPU时间。
? Linux运行级别
inittab 文件剖析
运行级的切换:
1. 查看当前的运行级
2. 运行级的切换
# init [0123456Ss] 或# telinit [0123456Ss]
在inittab中,所有条目采取以下格式:
id:run-levels:action:process
id:标识符,一般为两位字母或数字
run-levels:指定运行级别,可以指定多个
action:指定运行状态
process:指定要运行的脚本/命令
action常用取值:
initdefault:指定系统缺省启动的运行级别
sysinit:系统启动执行process中指定的命令
wait:执行process中指定的命令,并等其结束再运行其他命令
once:执行process中指定的命令,不等待其结束
ctrlaltdel:按下Ctrl+Alt+Del时执行process指定的命令
powerfail:当出现电源错误时执行process指定的命令,不等待其结束
powerokwait:当电源恢复时执行process指定的命令
respawn:一旦process指定的命令中止,便重新运行该命令
指定系统默认运行级别为3,如果想系统启动后自动运行X Window,则将上面的3改为5
启动脚本/etc/rc.d/rc.sysinit,完成系统服务程序启动,如系统环境变量设置、设置系统时钟、加载字体、检查加载文件系统、生成系统启动信息日志文件等。
判断默认运行级别,调用/etc/rc.d/rc脚本,执行相应运行级别目录中的服务程序,完成相应运行级别的初始化设置
/etc/rc.d/init.d
该目录下包含各个运行级别的服务程序脚本
/etc/rc.d/rc[0123456].d
分别存放对应于运行级别的服务程序脚本的符号链接,链接到init.d目录中的相应脚本
? Linux启动服务管理
设置自启动程序
? ln -s
? chkconfig
? ntsysv
相关命令及日志
? 运行dmesg检查引导期间的错误
dmesg显示内核驱动硬件的信息。
? 检查系统日志/var/log/messages,查找可能被dmesg忽略的应用程序错误
? GRUB配置与应用
GRUB的配置文件默认为/boot/grub/grub.conf
# ls -l /etc/grub.conf
default定义缺省启动系统
timeout定义缺省等待时间
splashimage定义GURB界面图片
hiddenmenu隐藏菜单
title定义菜单项名称
root设置GRUB的根设备即内核所在的分区
kernel定义内核文件所在位置
initrd命令加载镜像文件
功能键:
e: 编辑当前的启动菜单项
c: 进入GRUB的命令行方式
b: 启动当前的菜单项
d: 删除当前行
Esc: 返回GRUB启动菜单界面,取消对当前单项所做的的任何修改
? 启动故障分析与解决
单用户模式应用
案例:root密码忘记
进入单用户模式重新设置root密码,方法如下:
开机进入GRUB界面,按e进入编辑行模式,选中kernel行,再次按e键,在新的界面的最后一行输入1或s,即可进入单用户模式。
下面已经进入单用户模式了。
passwd可以进行重置密码
设置GRUB密码
1. 使用GRUB自带的grub-md5-crypt命令
[root@localhost ~]# grub-md5-crypt
Password:
Retype password:
$1$RngcE1$6Fv73guzmE7NvU.1gwGgb/
2. 在GRUB交互命令行界面中使用md5crypt命令
grub> md5crypt
md5crypt
Password: 99999999
99999999
Encrypted: $1$79hcE1$3YccUVPe4pDgnNWFKvXOV0
同样的明文口令每次加密获得的MD5密文口令也是不同的。
编辑GRUB配置文件,加入如下行:
password --md5 $1$79hcE1$3YccUVPe4pDgnNWFKvXOV0
--md5参数表示口令是MD5加密的。
GRUB加密分为两种:1、全局加密2、局部加密
全局加密:
功能:锁定启动界面,禁止了
e to edit the commands before booting
a to modify the kernel arguments before booting
c for a command-line
这个全局加密最主要的功能就是edit the commands,此时就需要输入全局密码才能继续。
局部加密:相对与某个特定的操作系统来进行控制。功能:用户必须输入密码才能进入系统。
输入局部密码后才能继续启动选定的操作系统
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,然后回车,进入修复模式。
END