系统简单故障排除
1、bash程序故障:
故障现象:bash程序文件损毁,导致系统开机后,无法进入bash控制台进行操作;
解决方法:进入紧急救援模式,重新安装bash程序;
[root@localhost ~]# mv /bin/bash /tmp :模拟系统bash程序故障;
[root@localhost ~]#
[root@localhost ~]# sync
[root@localhost ~]# shutdown -r now :重启系统;
1、挂载系统ios镜像,重启系统,调整系统启动项为cd-rom;
2、调整系统进入紧急救援模式:
3、选择语言,使用默认OK;
4、选择键盘类型,默认OK;
5、选择是否启用网络,这里无需启用,NO:
6、以下此项必须选“Continue”。此项执行将硬盘中linux系统的根分区挂载到光盘系统/mnt/sysimage文件夹中。不然无法对硬盘上的系统做操作(重要);
7、选择启动光盘中的shell;
8、关在光驱,安装bash程序到磁盘;
(rpm -ivh bash-4.1.2-15.e16_4.x86_64.rpm --replacepkgs --root /mnt/sysimage)
9、切换至磁盘目录,发现成功,代表磁盘系统bash程序正常了,重启系统,更改bios启动项即可完成。
(也可以使用reboot重启系统)
ok,重启系统后,可以向往常一样进入bash控制台,执行各种命令了!!
解释:
当进入紧急救援模式时,其实是进入了光盘的“小系统”中去了,并未进入真正系统中去。进入“小系统”,如果真实系统的分区表未被破坏,则紧急救援模式会找到硬盘中的linux根分区,并将其挂载到光盘目录结构中的“/mnt/sysimage/”文件夹中;
因此,当进入“小系统”的shell中后,执行“chroot /mnt/sysimage”命令可以将目录结构切换到待修复的linux系统当中(前提是linux系统的默认shell程序是正常的);
结束!
2、grub配置文件丢失:
故障现象:系统启动过程中,grub启动后无法找到配置文件不知道内核在什么位置,无法完成系统启动;
解决方法:启动系统自动进入grub命令行,通过命令引导内核加载,成功进入系统后,再重建grub配置文件;
[root@localhost ~]# cd /boot/grub/
[root@localhost grub]# cat grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/mapper/VolGroup-lv_root
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-431.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=VolGroup/lv_swap crashkernel=128M LANG=zh_CN.UTF-8 rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-431.el6.x86_64.img
[root@localhost grub]# :查看grub的启动配置文件。最好备份一个,红色部分很重要;
[root@localhost grub]# mv grub.conf grub.conf.bak
[root@localhost grub]#
[root@localhost grub]# shutdown -r now :模拟grub的配置文件丢失。重启系统;
1、因为没有找到内核,所以开机后自动进入grub命令行,等待用户手动输入:
2、根据之前备份的grub配置文件,手动输入关键项,并重启系统:
3、正常开机进入系统后,还要手动创建一个grub的配置文件,如果之前有备份直接复制过来即可;
这里模拟恢复grub配置文件,下一次启动系统就不会有问题了;
结束!
3、grub程序被破坏,无法启动grub程序:
故障现象:加电启动系统,自动进入boot命令行;
解决办法:进入紧急救援模式,重装grub程序;
1、模拟破坏grub:
dd if=/dev/zero of=/dev/sda bs=446 count=1
:因为MBR中前446字节存放的是bootloader(grub),使用0去填充,将覆盖bootloader,模拟grub程序破坏;
注意:不要将446写成512了,这样既破坏了bootloader,又破坏了系统分区表。整个MBR被破坏了,如果没有备份,将无法轻易恢复(造成无系统状态);
2、挂载镜像光盘,进入紧急修复模式,修复linux操作系统;
“Rescue installed system” :紧急救援,修复系统;
3、chroot /mnt/sysimage :切换到系统根目录。启动grub命令行;
grub :输入grub命令;
grub> :进入grub命令行;
grub> root (hd0,0) :指定/boot分区时哪个;
grub> setup (hd0) 或grub-install :自动去发现kernel和initrd
grub>quit :退出grub命令行;
:最后重启系统拔掉光盘即可恢复;
4、不小心将grub整个目录删除,但是还在当前系统中:
故障现象:系统当前使用没有问题,重启后,无法进入系统了;
解决办法:重新安装grub,手动创建grub配置文件;
方式一:系统还可以正常
cd /boot/
grub-install
--root-directory=/ /dev/sd :执行安装即可;
方式二:系统被重启过,自动进入grub命令行
# grub
grub> root (hd0,0)
grub> setup (hd0)
grub>quite :重启系统即可恢复;
结束!
本文出自 “linux运维集锦” 博客,请务必保留此出处http://5200linux.blog.51cto.com/6012970/1627258
原文地址:http://5200linux.blog.51cto.com/6012970/1627258