常见系统故障的排除  
1
管理员密码的破解
         一般是要重启系统的,在grub的启动模式,编辑(e)要启动的内核在kernel的那一行输入1,s,single,然后按b键启动这是启动的级别为1,注意我们的1级别启动是不需要验证的,并且我们启动后,修改密码时不需要输入老密码。
        密码的复杂性要求:大写、小写字母,数字,特殊字符,这4种字符的三种,密码的长度应该在7位以上的密码,密码要定期更新,如果我们的主机准许远程登录,要限定哪些主机能够登陆.

我给大家演示一遍关于我们的处理系统管理员密码丢失的问题,但是要给大家说明一点,但我们要修复管理员密码丢失的问题,就要让我们的系统重启,注意这是在企业级应用中很忌讳的事情。

       在我们重启之后进入bootloader加载内核之前时,我们要编辑我们要启动的内核的运行级别
   1. 如果有密码 按p键 然后在选中的内核上按e键进入编辑模式,如果我们的编辑密码也丢失了,我们就没有办法了。
   2. 然后将我们的光标定位在kernel这一行上按e键,因为我们的kernel在启动之后会把我们马上要输入的参数传递给我们的第一系统进程init,我们知道我们的init是根据initab这个文件中所定的默认级别来启动的,但是如果我们这里传递了一个参数给init,init就不会采用默认级别了,所以我们在quiet后面跟上1 或s或single,注意我们有的机器上可能没有quiet,这不重要,因为我们的quiet表示隐藏起来我们内核的启动过程,去掉quiet你就会发现我们在启动时我们grub到底做了些什么事情(我的就没有quiet,所以大家尽管跟上输入我们启动的1级别就行了)。这时候我们就编辑好了我们的kernel的选项。最后b键启动引导过程
   3.因为我们的1级别启动是不需要我们输入密码账号的,直接登录上的就是管理员用户我们在启动级别1的时候,我们系统上的很多服务是没有启动的,所以正个过程是很快的在我们启动完之后,直接使用init 3 就可以切换成3级别的系统,注意如果在我们启动过程中有时候因为我们的服务没有启动而导致开机无法正常(sendmail【这个服务要求我们系统时间标签和我们的配置文件时间标签要一样】,或一些探测硬件的服务),方法1:这时我们还要重启系统在出现redhat之前一直按I键,来进入一种交互式服务启动的过程,这个会每启动一个服务就会询问我们是否启动。方法2:我们进入单用户启动模式,这时我们的sendmail服务是不启动的,然后进入配置文件进行修改


我们手动添加用户
1,/etc/passwd
2, /etc/shadow, W!,q 我们使用]#grub-md5-crypt生成一个加密的密码添加到
该目录下。
3, /etc/group
4, cp -r /etc/skel /home/username
5, chmod -R go=--- /home/username
6, chown -R username:username /home/username

2
我们系统中一些关键文件丢了
/etc/fstab /etc/inittab /etc/sysctl.conf
       在没有备份的情况下(需要注意的是,我们如果对已经修改过的重要的配置文件
进行重新安装的的话,往往会造成我们系统中的一些错误,所以这种方法不推荐使用):
这里假如是我们的/etc/inittab的文件发生丢失
我们需要有一个小的文件boot.iso,和我们的系统安装光盘dvd.iso
 1先到我们的BISO中将我们的启动顺序调成光盘引导
 2在我们的boot:提示下输入 linux Rescue
 3 在Rescue Method中选择rescue p_w_picpath 为 Local CDROM ,因为我们boot.iso仅仅是一个小的系统,而要修复我们原来的系统系需要用到我们的系统安装光盘
 4 在CD Not Found中将我们的光盘插入到光驱中
 5 然后它会提示你是否提示你启动网络服务(这一点很重要,如果我们有对系统上关键配置文件的备份,我们在进入boot.iso系统sh-3.2#后,可以直接登录到远方的服务器上下载我们备份的配置文件到我们的配置目录中或没有备份但是我们可以从别的主机上将这个文件下载下来,并做修改就行了。这时最好的方法,所以说关键位置上的配置文件备份是很重要的(甚至是我们/etc整个目录)。)
 5 然后我们的boot.iso系统(就相当于WINpe)会首先在你的系统上搜索   到原来的系统,并告诉原来的系统会挂在/mnt/sysp_w_picpath上,我们可以使用   chroot /mnt/sysp_w_picpath 来切换到我们原来的系统上,使用exit退回我们的   boot.iso的系统中来
 6 下面我把每一步的prompt写出来
   1. sh-3.2#chroot /mnt/sysiamge/
   2. sh-3.2#rpm -qf inittab 注意在切换成原系统中才能用rpm
   initscripts-8.45.30-2.e15
   3. sh-3.2#exit
   4. sh-3.2#cd /dev/
   5. sh-3.2#mknod /dev/hdc  注意我们这里创建特殊文件时没有指定文件的类型,主设备号,次设备号,是因为我们的光盘通常是. 挂载在/dev/hdc上的,对我们hdc这样的设备文件,我们mknod是很智能的能够为我们正确的分配一个 主设备号,次设备号,同时能够识别文件类型。不过需要注意的是如果我们在原来的linux中创建这个文件时
  我们的系统是无法识别的(因为这个系统不是正常启动的),只能在我们boot.iso这个linux中创建
   6. sh-3.2#mkdir /mnt/cdrom
   7. sh-3.2#mount /dev/hdc /mnt/cdrom
   8. sh-3.2#cd /mnt/cdrom/Server
      1.9.  sh-3.2#cp initscripts-8.45.30-2e15.i386.rpm /root
      1.10. sh-3.2#cd /root ; ls
      1.11. sh-3.2#initscripts-8.45.30-2.e15.i386.rpm
      1.12. sh-3.2#rpm -ivh --replacepkgs --root /mnt/sysp_w_picpath initscripts-8.45.30-.e15.i386.rpm
      1.13..sh-3.2#reboot   
 
      2.9. sh-3.2#chroot /mnt/sysp_w_picpath/
      2.10.sh-3.2#ls
      initscripts-8.45.30-2.e15 Desktop inittab anaconda-ks.cfg
      2.11.sh-3.2#rpm -ivh --replacepkgs initscripts-8.45.30-2.e15.i386.rpm
      2.12.sh-3.2#ls /etc/ |grep inittab
      inittab
      2.13.sh-3.2#reboot


3
我们的grub坏掉了
在紧急救援模式下,直接使用grub>命令来实现重装
我们使用的是dvd.iso光盘而不是boot.iso

原理是和我们的关键性文件丢失一样的
4
bash shell软件包丢了
和修护inittab修复一样

5
某种服务无法正常进行导致我们的系统无法启动
1.进入单用户模式,修改特定服务的故障
2.在redhat出来之前i键,进入服务的交互式模式,只有我们的用户同意的时候
  服务才会启动

还有一些的问题我们是需要分析日志的,error以上级别的日志
还有我们history命令历史,我们的软件是否自动更新了
导致驱动不匹配,等等……