shell > dd if=/dev/zero of=/dev/sda count=1 bs=200 # 覆盖 MBR , 模拟故障 ( /dev/sda 前 512 个字节是 MBR ) shell > reboot
## 故障现象如下:
Operating System not found # 基本就这样,会出现本地硬盘找不到系统、从 PXE 获取,DHCP xxxxxxxxxxxxx
## 解决方法:使用紧急救援模式修复
> 插入系统光盘,进入急救模式 ( 这个都会进吧,CentOS 直接选择,RedHat boot:linux rescue )
shell > grub # 进入 grub 模式 grub> root (hd0,0) # 直接指定内核所在分区吧,没法 TAB ( 一定要想办法找到它, 例如:先 chroot /mnt/sysimage , 然后 df -HT 可以看到所有分区,假如 sda1 是启动分区,那么这里对应就是 hd0,0 了 ) grub> setup (hd0) # 重新安装 MBR 到该磁盘,实际上就是 /dev/sda grub> quit shell > reboot
## 现在就可以成功进入系统了,MBR 已经修复
附加:BASH 故障的解决方法
shell > rm -rf /bin/bash # 删除 bash ,模拟故障 shell > reboot
## 故障现象如为:系统无法初始化,init 命令不存在,其实什么指令都不能执行
## 进入急救模式重新安装 bash
shell > mkdir /media # 直接在光盘系统中操作,因为这时无法 chroot 到 /mnt/sysimage shell > mount /dev/sr0 /media # 挂载光盘镜像,/dev/sr0 代表光驱,如果是 IDE 接口应该是 /dev/hdc shell > cd /media/Packages shell > rpm -ivh --replacepkgs --root /mnt/sysimage bash-4.1.2-29.e16.x86_64.rpm # 将 bash 安装到 --root 指定根目录中 --replacepkgs 是替换原有包 shell > reboot
## OK ,故障已经修复!