您的位置:首页 > 其它

常见系统故障排除

2015-08-02 16:44 405 查看
一、管理员忘记密码

先将系统重启,在读秒的时候按下任意键就会出现如下图所示的菜单界面,看菜单下的说明可知,按e键可进入grub的编辑模式



将光标移到kernel这行,在按一次e键,进入kernel改行的编辑模式



在最后输入single



在按下[enter]确定之后,按下b就可以开机进入单用户模式,即在tty1的地方不需要密码就能以root的身份取得终端的控制权,之后就可以修改root密码



二、系统无法正常启动

A.grub损坏

(1)MBR损坏

模拟MBR损坏,首先对当前系统上的MBR做备份,将/dev/sda中的MBR备份到/dev/hda

注意:由于下一步操作要损坏/dev/sda的MBR,所以磁盘分区表也会损坏,备份要保存到其他磁盘



将MBR的第一段损坏



重启后进入如下界面,输入linux rescue,按【Enter】进入紧急救援模式



进入配置界面选择语言键盘



选择完成后,尝试运行anaconda,在anaconda的主导下启动一个mini Linux,将其作为我们的工作环境,并询问是否启动网络接口,最好启动



是否启动eth0这块网卡,之后还有网关,DNS等设置



启动eth0网卡完成后,提示进入rescue模式,接下来尝试搜索存储设备,找到真正的/文件系统所在目录,并将其挂载至当前mini Linux的/mnt/sysimage目录下



搜索完成后提示/fs已经挂载到/mnt/sysimage



登录mini Linux



进入grub命令行模式,指定内核所在分区设备,不清楚的话可以使用find(hd0,0)/命令+Tab键从第一个设备依次寻找



设定/为(hd1,0)



将主程序安装



Sync后重启即可



(2)grub.conf文件丢失(模拟损坏,将grub文件移动)



重启系统止步于grub提示符







设定好输入boot即可启动系统,结果却显示kernel panic



仔细查看错误提示信息,挂载跟文件系统失败,即虚拟/文件系统切换到真正/文件系统失败,再查看备份的grub.conf



怀疑问题出在没有指定根目录在那个分区,于是重启进入grub命令行进行编辑设置



结果启动成功,手动添加grub.conf配置文件即可修复



如果/boot/grub其他文件丢失,可以在/usr/share/grub/i386-redhat在找回,X86系统为i386,不同系统上路径可能不相同



B.系统初始化故障(由于文件系统无法正常挂载或者驱动不兼容出现kernel panic)

由于不影响grub,可进入grub编辑模式,进入emergency即1级别,该模式下不加载rc.sysinit,进入系统修复即可

C.服务故障

D.用户无法登陆系统(bash程序故障)

模拟bash损坏



重启无法正常执行



强制重启,无法进入init1,只能进入linux rescue重新安装bash



重启系统设定光盘为第一启动盘





不依赖网络重新安装,挂载光盘

通常IDE接口的cdrom模拟的是hd的设备,cdrom是指向hdc的连接,SATA接口的理解方法和IDE接口的硬盘相同,只是把hd换成sd,查找后发现设备应是scd0



成功挂载





重装bash要指定/目录





若网络上某个服务器上有RPM包,可以基于网络下载安装也可使用chroot先切换到真正/目录,man chroot指定其他shell

三、命令无法运行(eg: export PATH=/data/bin)

如上例中错误,只需退出当前登录,另启终端,重新登录即可

若配置文件中PATH被改变,使用绝对路径

export PATH=/bin:/sbin:/usr/bin/:/usr/sbin
/usr/bin/vim /etc/profile


四、编译过程无法继续,缺少开发环境基本组件

五、默认级别设定为0或6: init1 进入单用户模式,编辑inittab



六、/etc/rc.d/rc#.d/目录下文件丢失: init1 进入单用户模式,修复系统目录

七、某个服务导致系统启动停止: 系统启动刚刚出现redhat字符串时,按I键进入交互模式,设定无法启动服务为不启动即可



系统启动流程:POST–>BIOS(依次序寻找启动设备MBR中的Bootloader)–>加载kernel

(initrd–>切换rootfs–>/sbin/init–>/etc/inittab完成系统初始化



任何写在rc.loacal脚本中的内容开机后都会自动执行一次,若想让系统开机后自动完成某些任务,而这些任务本身又无法使用服务脚本来实现,可以将其添加进此脚本

八、rc.local脚本语法错误或逻辑错误: 由于rc1.d下未启动该服务,进入单用户编辑rc.local即可

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  故障 kernel 终端