系统引导流程
********************************************************************
固件 firmware(CMOS/BIOS)--->POST加电自检
↓
自举程序BootLoader(GRUB)--->载入内核
↓
载入内核Kernel ----->驱动硬件
↓
启动进程init PID=1(恒为一)
↓
读取执行配置文件/etc/inittab
同步软硬件时钟
date软件时钟 hwclock硬件时钟
更改软件时钟 # date 070519022015.10
更改硬件时钟 # hwclock --set --date="9/22/96 16:45:05"
软硬件时钟同步
--set set the rtc to the time given with --date
--hctosys set the system time from the hardware clock
--systohc set the hardware clock to the current system time
Linux运行级别
********************************************************************
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:
inittab文件剖析
********************************************************************
在inittab中,所有条目采取以下格式:
id:run-levers:action:process
id:标识符,一般为两位字母或数字
run-levers:指定运行级别,可以指定多个
action:指定运行状态
process:指定要运行的脚本/命令
action常用取值:
initdefault:指定系统缺省启动的运行级别
sysinit:系统启动执行process中指定的命令
wait:执行process中指定的命令,并等其结束再运行其他命令
once:执行process中指定的命令,不等待其结果
ctrlaltdel:按下Ctrl+Alt+Del时执行process指定的命令
powerfail:当出现电源错误时执行process指定的命令,不等待其结果
powerokwait:当当电源恢复时执行process指定的命令
respawn:一旦process指定的命令终止,便重新运行该命令
id:3:initdefault:
指定系统默认运行级别3,运行X Window,则改为5
si::sysinit:/etc/rc.d/rc.sysinit
启动脚本/etc/rc.d/rc.sysinit,完成系统服务程序启动
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
判断默认运行级别,调用/etc/rc.d/rc脚本,执行相应运行级别目录中的
服务程序,完成相应运行级别的初始化设置
/etc/rc.d/rc[0123456].d
分别存放对应于运行级别的服务程序脚本的符号链接,链接到init.d目录中的相应脚本
/etc/rc.d/rc3.d
文件--> S12syslog、K01dnsmasq
S-start 启动时执行
K-kill 注销时执行
数字 启动的顺序 越小越优先启动
脚本名称
例:取消某些无需启动的服务
mv S03vmware-tools s03vmware-tools(小写s系统不会自启)
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
6个不同的终端,按ctrl+alt+F1-F6,F7回到X-Window
/etc/rc.d/init.d
该目录下包含各个运行级别的服务程序脚本
手动启动/关闭服务
/etc/init.d=====>/etc/rc.d/init.d
# /etc/rc.d/init.d/sshd start
设置自启动程序
*********************************************************************
ln -s
ln -s /etc/rc.d/init.d/msg.script /etc/rc.d/rc3.d/S100msg.script
chkconfig
chkconfig --list sshd
chkconfig --level 3 sshd on
ntsysv
ntsysv --level 3
运行dmesg检查引导期间的错误
#dmesg | grep eth0
GRUB
********************************************************************
GRUB的配置文件默认为
/boot/gurb/grub.conf
软连接文件 /etc/grub.conf
default 定义缺省启动系统
timeout 定义缺省等待时间
splashimage 定义GRUB界面图片
(hd0,0)------- /boot 所在分区
hiddenmenu 隐藏菜单
title 定义菜单项名称
root 设置GRUB的根设备即内核所在的分区
kernel 定义内核文件所在位置
initrd 命令加载镜像文件
GRUB命令
功能键:
e:编辑当前的启动菜单项
c:进入GRUB的命令行方式
b:启动当前的菜单项
d:删除当前行
ESC:返回GRUB启动菜单界面,取消对当前单项所做的任何修改
单用户模式应用
案例:root密码忘记
进入单用户重设root密码,方法如下:开机进入GRUB界面,按e进入
编辑模式,选择kernel行,再次按e,在新的界面最后一行输入1或s,即可
进入单用户模式。
修改密码:sh-3.2# passwd root
设置Grub密码
1.使用GRUB自带的grub-md5-crypt命令
#grub-md5-crypt
Password:
2.在GRUB交互命令行界面中使用md5crypt命令
# grub
grub> md5crypt
Password:
$1$9vWzJ$wrG0fHdlSCXt7E1x4AWod.
在GRUB配置文件,加入下行:
password --md5 $1$9vWzJ$wrG0fHdlSCXt7E1x4AWod.
--md5参数表示口令是MD5加密的。
GRUB修复
当开机进入grub界面但没有菜单,只剩下一个grub>提示符,解决方法:
grub> cat /boot/grub/grub.conf(为查看参数)
grub>root (hd0,0)
grub>kernel /vmlinuz-2.4.18-14 ro root=LABEL=/
gurb>initrd /initrd-2.4.18-14.img
grub>boot
GRUB修复模式
解决过程
1.把安装盘放入光驱,然后重新启动机器,在bios中把系统用光驱来引导
2.等安装界面出来后,按F5键,也就是linux rescue模式
然后在boot下输入
linux rescue
然后就是回车一下。
sh# chroot /mnt/sysimage
时间: 07-06