迅维网

查看: 4827|回复: 12
打印 上一主题 下一主题

怎样手动恢复DBR?

[复制链接]
跳转到指定楼层
1#
发表于 2008-3-20 10:13:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 云南昆明 来自 云南昆明

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x
其实手动恢复DBR,只要恢复bpb中的几个重要参数而已。

1.每簇扇区数  ?????
2.扇区大小  根据分区表填写
3.保留扇区  搜索硬盘的FAT表,就可以知道有几个保留扇区了!根据标志:F8 FF FF
4.根项目   一般是512
5.引导记录数 ???

可我不会计算“每簇扇区数”和“引导记录数”!

下面是FAT32的BPB:怎么看这个图?


[ 本帖最后由 吻蛇起舞 于 2008-3-20 10:21 编辑 ]

2#
发表于 2008-3-20 10:16:27 | 只看该作者 来自: 内蒙古赤峰 来自 内蒙古赤峰
说实话 我还没手动恢复过DBR 算是来学习的吧~ 希望有高手有时间可以回答一下

回复 支持 反对

使用道具 举报

3#
发表于 2008-3-20 10:24:24 | 只看该作者 来自: 云南昆明 来自 云南昆明


不知道楼主是怎么恢复dbr的?不是手动恢复?那是怎么恢复的?
想跟你学学!谢谢!请指教。。。

回复 支持 反对

使用道具 举报

4#
发表于 2008-3-20 17:40:44 | 只看该作者 来自: 重庆南川区 来自 重庆南川区
好像记得是这样算的:
假设簇大小为x(个扇区),FAT表达小伟FAT个扇区,DATA区大小为DATA个扇区,计算公式:
x=DATA/[(FAT*512)/2]-2

FAT乘以512是FAT表的字节数,除以2以后是扇区可以记录的簇数,减去2是因为FAT的前2个簇用以表示介质了,没有用以与DATA的扇区相对应。由DATA除以簇的个数,所得结果就是每个簇所代表的扇区个数。

回复 支持 反对

使用道具 举报

5#
发表于 2008-3-20 17:42:03 | 只看该作者 来自: 重庆南川区 来自 重庆南川区
先吃饭,后面的晚上空了来说。 :lol

回复 支持 反对

使用道具 举报

6#
发表于 2008-3-20 19:57:33 | 只看该作者 来自: 广东湛江 来自 广东湛江
楼上说的是FAT16格式的吧

FAT32的是

x=DATA/[(FAT*512)/4]-2

x为每簇扇区数;DATA是数据区的总扇区数;FAT是文件分配表的总扇区数;FAT*512是文件分配表的总字节数;4----指的是4个字节,一个字节8位,也就是32位,FAT32的文件表是使用4个字节即32位作为一个簇(这就是为什么叫FAT32的原因吧);-2的解释跟上面一样。

回复 支持 反对

使用道具 举报

7#
发表于 2008-3-21 18:29:31 | 只看该作者 来自: 吉林四平 来自 吉林四平
没看懂,很有难度。记下来,慢慢捉摸吧。有什么好方法吗?

回复 支持 反对

使用道具 举报

8#
发表于 2008-3-24 21:22:52 | 只看该作者 来自: 山东德州 来自 山东德州

回复 #1 吻蛇起舞 的帖子

引导记录数就找FDT起始扇区,有fat2起始扇区和长度就很容易得到fdt的起始扇区。
查找到没有数据(也就是全0)后,继续找,找到个非0扇区,也就是数据区
开始扇区,由此就得到fdt的扇区数,在根据每文件目录登记项占用32个字节
就可以算出引导记录数。在转换为16进制,填写在bpb表处就可以了.这是fat的算法。fat32的一般是2.每簇扇区数有个公式 data/128*fat就是了

回复 支持 反对

使用道具 举报

9#
发表于 2008-4-3 20:00:37 | 只看该作者 来自: 江苏徐州 来自 江苏徐州
首先,你需要一个没有问题的FAT32分区,以它的分区DBR作为模板,注意该分区不能存有重要数据,因为要修改分区重要参数,可能会造成分区无法访问。运行十六进制编辑器winhex,点击“工具”菜单,选择“磁盘编辑器”,在弹出的窗口中选中“物理媒介”下的对应磁盘,这里选择“HD0...”作为例子。
  
