LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: apostle

紧急求助!关于恢复MBR(好几个高手都说没办法,急死人了)

[复制链接]
 楼主| 发表于 2005-6-19 18:29:30 | 显示全部楼层
Post by hys
接着就先找C:和D:得首扇区在哪儿,找出后直接填入mbr就成
但这个要花点时间,我当时是自己写代码,但有种笨方法,你可以依照原先得分区比例重新分区(每个分区大小必须与原先绝对相同),只要重新分区后那两个指针得值就ok了


厄.....120G的硬盘阿....
回复 支持 反对

使用道具 举报

发表于 2005-6-19 18:32:45 | 显示全部楼层

以上都是基于fat得,ntfs是否还如此就不知道了

Post by apostle
厄.....120G的硬盘阿....



如果你有这个心思,知道C:多大,可以直接计算出D:得首扇区。。。。。然后直接填写扩展分区指针
不过这个头是有点大
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-19 18:34:23 | 显示全部楼层
Post by ross
小妹妹别理他,现在外面坏人好多的 :p

你的 finaldata 用得怎么样啦? 应该不会这么快吧

如果出错的化,告诉哥哥出了什么错


finaldata 还没用呢,因为首要的目标是恢复“主分区表”,实在没办法了再恢复数据
回复 支持 反对

使用道具 举报

发表于 2005-6-19 18:41:17 | 显示全部楼层

这里有一编硬盘数据结构得文章

http://www.qqread.com/html/m21880722172_1.htm


看懂了就知道怎么修复了
回复 支持 反对

使用道具 举报

发表于 2005-6-19 18:43:22 | 显示全部楼层
Post by apostle
finaldata 还没用呢,因为首要的目标是恢复“主分区表”,实在没办法了再恢复数据



finaldata 可不仅仅是恢复数据哦,分区表它也能恢复的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-19 19:08:00 | 显示全部楼层
Post by flowing
大哥,我可以很负责任的告诉你,你的mbr里的分区表已经玩完了,那是在你进行第2步操作的时候,因为分区表位于mbr的512字节的最后4X16+2里,在你进行第二步操作的时候已经被你的hda5里的相应数据覆盖了,所以,理论上是没有办法恢复了,不过如果你原来有mbr的备份就可以还原回去,或是使用一些极端的工具来扫描硬盘来重建mbr中的分区表,但这些方法的成功律都比较低,所以,如果你没有什么非常重要的数据的话,还是重新分区,然后在重装系统好了。


你说得很对,的确是被hda5覆盖了,但是每个分区的东西都没有丢啊,理论上是可以重建的吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-19 19:11:56 | 显示全部楼层
Post by hys
http://www.qqread.com/html/m21880722172_1.htm


看懂了就知道怎么修复了


懂是懂啊,但怎么恢复那开始的512个字节呢?

提醒一下吧
回复 支持 反对

使用道具 举报

发表于 2005-6-19 19:13:38 | 显示全部楼层

只要每个分区得数据,分区表没丢,绝对可以重建

Post by apostle
你说得很对,的确是被hda5覆盖了,但是每个分区的东西都没有丢啊,理论上是可以重建的吧


绝对没问题得
回复 支持 反对

使用道具 举报

发表于 2005-6-19 19:17:37 | 显示全部楼层

以前作过一次,细节记不大清楚

Post by apostle
懂是懂啊,但怎么恢复那开始的512个字节呢?

提醒一下吧


好像fdisk/mbr就已经回复了前面得512字节部分(好像只有引导代码部分),剩下所要作得就是填写四个分区信息,也就是所谓得四个指针
不信,你可以随便用什么软件改写mbr中引导代码得一个字节,然后fdisk/mbr一下,你就知道发生什么了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-19 19:18:43 | 显示全部楼层
Post by hys
硬盘mbr=code + 四个指针
一号指针就是C:(也就是主分区)
二号指针是扩展分区(指向一个链表)
三号指针备用(linux主分区指针)
四号指针备用(swap分区指针)


dos意义下得硬盘分区除C盘外,其余全部包容与扩展分区内,每个分区又叫逻辑分区,通过每个分区前得分区表结构串成一个链表
你既然已经用fdisk/mbr了,就意味着mbr已经重建好,所要作得只是把主分区得指针填入,D:得首扇区填入,就可以修复,哪里用的着那么麻烦
推荐用nu8得diskedit,手动修复很块得


我仔细的回忆一下:
/dev/hda1  windowsXP 的 NTFS 分区
/dev/hda2  RH7.3 的根分区
/dev/hda3  swap 分区
/dev/hda4   /home 分区
/dev/hda5   FC2 的根分区

请问,可不可以用我的这个分区结构,举个例子阿?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表