迅维网

标题: 软件大牛首次从硬盘固件层面上修复操作系统 [打印本页]

作者: tnzx    时间: 2014-8-22 10:55
标题: 软件大牛首次从硬盘固件层面上修复操作系统
本帖最后由 tnzx 于 2014-8-22 14:11 编辑

    本人现在在开发多种android设备,PC上装的都是linux系统。有些安卓设备烧写固件要在XP下面操作,所以就在linux系统中装个windows XP虚拟机。昨天搞智能手表,固件无法在虚拟机中烧写,在办公室找来一台不用的旧电脑。竟然开不了机,揭开机箱,用个平板电脑的喇叭接到主板的喇叭接口上,不停地叫,重插内存可以开机了,装上相应的软件和驱动后,成功烧写手表固件。
    且把闲话修说直说正话,看到那个机箱里面有块闲着的多余硬盘,st的500G 7200.12串口硬盘,电源和数据线都没有连,于是我就把线都连上,开机竟然提示S.M.A.R.T  status BAD,要按F1继续。检查那个盘上的XP可用,linux不能用,在启动时卡死在检查文件系统那个界面上过不去。硬盘过保了,公司的电脑维护人员技术菜得很,看到小毛病就直接换盘了。
    从好盘启动,用HD Tune查看坏盘的健康值,“重映射扇区计数”竟然是4035,但扫描整个磁盘未见有坏道。网上有人说,开机bios显示那种提示是G表满了。临时查查G表和P表的概念,P表是出厂前写的坏扇区记录;G表也用来记录坏扇区,但是跟P表有本质的区别,出厂后发现某个扇区坏了就写个记录到其中,并且还要把这个坏扇区重新映射到一个备用的好扇区。不管是P表还是G表记录的坏扇区,磁盘扫描工具是无法检测到的,因为它们由硬盘屏蔽了。如果是G表满了,再出现坏扇区后就无法再映射到其它的备用好扇区了,只能由操作系统的文件系统自己去禁止使用这个扇区了,普通的磁盘扫描工具可以扫描到这类坏扇区的,但是HD Tune的确没有扫描到坏道,难道这个“重映射扇区计数”值是虚假的?把G表清理后再扫描就可以彻底知道真相了。用com口修ST硬盘以前也有听闻,今天也来玩玩。嘿嘿!
    直接把串口的tx和rx接到硬盘上。下载了一个stcomtool,选好com口,坏硬盘插上电源,文字窗口竟然无反应。把连到硬盘的tx和rx调换后,重新插拔坏硬盘的电源线,终于看到接收到乱码了,波特率调成38400再试终于看到硬盘返回的文字了。

    点"查看P表",出了一大堆文字,出了好几分钟才结束。再点"查看G表",硬盘怎么也无反应了。重新插拔电源有反应了。重试了几次,每次点"查看G表"后,硬盘必定要死,必须断开硬盘电源十几秒钟再通电才有反应。之后就试试"清健康值","清SMART"也点了,再关机重启,不再报错直接进系统。操作竟然生效了,HD Tune里面的健康值也改变了。嘿嘿!  下图是"清健康值""清SMART"之后HD Tune显示的硬盘健康值。

    我以为既然查看G表硬盘会死,那么清G表硬盘也会必死无疑。但是还是抱着一线希望去尝试点一下"清空G表",竟然成功了,再点"查看G表",竟然出数据了,没有死了。


    之后用hd tune扫描也未见有坏道,扫描完毕,g表也仍然是空的。试一下,那个硬盘上的XP和linux系统都可以正常使用了。个人理解:应该只是硬盘上的核心数据被破坏了,而存储这些核心数据的介质并没有坏,以这个硬盘为例,应该是G表数据被破坏了,本来完好的扇区被无故重定向,这里说明一下,这种因G表数据破坏所引起的飞来横祸般的重定向,跟硬盘发现坏扇区之后执行的重定向有本质的区别,硬盘发现坏扇区之后执行的重定向不仅仅修改了一个G表项,还把数据写入到重定向之后的扇区,而前者仅仅只是破坏G表项,并没有把原扇区的内容写入重定向之后的扇区。这样操作系统的数据完整性被破坏,一个操作系统即使有一个bit的数据改变了都可能无法使用了,更何况那么多扇区数据被改变了呢。清理G表后,使用原来本来就完好的扇区数据,数据的一致性也恢复了,linux系统可以正常工作了。到底这些G表数据在flash上还是在磁碟上,我也一无所知。反正我只知道硬盘和我开发的各种安卓设备一样有cpu有内存有永久存储介质,很多因素会引起永久存储介质上的数据被破坏,破坏后需要修复就能正常使用。菜鸟之愚见,大牛勿喷。

作者: wfcctv    时间: 2014-8-22 11:46
我虽然很努力的看完,但还是不明白
作者: 野兽619    时间: 2014-8-22 12:04
真的 是跟楼上有同感啊,难道我修为不够深?
作者: tnzx    时间: 2014-8-22 12:58
wfcctv 发表于 2014-8-22 11:46
我虽然很努力的看完,但还是不明白

仅仅就是清理了一下硬盘的健康值、smart和G表而已。
作者: tnzx    时间: 2014-8-22 12:58
野兽619 发表于 2014-8-22 12:04
真的 是跟楼上有同感啊,难道我修为不够深?

仅仅就是清理了一下硬盘的健康值、smart和G表而已。
作者: 小CAI鸟    时间: 2014-8-22 13:23
  说实话我还是一菜鸟   不懂
作者: kissman    时间: 2014-8-22 14:00
看不懂哦呵呵  
作者: 野兽619    时间: 2014-8-22 14:27
tnzx 发表于 2014-8-22 12:58
仅仅就是清理了一下硬盘的健康值、smart和G表而已。

哦。。。。还是不了解
作者: 974207072    时间: 2014-8-22 15:18
楼主这是数据恢复吗    没看懂
作者: tnzx    时间: 2014-8-22 15:36
974207072 发表于 2014-8-22 15:18
楼主这是数据恢复吗    没看懂

你理解的数据恢复是什么?反正我以为数据恢复就是要获得硬盘上原有的数据,我的操作系统不能启动了,清空G表后能够启动了,说明是G表被破坏的原因造成,硬盘读不到原来扇区上的数据了,读到的是重定向之后的扇区上的数据。清空G表后读到原来的数据了,数据恢复了。
作者: の淡定哥    时间: 2014-8-22 19:20
那是什么软件
作者: の淡定哥    时间: 2014-8-22 19:20
不太懂啊
作者: tnzx    时间: 2014-8-22 19:57
の淡定哥 发表于 2014-8-22 19:20
那是什么软件

HD Tune仅仅只是一个磁盘检查工具而已。
stcomtool说白了也只是一个把界面操作转化成硬盘指令的工具,你如果熟悉指令,直接在串口控制台下面操作也行,类似dos
作者: tnzx    时间: 2014-8-24 17:01
本帖最后由 tnzx 于 2014-8-24 20:10 编辑
の淡定哥 发表于 2014-8-22 19:20
不太懂啊


仅仅就是清理硬盘的健康值、 smart和G表
作者: 海上权威    时间: 2014-8-24 20:39
估计也是固件们的事,G表无故损坏,不过这个反应的不是忙,可能还不够严重。
作者: xbxb101    时间: 2014-8-27 23:43
不懂 ,甚至都没明白楼主用的什么软件,我只知道hdtune能看盘的信息,不知道怎么用他修
作者: tnzx    时间: 2014-8-28 12:00
xbxb101 发表于 2014-8-27 23:43
不懂 ,甚至都没明白楼主用的什么软件,我只知道hdtune能看盘的信息,不知道怎么用他修

STComTool是一个用com线修ST硬盘的工具。
作者: 康锅锅    时间: 2014-8-29 09:23
听的有点云里雾里。。。。。
作者: Samsug    时间: 2014-9-11 16:11
表示一点没看懂
作者: daijiandong    时间: 2014-9-16 16:38
呵呵, 没有看懂
作者: 电脑维修者    时间: 2014-9-16 21:51
还真厉害 啊
作者: agph1    时间: 2014-9-18 15:30
不太懂硬盘。过来了解下, O(∩_∩)O谢谢




欢迎光临 迅维网 (https://www.chinafix.com/) Powered by Discuz! X3.4