点击“访问”菜单,选中模板分区的“启动扇区(模板)”项。
  
弹出的窗口显示的是分区DBR的各项参数,其中我们需要修改的是“扇区/簇”(即簇大小)、“保留扇区”、“隐藏扇区”(表示从该分区DBR到分区表需移动多少扇区)、“扇区(大容量)”(即分区大小)、“扇区/FAT”(即文件分配表大小)五项(下图中以红框标出),其实还有根目录第一簇的位置也很重要,不过这个数值一般为2,似乎不用修改。

如果根目录第一簇位于其他位置,那就需要手动搜索根目录的特征字段。根目录下可能会有回收站文件夹和卷标文件,可以搜索RECYCLER、卷标名,或者搜索根据记忆搜索根目录下的某个文件/文件夹名称从而确定根目录所在扇区,然后根据簇大小计算出根目录第一簇的簇号。
  
关闭“启动扇区(模板)”窗口,点击“访问”菜单,选中问题分区的“分区表(模板)”项。
  
弹出的窗口中显示的是问题分区所在的分区表。如果问题分区是逻辑分区,“分区表项 #1”就是该分区的分区表参数列,如果是主分区,就根据分区位置和大小判断。

在这个例子中,问题分区是逻辑分区,所以我们需要查看的是“分区表项 #1”,其中“扇区在分区 1”一项代表分区总扇区数,记下这个数字4096512;“扇区在前的分区 1”即“隐藏扇区”一项的数值,记下这个数字63。
  
关闭“分区表(模板)”窗口,点击“搜索”菜单,选择“查找16进制值”,输入F8 FF FF 0F FF FF FF FF,这是FAT32文件分配表的标志(也有可能是别的数值,但差异不大),执行搜索转到以下页面,即第一文件分配表的起始扇区,记下“相关扇区编号”38,这就是保留扇区数。

按下F3继续搜索,转到第二文件分配表的起始扇区,记下“相关扇区编号”4031,4031 - 38 = 3993,得到文件分配表的扇区数。

  
个关键参数中,我们已经找回了四个,还有一个每簇扇区数,可以由前几个参数计算得出:

(分区总扇区数 - 保留扇区数 - 文件分配表扇区数 X 2) / (文件分配表扇区数 X 512 / 4),结果向下取整即为每簇扇区数。

由此得出该分区每簇扇区数为8,注意每簇扇区数必为1、2、4、8、16、32、64其中一数值,FAT32分区簇最大为32KB。

然后再点击“访问”菜单,选中模板分区的“启动扇区(模板)”项,把这五个数值填入相应的编辑框,并按回车确认,修改后的数据(以蓝色显示)将写入模板扇区,注意此时千万不要点击“保存”,因为这些数据对于模板分区DBR来说是错误的,一旦写入硬盘,将可能造成模板分区不能访问,甚至导致死机、系统无法启动。
  
选中模板扇区,按下Ctrl + C,转到问题分区启动扇区,将光标移至偏移0处,点击“编辑”菜单,选择“剪贴板数据-写入”。

  
移至问题分区6号扇区,将剪贴板内容写入备份扇。
  
别忘了将模板分区6号扇区的内容复制到启动扇区,还原模板分区DBR的内容。

检查一遍写入的各个扇区,确认没有写错以后,点击“保存”按钮。关闭winhex,双击问题分区,于是所有的分区数据又呈现在眼前啦。

回复 支持 反对

使用道具 举报

10#
发表于 2008-4-3 20:06:51 | 只看该作者 来自: 广东深圳 来自 广东深圳
学习了,先收藏起来以后慢慢来研究。在此先谢过!

回复 支持 反对

使用道具 举报

11#
发表于 2008-4-3 20:22:36 | 只看该作者 来自: 广西南宁 来自 广西南宁
学习了,谢谢各位老师给出的东西,真是好东西啊!谢了谢了~~~

回复 支持 反对

使用道具 举报

12#
发表于 2010-4-9 10:10:56 | 只看该作者 来自: 河南许昌 来自 河南许昌
呵呵来看看

回复 支持 反对

使用道具 举报

13#
发表于 2010-4-11 23:36:50 | 只看该作者 来自: 上海 来自 上海
我好想要关于DBR的资料,找了几天了都没有找到

回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图


芯片搜索

快速回复