分区表修复

自我接手系统管理以来,好像硬件是频频出问题,更令我郁闷的是,我什么都没做。

上个礼拜五快下班的时候一台机器grub loading就停到那了,进入rescue模式,硬盘也找不到。硬盘是由两块硬盘做的一个raid0,需要安装raid controller的驱动才可以。由于当时已下班,USB的软驱是无法再借到了,只有使用现有的工具,费了很多周折,什么解开raid0,然后又恢复raid0什么的,使用usb disk 来驱动,但失败。只好作罢。

到现在节点已经恢复运行了。总算功夫不负有心人。要感谢matt的大力帮助。现将解决问题的过程列举在这里:

由于硬盘找不到,而且硬盘找到之后还要恢复分区表信息,所以采用的方法是:

系统环境:sles 10 sp1,raid驱动 PROMISE FastTrak TX 2650/4650 Series Linux Driver For SuSE ES 10 SP1 - Driver Version 1.1.0.12 (x86_64)

1、制作Driver启动软盘

2、光盘启动,F5driver->File,rescue(boot option:acpi=off)

3、fdisk -l查看是否有硬盘信息。软盘挂到了/dev/sda,硬盘如果挂上了就应该是/dev/sdb,提示没有可用的分区表。分区表信息要恢复没着了。上次系统安装的时候使用的是自动分区。

正好还有两块一模一样的硬盘,这样我可以在这两块盘上做同样的系统安装,然后将分区表信息拷出来,就可以帮助恢复原来的分区表信息了。

这里要注意的是在拆卸硬盘的时候一定要记住原来每块盘的位置,以便还原。

4、系统安装好后,用dd将MBR读出来,拷到软盘上

#dd if=/dev/sdb of=/tmp/floopy/mbr.dat bs=512 count=1

5、换回原来硬盘,进入rescue模式:

假设原raid0挂载到/dev/sdb

1) dd if=/mbr.dat of=/dev/sdb bs=512 count=1

2) fdisk /dev/sdb, 然后执行p及w

3) mount /dev/sdb2 /tmp/sys

如果第三步没报错,那就说明没问题了。然后

4) chroot /mnt/sys

5) grub-install /dev/sdb