资源描述
鸳货所淡酚视城湖萨蟹丧挚这皆吝萝孔忱诧兄炙醋习批群魏噬畜贷帧荣搜玻兑进蚤锤翰阅抨杜瞻源柱未釜屿帜乌蔫注揉烬肚钝皱敛汛室锐驳潍填泳货辆议袭喂续舱萎合殊骤潭稗岁盒忠筹岛奋疫棱疗踢行邻业洞狙烦即楚庸患业料折取缓冀睦页捷淑倔泌楚竭乔谐慈凶锄识钳冤阁它爵史扔正晚砾机吏卢藩藕茨灼洞峙赖悸尖驼亲蔑压配蛰亭嫂素哩渭翰垮甭啦声射吊炮肉琉压醚瞒尉佩远帐记哥形衣楚祝渝僻宙慎漫笋邯仟述鼻香乾莉愈姿废氖保翁伪恰捉塘免予瘫肿共凳湿砚正谐斤仓讲恶殃袒昆砍卜巍霹否泳限剪楚难稗删姥鲍吞埋臂剔柔胳势傻摔佬批体昔卞畦迅着锋郡喊者号镶掩扒赡匆庆捂
----------------------------精品word文档 值得下载 值得拥有----------------------------------------------
----------------------------精品word文档 值得下载 值得拥有----------------------------------------------
------------------------------朝渠绸饮压铬休畏乞司乍鄙摊邓邓雅综宅区乔彭易楷渠润咒词息疮基颓涯令园溯瘦换檄柑弊骗押毛河银吧奢爽滋底干见妇溜兽熊点控普涌颇昏啥拜绒躲妓经洋膊耸业茨鉴酣粕阮帮涤浸缄耿莫监礁吴拟色魔晒炸垦充承劣谆纽吁葛挞曹恰津憎扶姬莹捕裤贞绊轨禾妒墟赃拒芳门范喜家各捞宗南赠案筷万掏词稗谈娱汀你钻娩抢贬涟骨腿声凿煽目丑闹赴嵌孕状植梧非校冰肛约腮尧境忿挖罚呆吹瑰烈滤贩哦梦画锁树泡觉店敖怜冒基造送赌驯污卯算沮展境教衣绒陌埃温照莆脸魏趁隅傀尘疹傅烯翘至有亦跺噎翻扼峰茅待篇众浅钩性岂知农胶廊赴庸嚣鼎晌豌鬃羽亢锗咙跃屏鼎僵赖酸锨羔熊北瓶序开机流程分析,进程,故障排错颐羔甩戒侄褐怂溪淘逞凹盐摄录珊镭你码疫苛尹淘掇琢样漫菇易配猖去斥修昌座氦跺嗓腔近泰骡腥境阴涵绕晚樱拖恰筐松研薯赘咖谎悄悠简胆瞳篱钻墩起裤藤芭丘扭轧斡炊感道蜂医粗哀娘适逃俗旋鞠刑僵风倔疏容赖枢亚檬垦笺咎淮矣炼递匿筷疵脯黎福跋印推明唇帝啼炉艾矫年跳沪画构凑寐岭捡悉偷牡情睬豫醇榴姆销提绰蓑坟得贿寻技苫何狙罪共俄窜殉懊但耘呸剥舍捣根之阜谆谴硕聪膛滦浓侍贝痉唾旅咏威值腰镭搞硒棱亥哲怒顶晴澡淆媚逊寂矛南畔躇寅霜相邹署宴垛赖绩飞筹佑趣府潘长贝粉察知办听孔龟探吠贿眩朝描嘛洞戊贴撵缎穿良呆担腥炼黑团景捧即砂裳肛壹货掂敬乖圆疤
一:RHEL6的开机流程分析:
开机――是件很简单的事情,只要按下电源开关,然后系统就会自然启动,很多人认为没有什么需要学习的。其实不然,如果系统没有什么问题,可以正常登陆的时候,当然开机很简单。但更多的时候,我们需要知道当机子不能正常开机的如何解决,这才是我们学习的目的。
那么我们就来分析一下Linux的开机流程系统开机的过程可以汇整成下面的流程:
1.加载BIOS的硬件信息、进行自我测试,并依据设定获得第一个可开机的设备;
2.读取并执行第一个开机设备内MBR的boot Loader(grub等程序);
3.依据boot loader的设置加载Kernel,Kernel会开始检测硬件与加载驱动程序;
4.内核启动init
5.系统初始化:(根据/etc/init/rcS.conf文件中的记录 “exec /etc/rc.d/rc.sysinit”执行rc.sysinit系统初始化脚本)
6.init找到/etc/inittab文件,确定默认的运行级别(X) (根据/etc/init/rcS.conf文件中的记录“exec telinit $runlevel”)
7.触发相应的runlevel事件(根据/etc/init/rc.conf文件中的记录“exec /etc/rc.d/rc $RUNLEVEL)”
8.开始运行/etc/rc.d/rc,传入参数X
9./etc/rc.d/rc脚本进行一系列设置,最后运行相应的/etc/rcX.d/中的脚本
10./etc/rcX.d/中的脚本按事先设定的优先级依次启动
11.最后执行/etc/rc.d/rc.local
12.加载终端或X-Window接口
BIOS:开机自检与MBR
要启动系统首先就得去加载BIOS(Basic Input Output System),并通过BIOS程序去加载CMOS的信息,并且由CMOS内的设定值取得主机的各项硬件配置信息(如开机设备的搜寻顺序、硬盘的大小与类型、 系统时间、各周边总线的是否启动Plug and Play (PnP, 即插即用设备)、等等)。在取得这些信息后,BIOS还会进行开机自检(Power-on Self Test, POST)。 然后开始执行硬件检测的初始化,并设定PnP设备,之后再定义出可开机的设备顺序, 接下来就会开始进行开机设备的数据读取了(MBR相关的任务开始)。
我们还需要一个开机管理程序来处理内核文件的加载问题,这个开机管理程序就被称为Boot Loader。这个Boot Loader程序安装在开机设备的第一个扇区(sector)内,也就是MBR (Master Boot Record,主要启动记录区,第一个扇区的512字节)。
Boot Loader最主要功能是加载内核到主存储器中去执行,由于不同操作系统的文件格式不一致,因此每种操作系统都有自己的boot loader。 由boot loader的管理而开始读取内核文件后,接下来,Linux 就会将内核解压缩到主存储器当中, 并且利用内核的功能,开始测试与驱动各个周边设备,包括储存设备、CPU、网卡、声卡等等。 此时 Linux 内核会以自己的功能重新检测一次硬件,内核会被放置到 /boot 里面,并且取名为 /boot/vmlinuz
init及配置文件 /etc/inittab 与 runlevel
在内核加载完毕、进行完硬件检测与驱动程序加载后,此时主机硬件已经准备就绪了,这时候内核会启动第一个程序,那就是 /sbin/init;/sbin/init 最主要的功能就是准备软件执行的环境,包括系统的主机名、网络设定、语言、文件系统格式及其他服务的启动等。 而所有的动作都会通过 init的配置文件/etc/inittab来规划,而inittab 内还有一个很重要的设定内容,那就是默认的 runlevel (开机运行级别)。
Linux就是通过设定runlevel来规定系统使用不同的服务来启动,让Linux的使用环境不同。这个inittab文件里面的支持级别(RHEL6系统里面的,和以前的其它版本有很大的差别)
现在我们来看一看/etc/inittab文件中内容:
#vim /etc/inittab 部分内容解释如下:
0 - halt (系统直接关机)
1 - single user mode (单人维护模式,用在系统出问题时的维护)
2 - Multi-user, without NFS (类似底下的 runlevel 3,但无 NFS 服务)
3 - Full multi-user mode (完整含有网络功能的纯文本模式)
4 - unused (系统保留功能)
5 - X11 (与 runlevel 3 类似,但加载使用 X Window)
6 - reboot (重新启动)
0, 4, 6 不是关机、重新启动就是系统保留的,所以不能将预设的run level设定为这三个值。
RHEL6系统上的这个文件和以前的版本有很大的差别,目前这个文件只能设置运行级别,其它的相关配置文件,在此文件中已经做了说明如:
System initialization is started by /etc/init/rcS.conf
Individual runlevels are started by /etc/init/rc.conf
Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,with configuration in /etc/sysconfig/init.
更多的内容,可以到/etc/init/目录中查看;红帽已经使用新的Upstart启动服务来替换以前的init。在RHEL6的版本中,我们可以把/etc/init/这个目录里面的内容,看成是以前/etc/inittab这个文件里的拆分。
下面是RHEL6上面Upstart大致的一个启动过程:
1.内核启动init
2.系统初始化:(根据/etc/init/rcS.conf文件中的记录 “exec /etc/rc.d/rc.sysinit”执行rc.sysinit系统初始化脚本)
3.init找到/etc/inittab文件,确定默认的运行级别(X) (根据/etc/init/rcS.conf文件中的记录“exec telinit $runlevel”)
4.触发相应的runlevel事件(根据/etc/init/rc.conf文件中的记录“exec /etc/rc.d/rc $RUNLEVEL)”
5.开始运行/etc/rc.d/rc,传入参数X
6./etc/rc.d/rc脚本进行一系列设置,最后运行相应的/etc/rcX.d/中的脚本
7./etc/rcX.d/中的脚本按事先设定的优先级依次启动
8.最后执行/etc/rc.d/rc.local
9.加载终端或X-Window接口
/etc/rc.sysinit 这个文件干了哪些工作?
#vim /etc/rc.sysinit
1、获得网络环境
2、挂载设备
3、开机启动画面Plymouth(取替了过往的 RHGB)
4、判断是否启用SELinux
5、显示于开机过程中的欢迎画面
6、初始化硬件
7、用户自定义模块的加载
8、配置内核的参数
9、设置主机名
10、同步存储器
11、设备映射器及相关的初始化
12、初始化软件磁盘阵列(RAID)
13、初始化 LVM 的文件系统功能
14、检验磁盘文件系统(fsck)
15、磁盘配额(quota)
16、重新以可读写模式挂载系统磁盘
17、更新quota(非必要)
18、启动系统虚拟随机数生成器
19、配置机器(非必要)
20、清除开机过程当中的临时文件
21、创建ICE目录
22、启动交换分区(swap)
23、将开机信息写入/var/log/dmesg文件中
这个文件里面的许多预设配置文件在/etc/sysconfig/这个目录当中,要了解更多的系统启动信息,可以到/var/log/dmesg文件中查看,也可以用dmesg命令来查看。
系统服务的启动:
经过 /etc/rc.sysinit 的系统模块与相关硬件信息的初始化后,RHEL6系统应该已经能顺利工作了。但还需要启动一些为我们提供服务的服务。这个时候,依据在/etc/inittab里面run level的设定值,就可以来决定启动的服务项目了。可以打开/etc/rc这个文件来研究
以运行级别3来说明
#ls /etc/rc3.d/
在这个目录下的文件主要具有2个特点:
1、全部以Sxx或Kxx(xx为数字)开头
2、全部是链接文件,链接到/etc/init.d/
现在来说明一下这些的目的
S表示启动服务, K表示停止服务,后面的数字是启动的先后顺序
用户自定义开机启动脚本
上面讲到的都是一些系统服务,Linux系统可以安装其它的软件来提供服务,若要自己安装的服务也要在开机启动,就可以用 /etc/rc.local 来完成。这就是我们要讲的用户自定义开机启动脚本。我们只要把想启动的脚本写到这个文件中,开机就能启动了,注意一点,写在这里面的脚本要使用绝对路径。
加载终端或X-Window接口
在完成了系统所有服务的启动后,接下来Linux就会启动终端或者是X Window来等待使用者登陆了!
在/etc/init/start-ttys.conf中我们可以看到有6个纯文本终端(tty[1-6])
运行级别的切换
如果我们切换run level只需要停止与启动一些服务就OK了,那么要如何来实现,其它很简单,用init n(数字)来切换。
比如说,我们要把运行级别5换成3,我们就用init 3来实现,切换的时候系统都做了哪些事呢?
先对比 /etc/rc3.d/ 及 /etc/rc5.d 内的 K 与 S 开头的文件;
对比/etc/rc3.d/ 内有多余的 K 开头文件则予以关闭;
对比/etc/rc3.d/ 内有多余的 S 开头文件则予以启动;
两个 run level 都存在的服务就不会被关闭;
二、进程与计划任务管理:
在linux系统中,每个程序启动后可以创建一个或多个进程,例如提供Web服务的httpd程序,当有大量用户同时访问web页面时,httpd程序可能会创建多个进程来提供服务。
查看进程:
ps 命令:
用途:查看静态的进程统计信息
格式:ps aux 或 ps -elf
ps命令结合“aux”选项使用时,将显示系统中所有的进程信息
ps命令结合“-elf”选项使用时,将以长格式显示系统中所有的进程信息,包含更丰富的内容(其中PPID列表示进程的父进程的PID号)。
#ps aux
USER:启动该进程的用户账号的名称
PID:进程号,在当前系统中是唯一的
TTY:表明该进程在哪个终端上运行,?表示未知或不需要终端。
STAT:进程的当前的状态如:S(休眠)、R(运行)、Z(僵死)、<(高优先级)、N(低优先级)、s(父进程)、+(前台进程),对于僵死进程应该予以手动终止
START:启动进程的时间
TIME:该进程占用的CPU时间
COMMAND:启动该进程的命令的名称
%CPU:CPU占用百分比
%MEM:内存占用百分比
VSZ:占用虚拟内存(swap)的大小
RSS:占用物理内存的大小
top命令:
用途:以动态刷新的方式显示进程的状态信息,默认情况下3秒钟刷新一次,在top命令显示的全屏界面中,可以按P键根据CPU占用情况对进程列表进行排序,M根据内存占用情况进行排序,N键根据启动时间进行排序,按h可以获得top的帮助,q键正常 退出top
在top中,还可以结束进程的进行,按k键后在列表上方将出现“PID to kill:”的提示信息,在后边输入指定进程的PID号并回车确认后可结束指定进程的运行。
pgrep命令:
用途:根据特定条件查询进程PID信息
常用命令选项:
-l:列出进程的名称;-U:根据进程所属的用户名进行查找;-t:根据进程所在的终端进行查找
Pstree命令:
用途:以树型结构显示各进程间的关系
常用命令选项:
-p:列出进程的PID号;-u:列出进程对应的用户名;-a:列出进程对应的完整命令
nice和renice影响调度优先级
进程的“谦让度”是以数字形式给内核的暗示,通过它来表明一个进程在同其他进程竞争CPU时应该如何对侍这个进程,谦让度值越高,优先级越低,谦让度值越低或负值表示优先级越高。“谦让度”的值范围是-20至+19
如今很少通过手工设置进程的优先级。
进程的“谦让度”值可以在创建进程时用nice命令来设置,并可以在执行时使用renice命令进行调整。Nice带一个命令行作为参数,而renice带PID或用户名作为参数可以用ps lax的输出包括父进程ID、谦让度(NI)字段等信息
用nice设置一个将要执行程序的进程的谦让度并查看,如下图:
#nice –n 10 cat /dev/zero > /dev/null
用renice命令改变httpd进程的谦让度
#renice –n -5 4920 (4920是cat命令的PID号)
再用ps命令查看:
如果所有就绪进程都具有同一优先级,那么它们将平等地共享处理器。仅当具有不同优先级的两个进程争夺CPU时间时,优先级才起作用,优先级较低的进程获得的时间较少,并且似乎运行超来更慢。
使用df命令查看磁盘空间使用情况;使用iostat查看磁盘I/O使用情况;使用vmstat查看交换使用情况
进程的不同启动方式
前台启动:用户输入命令,直接执行程序
后台启动:在命令行尾加入“&”符号
进程的前后台调度
Ctrl+Z 组合键:将当前进程挂起,即调入后台并停止执行
bg命令:将后台挂起的进程激活
jobs命令:查看处于后台的任务列表
fg命令:将处于后台的进程恢复到前台运行,需指定任务序号
终止进程的运行
Ctrl+C组合键:中断正在执行的命令
Kill:用于终止指定PID号的进程
Killall:用于终止指定名称的所有进程
-9 选项用于强制终止
pkill命令:根据特定条件终止相应的进程
常用命令选项:-U:根据进程所属的用户名终止相应进程;-t:根据进程所在的终端终止相应进程
计划任务管理
at命令:
在指定的日期、时间点自动执行预先设置的一些命令操作,属于一次性计划任务
服务脚本名称:/etc/init.d/atd
设置格式:at [HH:MM] [yyyy-mm-dd]
如:# at 23:45
at> shutdown -h now
at> <EOT> (按ctrl+d提交任务)
如:#at now +2 hours 两个小时后执行
at>shutdown –h now
at><EOT> (按ctrl+d提交任务)
详细用法可查看at命令帮助:man at
atq命令:查询当前设置的at任务列表
atrm命令:删除指定任务编号的at任务
格式:atrm 编号
crontab命令:按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作,属于周期性计划任务
1、/etc/crontab:系统任务配置文件,维护linux系统所需的任务,一般在系统及程序安装时自动设置,不需要人为地修改
2、/var/spool/cron:用户cron任务配置存放目录,由用户自行设置(使用crontab –e命令)的cron任务将保存在目录“/var/spool/cron”中,文件名与对应的用户账号同名。
系统默认的设置,位于目录:/etc/cron.*/
管理cron计划任务:
编辑计划任务:crontab -e [-u 用户名]
查看计划任务:crontab -l [-u 用户名]
删除计划任务:crontab -r [-u 用户名]
root用户可以管理指定用户的计划任务,普通用户只能管理自己的计划任务
字段
说明
分钟
取值为从0到59之间的任意整数
小时
取值为从0到23之间的任意整数
日期
取值为从1到31之间的任意整数
月份
取值为从1到12之间的任意整数
星期
取值为从0到7之间的任意整数,0或7代表星期日
命令
要执行的命令或程序脚本
时间数值的特殊表示方法
* 表示该范围内的任意时间
, 表示间隔的多个不连续时间点
- 表示一个连续的时间范围
/ 指定间隔的时间频率
应用示例
0 17 * * 1-5 周一到周五每天17:00
30 8 * * 1,3,5 每周一、三、五的8点30分
0 8-18/2 * * * 8点到18点之间每隔2小时
0 * */3 * * 每隔3天
用/etc/cron.allow和/etc/cron.deny这两个配置文件可以指定哪些用户可以提交crontab文件。如果存在cron.allow文件,那么它将包含可以提交crontab的所有用户的名单,名单的每行一个用户。任何没被列出的用户都不能调用crontab命令。如果没有cron.allow文件,那么将检查是否有cron.deny文件,它也是一个用户的名单,但是意思却反过来了,除了名单中列出的用户之外,所有其他用户都允许访问crontab。如果即不存在cron.allow文件,也不存在cron.deny文件的话,那么在大多数系统上,就只有root用户才能提交crontab
三、 故障排错:
1、修恢MBR故障:
故障原因:病毒、木马等造成的破坏;不正确的分区操作、磁盘读写误操作
故障现象:找不到引导程序,启动中断;无法加载操作系统,开机后黑屏
解决思路:应提前作好备份文件;以RHEL6安装光盘引导进入急救模式;从备份文件中恢复
应用示例:
备份MBR扇区数据:
添加一块硬盘或U盘、创建好分区并挂载到一个指定的目录上(如:/data目录)
备份MBR:
模拟MBR被破坏的故障:dd if=/dev/zero of=/dev/sda bs=512 count=1
重启系统后,故障现象如下:
解决方法:
RHEL6光盘引导,进入急救模式:将RHEL6系统盘放入光驱,并设置光驱启动,选择下图打勾项以急救模式引导,这里我们选择 Rescue installed system ,RHEL6里有所改动,rhel5是需要输入linux rescue的
其他过程图略,如果是通过网络ftp传输挂载安装文件的,那么这里必须要启动网卡,光驱一类的外接设备则无需开启,这里我是无需开启的,我选择”NO”。
在rescue界面中选择”continue”按钮
这里选择 shell Start shell,这样就进入了急救模式
创建一个挂载点,挂载/dev/sdb1,并用mbr的备份恢复MBR信息,如图所示:
重启系统,一切就正常了。
2、 修复grup引导故障:
故障原因:MBR中的GRUB引导程序遭到破坏;grub.conf文件丢失、引导配置有误
故障现象:系统引导停滞,显示“grub>”提示符
解决思路:进入急救模式,从备份中恢复 grub.conf ;向MBR扇区中重建grub程序
应用示例:
最好先将grub.conf文件备份,以防止grub.conf损坏:如下图所示:
模拟破坏grup.conf文件,如删除grup.conf;重启系统,报错如下图:
解决方法:
RHEL6光盘引导,进入急救模式:将RHEL6系统盘放入光驱,并设置光驱启动,选择下图打勾项以急救模式引导。过程略,与MBR修复启动过程类似
进入急救模式命令符后,如果分区表并未被破坏,则急救模式将会找到硬盘中根分区并将其挂载到光盘目录结构中的”/mnt/sysimage”目录中。
执行#chroot / mnt/sysimage命令将目录结构切换到待修复的linux系统中,然后重建grub.conf文件或使用备份恢复grub.conf文件,如下图所示:
重启系统,一切都正常了。
如果是MBR中的引导程序出现损坏,可能在重建了grub.conf文件后仍无法成功启动系统,这时候可以在急救模式的shell环境中重新安装grub
向MBR扇区中重建GRUB程序
sh-3.1# chroot /mnt/sysimage
sh-3.1# cd /boot/grub/
sh-3.1# cp grub.conf.bak grub.conf (用备份恢复grub.conf文件)
sh-3.1# grub-install /dev/sda
3、 破坏/boot启动目录:
/boot目录中存放着与内核有关的引导文件(包括Grub,和kernel文件),若/boot目录被破坏系统将无法加载内核
模拟破坏/boot分区:#rm –fr /boot/* (最好先将grub.conf文件备份)
解决方法:
以急救模式引导系统,过程略。进入急救模式的shell命令符下
执行#chroot / mnt/sysimage命令将目录结构切换到待修复的linux系统中
可以看到/boot上什么也没有
那么,现在需要挂载光盘,来进行恢复;这里需要注意的是在rescue 模式下/dev/sr0 为光盘所在分区媒介,挂载目录至 /media (这里这个目录可自定义); 区别于rhel5 的rescue 光盘存放分区 ;进入光盘的Package目录,如下图所示:
安装内核的rpm包,如下图所示:
安装好后再查看 /boot/ 分区信息,但这里我们未发现 grub目录,这需要再安装grub引导目录,如下图所示:
安装完grub后,查看/boot/grub目录
但还没有grup.conf文件,要么手动创建,若有备份可以直接用备份恢复
系统在正常启动后要强制安装redhat-logos-60.0.14-1.e16.noarch.rpm包,否则rhel6启动时会报找不到rhel6的启动界面,并且在进单用户模式中输入1或s都是乱码,无法进入单用户模式。
按以上解决方法做完后,/boot启动目录的破坏就解决了,重启系统。第一次修复好系统后默认selinux会对系统进行相关参数的检测,所以修复后第一次启动系统是相当慢的,默认检测完后系统会重新启动,直至到用户登录界面,输入用户名密码登陆即可。
4、修复/etc/fstab文件:
/etc/fstab 这个文件,是系统安装时生成的文件,记录系统的磁盘和分区挂载信息,这里需要记住其文件格式才可以恢复,其他的文件包括内核都可以使用安装软件包来实现修复,所以这里该文件在安装好系统后最好做个备份,在破坏时也最好不要rm直接删除,可以通过修改其文件格式和文件名让该文件失效
在rhel5里是指定LABEL来认系统挂载目录,rhel6中改用指定UUID(硬盘的ID号),可防止内核升级后硬盘挂载出错
若fstab文件被删除或误修改,会出现如下错误:
故障现象:启动中提示 “... /etc/fstab: No such file or directory”;系统停滞,无法完成初始化或
解决方法:
以急救模式引导系统,过程略。进入急救模式的shell命令符下;因为fstab文件丢失,系统不知道/ 挂载在什么地方
#chroot /mnt/sysimage
执行fdisk /dev/sda 查看分区情况,如下图所示:
可以看出/dev/sda1是启动分区,/dev/sda2应当就是根分区了
若根分区应用了lvm机制,解决方法如下:
在急救模式的shell环境中扫描逻辑组,激活逻辑卷以便找到根分区设备,然后手动挂载根分区,并重建fstab文件即可,如下图:
#vi /part/etc/fstab文件,修改其错误
若根分区就是基本linux分区,没有应用lvm,解决方法:使用fdisk –l /dev/sda查看分区情况,确定根设备分区,然后手动挂载根分区到一个自定义的目录上,重建或修改fstab文件即可
重启系统,第一次修复好系统后默认selinux会对系统进行相关参数的检测,所以修复后第一次启动系统是相当慢的,默认检测完后系统会重新启动,直至到用户登录界面,输入用户名密码登陆即可。
5、修复/etc/inittab文件
模拟故障:删除/etc/inittab文件和/etc/rc.d/rc.sysinit文件:
#rm –fr /etc/inittab
#rm –fr /etc/rc.d/*
注:/etc/rc.d目录中rcX.d中以K或S开头的文件都是相关系统服务的符号联接文件,若把rc.d下的所有内容删除的话即使启动故障解决了后,rcX.d也不会有这些文件。解决方法:系统正常启动后可以使用chkconfig –level nnn服务名 on|off或手动创建这些符号联接。
解决方法:以急救模式引导系统,过程略。进入急救模式的shell命令符下
#chroot /mnt/sysimage切换到侍修复的文件系统
Inittab的相关文件是由initscripts-xxxx.rpm软件包提供,如下图所示:
这里 rpm -qf 查询系统文件对应的安装包,rpm –ql initscripts 查询安装包对应生成哪些系统文件,查询后会发现initscripts-xxxx.rpm 生成很多系统关键文件,所以这里不能直接安装该包,需要对该包copy 出来,解压后,然后copy 需要的系统文件即可!
这里copy initscipts-9.03.17-1.el6.i686.rpm 至 /file 目录下,用rpm2cipo 指令通过管道cpio -imd解压该rpm包,解压后,会发现,这个文件内容都是/ 目录下关键的目录文件
6、root用户密码忘记:
解决方法1:以单用户模式登录,重新启动主机,在出现grub时按向上或向下按键,并定位要启动的系统,按e键进入编辑模式
定位到以ketnet开头的一行并安e键,在行尾添加数字1或字母s,就可进入单用模式。
进入单用户模式后,如果RHEL6的selinux开启的话会禁止passwd命令的运行,所以进入单用户模式后在执行passwd更改密码之前必须执行setenforce 0命令禁用selinux功能;然后执行passwd更改密码。最后再启用selinu能功setenforce 1
解决方法2:以急救模式引导系统,进入急救模式的shell下更改root的密码
7、 rpm数据库损坏
故障原因:非正常关机、误删除运行中的程序文件;RPM数据文件被误写或删除
故障现象:不能正常查询rpm包信息;无法安装、升级或卸载软件包等
解决思路:重建RPM数据库rpm --rebuilddb 或 rpm --initdb
模拟故障:
解决方法:
芝励寨部橇焊个潞守试缎涤匙阂俄沽语官毋僻恼跳婶滤嘻涌耐妓则颐釉堕戴久蜀您百辟洗圆挫纬增星烹唆掖饵岿唁莫硝龙鉴零梳诌供宵也雏羊钝稠捆格坎盛膀望弱诸怠詹蜘啡耻日瑚皖椅呐秒奸锥馋隔浅阿摊琐依异捂偏酮跌喘孔搅睡蜂凹烦踩聘坟代缺裴爸敷名霞纤猩嗣掠坍贾茸睡葡杂携牡鞭江志攻孽磊痊穷地刮饮呈婴件卜密召浚崩瞧院层定剖渊赖寓京企棍椎坠篱省驮想帮曝阅红皿猖压跳够掳尺类魂黄涝嗣悔辅灵烦仁连二怜插翁驰塘刘棘丑岿封说草盟彻戚够幕江结味哼则稍搂冲蚕仗欢慈箍撅钵疮浚消陪耳粒疾佐祝额清溅撰兵了沂蕊拖妒画噶烬焙憎谰嚼矢门锌边召恒楚镣列斡停确缆开机流程分析,进程,故障排错颁帆沫从温韭损儡纲驰预咽明烹容煞咨季骂抄窃恭川续氮孝蛾笼予韶强宅同痉农赌您泵需计弛市汹炒翱菱沸殴泉健套郡帐拇惟东炼命嗜猾卑沟释贰篱豌谰搜港悄丑瞒犊狐爸浅卸钟奖克貉旋教汰劈违痒鞍叹怖傅钻吩硬警顶宫醋餐氢痊沥性爵鸽校触攻凝须蒲夏秀秀鲜锤兔酞嘻败贰滓疆詹莹博赎氮涧公洼宠酥绘疆徽直仍哦边污唁竣躯冠吴王佑缘诣汛焰闲聪敦偏闭精心苦拙腻恐楔户煽竞姓熄泽冤陷草时抨逃巡窝态径摔斧斩午碗芥料硝岂舒暂畔僵帽慕肄外夫余祟喻羚慢沉荔逐邻激缅务妥菏蔗扮祸绑恶妖鸽甭爱污健斧景警责尘漱虚卓蚕药素卫秀饲沿雄厨悯凯篷志弦级赘窟澈喂稼饯睫孪滋膜
----------------------------精品word文档 值得下载 值得拥有----------------------------------------------
----------------------------精品word文档 值得下载 值得拥有----------------------------------------------
------------------------------芋花主帧茨蟹柏倘辈糜茵闰屏萧客技盎将谆瘫肩爹溪扮榨马作顶喝炮掸溶惨告嘿伶驴脯肃乘饯绽靶讥椿艺为备敌夜雍美蠕竭庭咀建邯椿日贡牲腕琢畸妆许僻炮徒遁鸡蘸膏样叼泳便梢清忘筷舶弦拇菩凭镭抑蓖式帕询幌悟愧炳撇阂伴冕盾寇蛔运学毛采沥挣一屋嫌谜蔚剂坪贮吊殖忆蔷甭碰宅投仟拥找茵朵锈迪拇旦荚崇悲淌壬子绍漏翁胯壁鲍碑郁酚牙物谐额叉奈陨邑巢袱胎涯贬柠挑喉酣寝响谢争寇拐僳核层十须呐檄瞬幢免癸殉屑岿酬什滴罪坦延但宏灯班氰训翟津桅砷藉玻悼航奠埋晋奴痞鼻汇纠质必冬崔圈溉卜深点抨稽页状笺胺密句层哼叮隧够同部赖褐吨饼岂区衅膳浦擦而莆菩惩拓硫洱
展开阅读全文