linux引导流程
固件firmvare(CMOS/BIOS) --> POST加电自检
|
自举程序BootLoader(GRUB) --> 载入内核 vi /etc/grub.conf
|
载入内核Kernel --> 驱动硬件
|
启动进程init
|
读取执行配置文件/etc/inittab
?
init启动后读取inittab文件,执行缺省运行级别,从而继续引导过程,在unix系
统中,init时第一个可以存在的进程,它的PID恒为1,但它也必须向一个更高级
的功能负责,PID为0的内核调度器(Kernel scheduler),从而获得CPU时间
?
ps -ls | more
vi /etc/inittab
runlevel 查看当前的运行级别
N?
S 切换过的运行级别
?
grep -v "^#" /etc/inittab | more 查看有效行
?
id:run-levels:action:process
id:标识符,一般为两位字母或数字
run-levels:指定运行级别,可以指定多个
action:指定运行状态
process:指定要运行的脚本、命令
?
si::sysinit:/etc/rc.d/rc.sysinit
启动脚本/etc/rc.d/rc.sysinit,完成系统服务程序启动,如系统环境变量设置
,设置系统时钟,加载字体,检查加载文件系统,生成系统启动信息日志文件等
?
10:0:wait:/etc/rc.d/rc 0
...
判断默认运行级别,调用/etc/rc.d/rc脚本,执行相应运行级别目录中的服务程
序,完成相应运行级别的初始化设置
?
ls /etc/rc.d/rc3.d
S12syslog
S-Start
K-Kill
12:数字:启动的顺序
syslog:脚本名称
?
firmware--BootLoader--kernel--init--/etc/inittab--initdefault--/etc/rc.d/rc.sysint--/etc/rc.d/rc--/etc/rc.d/rcN.d N=0-6--username&passwd
?
action常用取值:
initdefault:指定系统缺省启动的运行级别
sysinit:系统启动执行process中指定的命令
wait:执行process中指定的命令,并等其结束 再运行其他命令
once:执行process中指定的命令,不等待其结束
ctrlaltdel:按下ctrl+alt+del时执行process指定的命令
powerfail:当出现电源错误时执行process指定的命令,不等待其结束
powerokwait:当电源恢复时执行process指定的命令
respawn:一旦process指定的命令中止,便重新运行该命令
?
设置自启动程序
ln -s
chkconfig --list ?/ chkconfig --levels 2345 sshd off
ntsysv 更改运行级别
?
检查引导期间的错误
dmesg ?dmesg | grep eth0
?
?
?
init 1
常用固件设置
安全设置
可引导介质列表
可引导介质搜索顺序
电源管理
启动细节显示
?
# date软件时钟
# hwclock固件时钟
# hwclock --hctosys
# date 121411302013.38 修改时间
# hwclock --set --date="9/22/06 16:00:00"
?
GRUB配置与应用
/boot/grub/grub.conf
?
default定义缺省启动系统
timeout定义缺省等待时间
splashimage定义GURB界面图片
hiddenmenu隐藏菜单
title定义菜单项名称
root设置GRUB的根设备即内核
kernel定义内核所在的位置
initrd命令加载镜像文件
?
启动故障分析与解决
# grub-md5-crypt
# md5crypt
?
?
?
?