一、可能会出现的故障
1 2 3 4 5 6 7 |
1.管理员密码忘记 2.系统无法正常启动 A.grub损坏(MBR损坏、grub配置文件丢失) B.服务故障 C.用户无法登陆系统(bash程序故障) 3.命令无法运行 4.编译过程无法继续 |
二、MBR修复
MBR扇区故障:MBR引导记录位于物理硬盘的第一个扇区(512B),该扇区又称为主引导扇区(MBR扇区),出了包含系统引导程序的部分数据以外,还包含了整个硬盘的分区表记录。当主引导扇区发生故障时,将可能无法进入引导菜单,或者因无法找到正确的分区位置而无法加载系统,通过该硬盘引导主机时很可能进入黑屏状态。
A. 备份MBR
1 |
[root@localhost ~]# dd if=/dev/sda of=/dev/sdb1/mbr.bak bs=512 count=1 |
B. 模拟MBR扇区故障
1 |
[root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=200 count=1 |
1. 进入Linux急救模式从备份文中恢复MBR扇区数据
1 2 3 4 |
Centos5.0: 选择"Linux rescue" Centos6.0: 直接选择救援模式进入 [root@localhost ~]# cd /mnt/sysimage [root@localhost ~]# dd if=/dev/sdb1/mbr.bak of=/dev/sda bs=512 count=1 |
2. 进入Linux急救模式从新安装grub
1 2 3 4 5 6 |
grub grub>find (hd0,0)/ #查找内核是否在这个分区 grub>root (hd0,0) grub>setup (hd0) #指定设备会自动检查stage1.5和stage2是否存在 |
3. Grub配置文件/boot/grub/grub.conf丢失或者关键配置出现错误,linux主机启动后可能只出现“grub>”提示符,无法完成进一步的系统启动过程,启动时修复Grub
1 2 3 4 5 6 7 8 |
grub>find (hd0,0)/ #查找kernel和initrd在那个硬盘上 grub>root (hd0,0) grub>kernel /vmlinuz-2.6.18-308.el5 #可Tab补全;后面参数可省略 grub>initrd /initrd-2.6.18-308.el5 #可Tab补全 grub>boot |
三、全新安装grub到一块新硬盘上(先分区格式化)
1 2 3 4 5 6 7 8 9 10 |
SDB分三个区;sdb1=boot,sdb2=swap,sdb3=/ [root@localhost ~]# mkdir /mnt/boot [root@localhost ~]# mount /dev/sdb1 /mnt/boot [root@localhost ~]# grub-install –root-directory=/mnt /dev/sda [root@localhost ~]# vim /mnt/boot/grub/grub.conf default=0 timeout=5 root (hd0,0) ………. initrd /initramfs.2.6.32-37.el6.img |
四、GRUB的配置文件grub.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
default=0 #设定默认启动的title编号;从0开始 timeout=5 #等待用户选择的超时时长单位是秒钟 splashimage=(hd0,0)/grub/splash.xpm.gz #设置grub背景图片默认大小640x480其后缀必须为.xpm hiddenmenu #隐藏菜单只有敲键盘才会显示菜单;删除此项就会显示菜单 password redhat #全局明文加密表示编辑grub菜单需要密码 password –md5 $1$HKDGJE6989FIU4 #md5加密命令grub-md5-crypt title RHEL6.4(2.6.32) #内核标题可自由编辑 root (hd0,0) #内核文件所在设备;对grub而言所有硬盘类型一律hd而hd0,0表示第几块磁盘的第几个分区 kernel /vmlinuz-2.6.32-71.el6 ro root=/dev/vo10/root rhgb quiet #内核文件的路径及传递给内核的参数(这里的boot是独立分区的显示/vmlinz;如果不独立分区就会显示/boot/) initrd /initramfs-2.6.32-71.el6.i686.img #虚拟根文件在内核跟rootfs之间 password –md5 $1$HKDGJE6989FIU4 #可选表示启动这个内核需要密码 |
五、bash程序损坏
1 2 3 4 5 6 7 |
Centos5.0: 选择"Linux rescue" Centos6.0: 直接选择救援模式进入 # 救援模式 [root@localhost ~]# mount /dev/hdc /mnt # 挂载光盘 [root@localhost ~]# rpm -ihv -replacepkgs -root /mnt/sysimage /mnt/Server/bash-3.2-32.el5.x86.rpm # 安装bash程序 |
六、inittab文件损坏
1 2 3 4 5 6 7 |
Centos5.0: 选择"Linux rescue" Centos6.0: 直接选择救援模式进入 # 救援模式 [root@localhost ~]# mount /dev/hdc /mnt # 挂载光盘 [root@localhost ~]# rpm -ivh–replacepkgs–root /mnt/sysimage /mnt/Server/initscripts-8.45.14.EL.i386.rpm # 安装inittab包 |
七、文件系统损坏
1 2 3 4 5 6 7 8 |
1.模拟破坏文件系统 [root@localhost ~]# dd if=/dev/zero of=/dev/sdb1 bs=512 count=4 2.修复 A.先备份数据 B.在卸载分区 C.尽可能单用户模式修复 [root@localhost ~]# fsck -y -t ext4 /dev/sdb1 |
八、inode没有可用节点
修复进救援模式或单用户模式删除无用文件。
九、磁盘坏道
检查磁盘坏道
1 |
$ badblocks -sv /dev/sdb |