Winhex SD卡内文件的物理扇区大小查看地址 就这些分了 麻烦

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(1549)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'SD卡的逻辑地址,物理地址',
blogAbstract:'硬盘的数据结构:共分六部分1.主引导记录MBR& 0柱面0磁头1扇区 硬盘启动时所用& 一般为隐藏扇区,除FDISK之外都不能访问2.主分区表 & 活动分区、起始和结束磁头扇区和柱面号3.分区引导记录4.文件分配表FAT5.文件目录表FDT&FAT32无FDT,FAT后紧跟数据区6.数据区& MBR(masterboot record),即主引导记录,有时也称主引导扇区,位于整个硬盘的0 柱面0磁头1 扇区(可以看作是硬盘的第一个扇区)。\r\nbios在执行自己固有的程序以后就会jump到mbr中的第一条指令。将系统的控制权交由mbr来执行。\r\n在总共',
blogTag:'',
blogUrl:'blog/static/2',
isPublished:1,
istop:false,
modifyTime:6,
publishTime:8,
permalink:'blog/static/2',
commentCount:0,
mainCommentCount:0,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'-1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}用户名:华山剑客
文章数:19
评论数:21
访问量:64985
注册日期:
阅读量:1297
阅读量:3317
阅读量:587847
阅读量:474461
51CTO推荐博文
用WINHEX恢复SD卡中丢失的数据
一个1G的SD卡,里面是去黄山游玩时照的照片和录像,但后来不知什么原因,大部分数据丢失。拿到SD卡后先做镜像,然后用InsDisk加载镜像,镜像加载后在电脑中显示的分区盘符是I(见下图,本文的描述中都以分区表示这个卡的镜像!!)
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/766843.jpg" border="0" />
  从属性中可以看出这个卡中装有923M的数据,打开这个分区,根目录下只有一个文件夹(DCIM),这个文件夹中有156M的数据:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/825859.jpg" border="0" />
