操作环境:linux Redhat 5.8 一.首先简单看一下系统启动的流程图,然后再作详细的解释 二. 1,BIOS自检,检测硬件,决定启动介质 BIOS为写入到主板上的一块闪存或EEPROM的程序,它可以
l2:2:wait:/etc/rc.d/rc 2 //2 - 多用户,但是没有 NFS服务 l3:3:wait:/etc/rc.d/rc 3 //3 - 完全多用户模式 l4:4:wait:/etc/rc.d/rc 4 //4 - 没有用到(系统保留功能) l5:5:wait:/etc/rc.d/rc 5 //5 - X11(与 3类似,但是加载使用X Window) l6:6:wait:/etc/rc.d/rc 6 //6 - 重新启动 (千万不要把initdefault 设置为6 )
ca::ctrlaltdel:/sbin/shutdown -t3 -r now //是否允许按【ctrl】【alt】【del】就重新启动的选项 #不断电系统的pf,pr两种机制,一个是没电时的关机,一个是复电的处理 pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down" pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled" #tty1~tty6是由这六行决定的 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 #启动X window是由这里决定的 x:5:respawn:/etc/X11/prefdm -nodaemon @2./etc/rc.d/rc.sysinit作用:这里简单说几个 1.取得网路环境和主机类型 2.测试与挂载内存设备/proc及USB设备 /sys 3.决定是否启动SELinux 4.启动系统的随机数生成器 5.用户自定义模块 6.加载内核的相关设置 7.初始化软件磁盘阵列,lvm 8.启动相关信息加载/var/log/dmesg文件中 5.依据/etc/inittab 执行/etc/rc.d/rc0~6.d 找到/etc/rc.d/rcN.d/K??*开头的文件,并进行 /etc/rcN.d/K??* stop 的动作 找到/etc/rc.d/rcN.d/S??* 开头的文件,并进行 /etc/rcN.d/S??* start 的动作 如果默认启动是文本开启6个文本控制台 [ALT+F1~F6] 如果默认启动项是图形则开启图形界面以及6个文本控制台 用户自定义的开机启动程序/etc/rc.d/rc.local
6, 加载X Window界面,等待用户输入用户名和密码 @1. 通过/etc/passwd、/etc/shadow 验证,如果用户名和密码输入正确 读取4个初始化文件: /etc/profile、/etc/bashrc、~/.bashrc、~/.bash_profile 文本界面直接开启shell 图形界面开启桌面,进入X Window,通过开启终端打开shell @2.系统还会自定义设备与模块对应文件为/etc/modprobe.conf 三. 介绍一下grub.conf这个文件 #vim /etc/grub.conf
default=0 # 默认的启动项,也就是启动那个title,从0开始计数。
timeout=5
#timout=5,就是默认在启动选择界面停留的时间,等待5秒自动进入默认操作系统
splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz
#splashp_w_picpath是grub启动背景画面,这个可以不要
#hiddenmenu 是隐藏菜单只有按上下键才会出现
title Red Hat Enterprise Linux Server (2.6.18-308.el5)
#title后面就是系统在启动时候显示的名字
root (hd0,0)
#root 分指定你的内核所在的分区。hd0表示第一块硬盘设备。 0表示第一个分区 也是/boot所在的分区 kernel /vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet
#kernel 内核在哪里;ro 只读;root=LABEL=/ 根分区是谁;rhgb (图形化显示启动过程) ;quiet (静默式启动,不显示dmesg信息)
initrd /initrd-2.6.18-53.el5.img
#initrd内核镜象的名字 #rhgb:表示redhat graphics boot,就是用图片来代替启动过程中显示的文本信息,这些信息在启动后用dmesg可以看到
#quiet:表示在启动过程中只显示要信息,类似硬件自检的消息不回显示 四. 下面是几个故障修复的例子 @1 1.我们把title下面的三行删掉,然后重启系统,
1. 同样是同光盘启动,进入linux rescue模式,看一下/boot下什么都没有了

2.把光盘挂上,然后安装kernel
从光盘进入到救援模式后,把那个boot分区添加回去,按照上面安装内核和grub就可以启动系统了,添加grub.conf文件 注:如果重启后出现fsck.ext3: Unable to resolve 'LABEL=boot',重新进入救援模式
解决方法:# e2label /dev/hda1 /boot #e2label可以给分区加上label(这个地方纠结了我好长时间,本想再截张图,可是弄了好几次,都没有那个错误出现了)