记一次服务器电源故障导致磁盘MBR、Grub引导文件损坏的恢复
作者:欧阳 发布时间:2020年03月04日 阅读: 3,630 分类:Linux摘要
因为一台RedHat 6.4服务器里的服务不常用,一直放在机房没发现故障,导致一直无限重启N天。最后原因是电源故障,换完电源后,发现系统又无法启动,显示Hard Disk Error错误提示。刚开始怀疑是阵列卡导致磁盘故障,但重启发现阵列卡显示磁盘正常。最后由于习惯使用Windows PE,手贱在PE里头使用DiskGenius恢复MBR引导,最后啥也不显示了,直接显示一个j。
这下将MBR也损坏了。服务器有重要数据,无奈在虚拟机上进行了故障重现,相同的环境下模拟恢复流程,记录下来。
首先准备RedHat6.4安装磁盘,我这里是iso文件包,直接挂在虚拟机器里头跑起来。安装完系统后直接干掉了boot目录下的所有文件。然后使用PE重置引导MBR。这下故障重现了。
接着恢复记录开始了。
1、挂载Redhat 6.4安装磁盘,启动选择第三项 Rescue installed system,回车
2.后面这两个直接默认即可:语言language默认选english,键盘keyboard选us,回车
3.What type of media contains the rescue image?选择Local CD/DVD,回车
4.中间有个OK回车确定,然后在Setup Networking网络选项选择No,回车
5.Rescue 这步选择Continue(按一下Tab键可以选中),回车
6.后面两个OK,回车两次即可。
7.最后选择Shell Start shell,回车
8.进入shell后,显示bash-4.1#,在该状态下切换为恢复系统的根目录运行
chroot /mnt/sysimage
sh-4.1#
进入要恢复系统的root
cd /mnt
mkdir cdrom
mount /dev/cdrom /mnt/cdrom
10.进入系统安装盘,安装系统rpm。
cd /mnt/cdrom/Packages/
rpm -ivh grub-* --force //输入kernel.后按tab可自动补全,我这里*全部安装。
rpm -ivh kernel.2.6.32-358.el6.i686.rpm --force //输入kernel.2后按tab可自动补全。
11.先确认一下磁盘名称,然后执行grub-install
df -h //确认一下磁盘名称
grub-install /dev/sda
12.安装完grub等后,进入boot/grub下创建grub.conf文件
cd /boot/grub
vi /boot/grub/grub.conf
13.grub.conf文件内容
default=0
timeout=5 //启动界面停留时间
title RedHat Enterprise Linux 6.4 //linux启动时界面显示的系统名称
root (hd0,0)
kernel /vmlinuz-2.6.32-358.el6.i686 ro root=UUID=45eb1da6-672b-4943-be61-7d2145c1c7c3 rhgb quiet
PS:kernel最后的其中"rhgb"表示"Redhat Graphics Boot"图形进度条模式,所以如启动时候不想显示进度条,将grub里头的"rhgb"去掉保存即可,而"quiet"表示在启动过程中只显示重要启动信息,类似系统自检的消息不会显示,也可以选用。
14.注意其中root的目录UUID需要先找到。可以使用cat /etc/fstab查看,并记录“/”的UUID值即可,我这里是c1c7c3这行。
15.最后exit,exit,reboot重启即可。这里放一个原版完整的下载
文件供参考。
如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。
如果您觉得本文还不错,欢迎分享/打赏本文。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!