打开DCIM这个文件夹,发现里面只有一个文件夹(101CANON),156M数据:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/892500.jpg" border="0" />
打开101CANON这个文件夹,里面有两张图片和一个视频(以两种方式显示,见下图),图片不能打开,文件大小是0(这个后面再分析),156M的数据就是这个视频文件。而且这个视频可以正常播放。也就是说现在这个卡中现在能找到的有效数据只有这个视频。&
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/968515.jpg" border="0" />
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/001437.jpg" border="0" />
接着分析了这个分区的DBR,FAT表(FAT32分区),一切正常,没有格式化的现象。但在分区属性中有923M的数据,而实际看到的只有156M,还有767M的数据没有了,现在要恢复的就是这767M的数据,根据我的经验(不一定正确!!),SD卡的数据一般不是直接放在根目录下,而是放在文件夹中,先看根目录下的数据:&
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/073781.jpg" border="0" />
只有一个文件夹,这个文件夹就是前面看到的DCIM文件夹,猜想有可能是文件夹的目录项丢失引起的,现在找这个分区中所有的文件夹数据,寻找方法如下:&
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/126843.jpg" border="0" />
搜索结果为:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/203234.jpg" border="0" />
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/292203.jpg" border="0" />
1557368扇区
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/340093.jpg" border="0" />
1557376扇区
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/386500.jpg" border="0" />
1557384扇区
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/427984.jpg" border="0" />
1950144扇区
分析:共找到5个文件夹,它们的位置分别在:21408扇区、1557368扇区、1557376扇区、1557384扇区、1950144扇区,其中第1950144扇区中的文件夹是一个空文件夹,没有内容, 这个排除,第1557384扇区的数据好像全部删除,现在在WINHEX中看能看到的几个文件夹所在的扇区:&
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/513937.jpg" border="0" />
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/579296.jpg" border="0" />
能看到三个文件夹,它们所在的扇区是:1557368扇区、1557376扇区、1557384扇区,其中第1557384扇区的这个文件夹删除了,和刚才分析的一样,所以可以判断丢失的那个文件夹是在第21408扇区,再一次分析第21408扇区的数据:&650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/711453.jpg" border="0" />
这个文件夹中有数据,没有删除,它的上级目录在第3簇,现在到第3簇看看:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/177000.jpg" border="0" />
第3簇开始扇区的内容
第3簇中没有数据,因此可以看出是这儿的数据丢失引起的,现在在根目录下手工重建一个文件夹,指向第21408扇区就可以恢复数据了,但先要把第21408扇区中的数据要修正一下,将这个文件夹的上级目录指向根目录:&
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/243578.jpg" border="0" />
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/286828.jpg" border="0" />
接着在根目录下重建一个文件夹,这个文件夹所在的簇号指向第21408扇区所在的簇号就可以把丢失的文件夹恢复,第21408扇区是多少簇呢?有一个简单方法就是直接到第21408扇区去看,从下图中可以看出,第21408扇区是第0896H簇:&
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/380703.jpg" border="0" />
最后在根目录下以DCIM这个文件夹的数据为模板,重建一个001文件夹(所以重建后的001文件夹的一些属性和DCIM一样,比如创建时间),把文件夹所在的簇号改为0896H,重建过程如下:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/440843.jpg" border="0" />
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/486937.jpg" border="0" />
重建后打开这个文件夹,图片和视频都能正常打开:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/547375.jpg" border="0" />
看一下恢复的这个文件夹的数据大小:重建的这个文件夹中有124个文件,共758M的数据:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/599046.jpg" border="0" />
恢复到此,感觉该结束了,但仔细一看,发现一个问题:恢复的这个文件夹的数据是758M,原来的文件夹的数据是156M,总共是914M,但在分区属性中的已用空间是923M,说明还有9M的数据还没有恢复:&
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/735218.jpg" border="0" />
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/778156.jpg" border="0" />
曾记否,开始打开101CANON这个文件夹时看到里面有两个图片不能打开,且容量是0:&650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/832000.jpg" border="0" />
是不是这两个文件0字节引起的呢?现在分析这两个文件:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/886062.jpg" border="0" />
这两个文件的大小都是00,分析第一个文件的数据,
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/954718.jpg" border="0" />
这个文件的起始簇号是02F9CEH(换成10进制是195022),到FAT表中的那个位置去:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/006859.jpg" border="0" />
在FAT表中看到这个文件的FAT信息还在,说明问题就在文件目录项中的文件大小那儿了,因为SD卡的数据在储存时一般没有碎片(从图中也可以看出),解决这个问题的方法:先找到这个文件的结束位置,然后算出这个文件的大小,最后在文件目录项那儿填上正确的大小就可以了,所以现在要找到这个文件的结束簇号:&
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/067437.jpg" border="0" />
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/095062.jpg" border="0" />
这个文件的结束簇号是195953,那么这个文件的大小大约字节数是:(022+1)×8×512=3817472[说明:文件大小=(簇数)×(扇区/每簇)×(字节/扇区)],换算成16进制是:3A4000。(为什么这里算的是文件的大小大约的字节数?因为这样算按最后一个簇的数据全部装完这种假想来计算的,但一个文件的最后一个簇的数据全部装完的情况极少,我曾做过实验,按最后一个簇全部装完的情况改动文件的大小,照片能正常打开,但簇数改大或者改小都有可能导致照片不能打开或者只能打开一部分的现象,以后有机会专门写一个这样专题!!),现在修复这个文件的大小:&
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/160093.jpg" border="0" />
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/201468.jpg" border="0" />
打开这个文件夹(用两种方式显示):
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/277062.jpg" border="0" />
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/308640.jpg" border="0" />
打开这个图片,能正常打开:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/368640.jpg" border="0" />
说明修复成功!!用同样的方法修复另一个文件,成功!!现在看一下这个分区中两个文件夹的大小:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/426812.jpg" border="0" />
分区属性中的已用空间:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/472468.jpg" border="0" />
完全相同!!这说明丢失的数据全部找回(这次恢复的目的是恢复丢失的数据,不是删除!!)
后记:1、这个SD卡的恢复用数据恢复软件也可以恢复成功,因为SD卡的数据在储存时一般没有碎片,用数据恢复软件比较容易恢复成功。2、这次手工恢复主要涉及到重建文件夹和修复文件大小两方面的内容。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&<font color="#ff年6月9日 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & 华山剑客写于湖北随州本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)
09:17:26 22:02:12当前位置: &&
数据恢复之winhex恢复目录乱码
发布时间: 11:04:37&&&&浏览次数:
目前,领域在社会中的需求量很大,经调查,在做过及咨询过的用户说自己的(、、、、、、等)经常出现无法打开需要的文件及打开后文件全部是乱码的现象,那么,遇到以上状况的用户不要焦虑,有以下数据恢复案例为大家参考:
一个移动硬盘,整盘分为一个分区,格式,磁盘属性中显示已使用容量正常,但打开后所有文件夹和文件呈现乱码状态,无法访问,如图所示:
因磁盘内文件容量显示正常,所以判断FAT表应该正常。而根目录下的目录及文件呈现乱码,应该是根目录下的目录项出现了问题。
恢复方案:用winhex进行底层分析,手工修改目录项,使数据得以还原。
过程:对原盘进行全盘镜象,并复制并保存一份副本。
用Winhex打开镜象:
1、可以用&文件――打开&选项(图2)或点击&打开文件&快捷键(图3)打开镜象文件。
打开后,必须选择&专用――解释映象文件为磁盘&选项使winhex把镜象文件解释为以512字节为一个扇区单位的磁盘
2、winhex还有一个&容器&功能,可以以目录树的方式呈现磁盘内的目录和文件结构,可以依次打开&查看――显示&菜单,勾选&容器数据&选项(图5),即可调出容器窗口
单击&容器数据&窗口内的&文件&,在弹出的下拉菜单中选择&创建新的容器&,在弹出的&容器数据&窗口的&容器标题/数字&内为新创建的容器输入一个名字,在此我们为容器输入的名字是&1&,然后&确定&,如图,可以看到容器&1&已经出现在窗口中:
点击&容器数据&窗口内的&文件&,在弹出的下拉框中选择&添加映像&,即可将映象加入到容器中,Winhex已经直接将镜象解释为磁盘:
现在打开的是整个物理磁盘,为了便于分析,可以依次选择图8所示的&访问――分区1(37.3GB,FAT32)――打开&来打开逻辑磁盘。打开过程中,弹出如图9所示的错误提示:
提示中所列出的偏移处的值均是不正常的,现在先转到第一个错误的偏移954C00H处,可以选择&位置――转到偏移量&,在弹出的&转到偏移量&对话框内输入&954C00&,跳转到这个偏移处:
这个偏移量是19110号扇区的起始位置,图中加亮处的各个&E5&值,是删除标记。删除标记应该是目录项的首字节,而目录项的首字节应该是在本扇区内偏移00H、20H、40H等位置,现在都向后位移了16个字节,而前一扇区内偏移954BE0H处的E5位置是正确的。也就是说,偏移954C00H~954CFFH这16个字节是被异常加入的字节。向下翻看,以确定这种位置的偏差情况一直延续到什么位置。翻过8个扇区,到19118号扇区的起始处时,发现这个位置的目录项已经是正常的了,也就是说异常偏移持续了8个扇区:1。
回头看一下上面图的错误列表,发现所有的错误偏移都在这8个扇区的范围内。而由DBR信息得知根目录为19102扇区开始的64个扇区,这8个扇区确实处在根目录内,这就是根目录下的文件和目录乱码的原因。
将19110号扇区~19117号扇区这8个扇区除前16字节以外的其他内容复制并写入19110号扇区起始偏移处,也就是向前提16个字节,恢复其原来面目。
保存更改后,用虚拟磁盘软件加载后,所有根目录内容恢复正常。如图12(图中有关私人或单位信息做了隐藏处理):
重新用Winhex打开此逻辑磁盘,又弹出新的错误提示:
转到错误提示的943B93C00H偏移处:
从图中第二行开始应该是一个子目录,和前面的破坏方式一样,在前面加了16个字节的无用信息,导致正常记录向后偏移。那么为什么在图9所示的错误提示中没有发现这信位置的错误呢?因为,Winhex在打开逻辑分区时,首先会根据磁盘的各个逻辑参数罗列所有内容,先列举根目录,根目录下的某个子目录项如果错误,则不会继续列举其子目录的内容。即便列举,因为目录索引不正确,也不可能正确链接到它所指向的子目录,所以下级子目录中的错误是不会被发现的。而经过第一步的修复,根目录恢复正常后,正确链接到了它所指向的子目录,从而能够发现并提示子目录内容的错误了。
解决方法一样和前面修复根目录一样,移回去就可以了。->【Altera FPGA小组】
各位老师好,我在做DIY数码相框中,下载后可以完整循环显示10幅图片,说明读SD卡没错误。但是读SD卡后发送到串口助手的时候却读不出数据,这是什么情况? 读SD卡部分我没做改变,整个SD卡读操作和串口显示均编译正确,串口调试助手就是不显示卡里的数据!
《在玩转FPGA》中特权老师没给SD卡初始化及读操作串口模块的代码,如果有的话请发我邮箱,,感激不尽!}

我要回帖

更多关于 物理扇区大小查看 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信