参考:
http://zhidao.baidu.com/question/531572433.html?bd_source_light=1550576
http://www.2cto.com/os/201111/112327.html
修复分区表的工具有WinHex、DiskGenius,鉴于DiskGenius的简单易用,这里选择DiskGenius尝试,首先从U盘启动winpe,进入winpe后运行DiskGenius。可是启winpe过程中进度条一直循环就是进不了系统,尝试dos也进不了系统,笔者认为,系统在启动系统时都要去读硬盘(包括分区信息),所以找不到正确的分区信息而陷入循环状态。所以读取硬盘的工作要推迟到系统启动之后,两种方法,1.使用启动时不读取硬盘的系统。2.使用usb转sata易驱线,在任意系统启动之后再通过易驱线把硬盘连上电脑。现在很多系统在启动时都会读取硬盘,因为sata接口的硬盘不支持热插拔,所以系统默认是在启动时就读取硬盘,但是完全可以在系统启动之后读取硬盘(sata接口,不是通过易驱线连接的硬盘,系统启动前就要把硬盘插上,而不是系统启动之后再插硬盘)。这里说一下第二种方法,有的网友说启动winpe,Diskgenius还是看不到硬盘;但是用ubuntu的LiveCD启动后,通过易驱线,可以解决。可以看出不同系统、工具对硬盘的处理还是不一样的,建议遇到类似的问题多试几个方法。
由于笔者没有易驱线,逛了校园里所有的电脑医院,也没买到易驱线。只有另找其他方法了。系统从硬盘启动,启动到grub rescue>,
查看所有可以识别的分区,会出现(hd0,modos1),(hd0,modos6),(hd0,modos7),(hd0,modos8),(hd0,modos9),(hd0,modos10),(hd0,modos11)等很类似的东西,然后顺序查看这些分区中哪一个分区中存在grub目录。假如grub目录所在分区是(hd0,modos8),
就可以看到grub的引导菜单了。set root不是给linux传递root分区参数,而是指定grub下命令的根分区(或者说/的意义),set prefix用于设定路径的前缀,linux编译、安装软件经常用到。insmod用于加载模块。笔者选择ubuntu系统,但是启动之后,提示为/home准备的磁盘尚未就绪或不存在,这时选择M,手动指定分区,这时以root身份登录系统。笔者首先fdisk -l一下,结果如下
可以看出很多分区,还很有特点。blkid命令同样显示很多分区,笔者试着挂在最开始的几个分区,里面的文件就是笔者的文件,然后把文件复制出来。之后就可以随便搞硬盘了。
这条命令直接把mbr全写为0,是winpe启动时不再读硬盘时死循环。 然后笔者使用winpe启动电脑,果然可以正常进入。这时完全可以使用分区工具重新分区。但是笔者试了试DiskGenius的搜索分区(注:网上很多网友说使用重建mbr即可,但是笔者试了试重建mbr,并没有找到正确的分区),没想到找到了正确的分区。一切就这样回来了。
万能的对策:
下面再说几个常用工具: