模块与资源备份目录

 

       大家好,上一节中我们了解了Mrt工具中WD磁道方面的基本知识与操作,本节我们来看看MRT工具中WD西数硬盘中关于模块的操作以及资源备份的目录结构。

 

       本视频和文档来源于MRT固件实验室

       更多信息请访问我们的网站 http://info.mrtlab.com

 

       首先我们来了解一下模块的概念。

 

       模块:硬盘固件数据的一种管理单位。硬盘启动与运行的时候,会按照需要,将这些模块文件一一加载到内存中执行。只有这些模块数据是正确的时候,硬盘的才能够正常的进行工作。

 

       模块数据是如此重要,所以,我们的软件提供了非常强大与方便的模块数据读取查看,写入,编辑等操作。并且,针对不同的硬盘故障,制作了一些特殊的功能。其实这功能大部分也是对于模块数据的操作而已,只不过是程序自动完成,也就省去了我们去理解模块数据内容,和手动修改它们的这些实际操作。

 

       现在,我们来了解一下对于模块的基本操作:

       1.普通的读取模块

       1)打开模块列表,菜单位置:“服务区操作-》模块列表”当然,刚刚看到了还有2个地方可以打开它,一个是工具栏,一个是“工具-》固件对象查看-》模块列表”,这个地方。我们打开模块列表,可以看到,每个模块有它的ID,重要级别,长度,说明。这几个基本信息。还有更加详细的信息。

       在主界面上的右边有一条工具栏,这里我们主要介绍下面3个按钮。我们看到下面3个按钮中,第二个凹陷下去了,这是默认情况。我们点击第一个试试。发现,每个模块多了一个信息:“ABA地址”。点击最后一个按钮,发现ABA地址没有了,它换成了C/H/S信息,他们分为3个栏目显示:“磁道” “磁头” “磁道内扇区偏移”。可能有人问为什么不显示到一起,这是为了我们的列表看起来简单清晰。并且,它还有有这另一层含义。当我们按照默认列表显示的时候,我们双击一个模块,它将按照ID 的方式读取数据:我们只给硬盘一个ID,让它把这个模块的数据发送给我们。我打开了一个模块,通过新打开的页,我们看到它是代表自己是0031号模块,读取方式为ByID。下面有一个状态栏,这个地方也显示了当前这个HEX编辑器中的数据是属于哪个模块,长度是什么。

 

       我们换磁道方式来读取它看看。要查看它都是一样的操作,只要我们把右边的读取方式开关变一下就可以。为了更加的方便,这个读取方式开关也支持“热切换”,嘿嘿,自己创建一个概念。可以看到,开始是以磁道方式读取的,现在我们变了读取方式,然后在HEX编辑器的工具条上点一下刷新按钮,它的数据就变成以ID方式读取的了。使用就是这么简单。

 

 

       2.批量读取模块并保存

       在诊断-》服务区操作-》模块对象操作,下有3个菜单项。它们分别是批量保存,批量写入,从SA查找模块并保存,这3个功能。直接在诊断菜单旁边的服务区操作下也可以找到它们,这是程序设计的一个快捷方式,以便方便用户。我们进入其中看一下保存模块的使用。在任何需要我们保存数据的地方,如果程序还没有创建工作文件夹,我们会提示大家创建一个工作文件夹,用来保存我们的数据,提供了让用户自行选择的权利。浏览那里可以选择我们想存放的文件夹,不过我们这个文件夹的命名还是很科学的,推荐用户保留。

 

       打开功能出现如此界面。它有一个浏览,也提供了您想自己选择保存路径的权利。在MRT程序中,任何在列表中需要多选的地方大都一致的有一个右键菜单,它可以方便我们进行多项选择。

 

       一般,我们需要先选择备份数据的读取方式。默认是磁道方式,我们可以随便选其它方式。这个地方的列表大概与模块列表那里一样。当用磁道或ABA方式读取的时候,可以让我们选择COPY0或者COPY1

 

       这里,我们讲解一下,ID读取,与磁道或ABA读取的却别。大家知道磁道和ABA是模块的地址。而硬盘的固件数据大多是分为COPY0 copy1的,这2个备份的地址不可能相同。所以按照磁道或者ABA读取的时候,我们可以选择读取其中一个备份,而一次也只能读取其中的一个。当用ID方式读取的时候,我们只给硬盘一个模块的ID号,此时,我们并不知道硬盘返回给我们的是COPY0或者COPY1,实际上,如果COPY0是好的,它就给我们返回COPY0的数据,如果COPY0的数据坏了,它就给我们返回COPY1的数据,当然这是建立在COPY1的数据是好的情况下。如果COPY1的数据也有问题,那么用ID方式读取模块数据就会失败。此时我们如果换成用磁道或者ABA方式读取,一般情况下可以读取成功,因为这时候硬盘会如实的安照我们给它的地址返回数据给我们。所有,在我们选择ID读取方式的时候,软件屏蔽了拷贝的选择。

 

       我们还发现,在COPY0COPY1后,还有一个选项,Composite,它是再用磁道或ABA读取的时候,如果某个模块的COPY0的某个扇区恰好是坏块,此时程序便会转而读取COPY1的数据,用COPY1的数据来填充它,以便显示给用户的数据最全。

 

       其实,备份模块操作很简单,此处给大家讲了一些备份,与读取方式之间的关系,以便大家可以更加随意的运用软件。

 

       做了一个备份操作。还有一个SKIP ERR选项,勾上它的时候,如果遇到坏扇区,那么会跳过此扇区,继续往下读,如果不勾它,那么遇到坏扇区的时候,便认为,当前模块数据损坏不可读,直接返回错误,然后读取下一个模块。

      

       3.批量写入模块

 

       写入模块,需要我们之前得备份。但我们点击浏览,选择到拥有模块文件(.rpm格式的文件),列表便会列出这些文件的信息,我们选择它们,就可以直接写入硬盘。

       程序时保证,如果数据是我们用MRT备份出来的数据,再写回去,硬盘是不会出问题的。这是最基本的软件质量保证。

 

 

       4.从磁道或者ABA查找模块

 

       这个功能可以说是MRT WD模块相对于其它工具的又一个亮点。此功能需要保存数据,当它在磁道上找到模块数据的时候,就会保存下来。

 

       有时候,当01模块描述的其它模块信息不正确,那么我们通过01所读取的模块数据肯定是不正确的。或者某些时候,01读取不了。这时候,只要我们能够读取磁道或者ABA,我们就可以用此功能将磁道上的模块数据文件给备份下来。

 

       用法其实也很简单,就选择 一个备份文件路径,搜索的起始地址与长度,要搜索的模块,以及搜索的方式5个选项而已。

 

       地址通过ABACHS两种方式描述,程序要求它们保持一致,即左边的ABA地址,一定是与右边的CHS地址所定位的扇区位置是一致的。

 

       如果我们只知道ABA12345,不知道它的CHS地址是多少,没关系,点击一下中间的箭头就行了。或者,我们改变CHS地址,在点击一下另一个箭头,那么,ABA地址也会变成相对应的地址。

 

       点击一下“按最大范围搜索”,它会自动将ABA置为0,并将对应的CHS地址填好。并且搜索长度填到最大。

 

       搜索模块可以搜索所有模块,也可以指定一个模块ID进行搜索。

 

       下面的就是点击搜索方式,磁道或者ABA了。

 

       最后点击确定即可开始任务。

 

       任务的进行过程中,会打印出日志,格式也很明了。当我们停止了搜索任务的时候,程序会弹出一个列表,这个列表包含了搜索到的所有模块的信息。我们可以像使用平常用的那个模块列表一样使用它。

 

 

 

最后,我们来看一下,MRT中资源备份的目录结构吧。

 

       可以看到,工作文件夹的命名是:型号-固件版本-序列号-ROM版本。

      

       可以观察到,我们这个盘的目录是第二个文件夹,我们点进去看看。

      

       一般工作文件夹下,都有一个DATA文件夹,它专门用来存放各种固件数据。可一看到,它包括模块,磁道,ROM,等。

       Modules文件夹只用来存放模块数据。ByID,用来存放使用ID方式读取的模块数据。COPY0,COPY1用来存放用地址(ABA或者磁道)方式来读取的数据。Composite表示用组合方式读取的数据,就是刚刚在备份模块那里讲解的那种方式。

       SearchInTracks看文件夹名也知道,它就是刚刚用搜索功能备份的模块文件了。呵呵,我自认为层次还是很分明的。

       可以看到模块文件名的后缀都是:.RPM

 

       磁道文件的文件名命名方式:XX磁道编号_磁头编号.trk

 

       ROM模块文件,都以.bin结尾。存在于Data\ROM文件夹下。

 

       还有一个地方。

 

       资源全备份的文件夹,在SAbACKUP下。

 

       没有看到磁道文件夹,是因为还没有备份磁道就停止任务了。

 

       本节就到此为止,更多信息请关注mrt官方网站:

       http://info.mrtlab.com