MRT希捷模块基本操作演示
MRT希捷模块提供了对希捷F3系列硬盘的维护功能。其操作界面如下:
首先启动MRT希捷模块,程序会读取希捷硬盘的模块表和CP对象表,并列出硬盘的基本信息。
其中“物理扇区大小”表明了当前硬盘使用的技术,如果是512Bytes表示是普通硬盘,如果是4096 Bytes,表示该硬盘是最新的采用4KB技术的硬盘。
在 诊断 - 基本状态中,用户可以重新刷新模块列表和基本信息。
在获得模块列表和CP列表之后,可以将他们全部备份出来或者单独打开。
要单独打开模块列表,请选择 工具 - 固件区对象查看 - 模块目录表
列表中列出了硬盘上的模块列表,选中要读取的单个模块,然后双击,程序将读取这个模块并在一个16进制编辑器中打开模块数据。
16进制编辑器提供了常用的16进制数据编辑功能。可以在这里把单个模块保存为文件。也可以从文件载入模块数据,并写入硬盘。工具栏位于16进制编辑器上方,当鼠标移动到工具条按钮上时,会显示消息提示,表明该按钮的功能。在程序所有的工具栏中,都支持这样的特性。
希捷的模块列表包含了希捷的微程序,地址编译器和各种数据文件,如果这些模块损坏或出现错误,将导致硬盘故障,无法读取数据。当前视频只介绍希捷程序的基本操作,关于希捷各种固件模块的详细介绍和希捷硬盘维修实战,将在以后的视频教程中陆续推出。
要打开CP对象,请选择 工具 - 固件区对象查看 - CP目录表。CP对象位于希捷硬盘的内存或者ROM区域。CP对象可以读取并保存,也可以写入,但写入时,仅在内存中生效。每个CP对象条目后面有详细的介绍,指示出该CP的用途。其中,ID为15的CP是希捷的整个ROM模块,而ID号0,1,4分别是RAP,CAP和SAP,其中RAP保存读写参数,段位表和用户区与服务区入口地址,CAP保存硬盘控制参数,SAP保存硬盘伺服参数,它们都是重要的模块。
选择 工具 - 固件区对象查看 - 硬盘RAM,可以直接读取希捷硬盘的内存数据。只需要填入要读取的内存地址和长度便可。最近读取过的RAM区域列表会记录最近读取的地址,下次只需要双击便可再次打开。
要连续备份或者写入多个模块,请使用 工具 - 固件区备份与还原 菜单下的功能。
“硬盘资源全备份”可以备份所有模块和CP对象到文件中。工厂程序会用当前待维修硬盘的ID号为名称建立一个文件夹,备份的所有文件将保存到这个文件夹中。新建的文件夹默认在 D:\UserDataFile\ 路径下,当然可以修改这个默认路径,只要在主程序中点“设置”,然后填写新的路径,确定后,关闭并重新启动程序就可以生效。
点击“新建文件夹”对话框中的“浏览”按钮,可以浏览该目录已经建立过的文件夹,然后可以选中一个已有的文件夹作为工作目录。
进入资源备份对话框后,勾选需要备份的资源。然后点确定,指定的资源将全部备份到文件中。“备份到文件夹”框中列出了备份到的路径,默认是以硬盘ID命名的工作目录,也可以临时修改备份的文件夹。
备份完毕后,备份的文件通过打开工作目录就可以看到,具体操作是 工具 - 打开当前工作文件夹可以看到备份的文件都保存在这里。
要批量写入模块,请打开 工具 - 服务区备份与还原 - 模块批量写入,这时会弹出模块批量写入的对话框。对话框中将默认显示出工作目录中的所有模块文件。勾选需要写入的模块文件,然后点击“开始写入”按钮,选中的文件将被写入硬盘,文件名将决定写入到哪个模块。写入过程中,可以单击主工具条上的“停止”和“暂停”按钮来停止或者暂停写入操作。
希捷硬盘分为用户数据区和系统数据区(服务区),用户区存放用户数据,服务区存放硬盘固件。MRT希捷程序率先提供了对服务区磁道的直接访问功能,可以直接读写服务区磁道。
要读取服务区磁道,请使用 工具 - 磁道备份与还原 - 按磁道读取固件
注意,该功能需要连接终端串口方可工作。请确认终端串口已连接至硬盘,并且程序也已经连接到正确的串口。希捷硬盘上电后的默认通信波特率是38400,所以程序启动时也是默认此波特率。要确认终端串口确实已经正常连接,请转到“终端”页,然后按下 Ctrl + Z,这是应该能看到T级下的命令提示符,说明终端串口已经连接就绪。注意:按下Ctrl + Z后,硬盘将工作在串口模式,此时无法接受任何ATA指令,要使ATA接口可以工作,请按下Ctrl + T,此时硬盘返回ATA模式,ATA相关功能可以工作。信息栏中的“当前模式”可以为用户方便指示出当前硬盘的工作模式。注意,当硬盘工作于串口(终端)时,请不要使用ATA的相关功能。
当确保终端串口可以正常工作后,此时可以点击右侧工具栏的“串口二进制模式”按钮(或者 终端菜单的串口二进制模式菜单)。这时程序会工作在串口二进制模式下,终端窗口的输出会被停止,交由程序内部管理。此时硬盘工作于串口模式,任何ATA指令将无法执行。如果进入串口二进制模式成功,信息栏的“当前模式”将给出提示,否则,程序会报告错误。
进入串口二进制模式后,点击“刷新服务区磁道列表”,程序将显示出硬盘服务区磁道的列表,通过选择当前逻辑磁头,可以查看指定磁头的服务区磁道。
显示出磁道列表后,勾选需要读取的磁道号码,然后点击“开始读取”按钮,选中的磁道将被读取至文件,文件的保存地址可以在“读取的文件存放地址”中设置。
如果该硬盘的ATA接口可以就绪并正常工作,读取时勾选“使用ATA接口高速传输”将极大的提高读取速度。如果ATA接口不能就绪,则只能使用纯串口读取,这时候可以用过使用更高的波特率来提高速度。
更改波特率需要先退出串口二进制模式,然后选择 终端 - 同步设置波特率。460800是推荐的默认值,适用于大多数希捷硬盘,在此波特率下速度较快且传输稳定,当然也可以尝试别的速度。转到终端,可以看到更改波特率的终端指令其实是B460800.在终端多次按下回车,如果可以看到T级命令提示符,说明速率修改成功。
速率修改后,重新进入串口二进制模式,然后再次读取磁道,可以看到现在速度快多了。对于存在坏扇区的磁道,可以勾选“有错误时继续”,这样磁道将被尽量读出来,有错误的扇区将全部显示在日志中。在多次备份的时候,勾选“跳过已经存在的磁道文件”,那么上次已经备份过的磁道将不会重复备份。磁道读取测试用于测试服务区的好坏,它可以帮助我们判断硬盘的故障,如果关键的服务区磁道无法读取,则硬盘必定是无法正常工作的。
磁道可以按照逻辑地址读取和物理地址读取,一般推荐使用逻辑地址,它将不包含缺陷。
磁道高级读取工具允许用户直接输入磁道号进行读取,注意:0x123456这样的格式,表示是16进制表示的磁道号,而123456这样的格式表示10进制的磁道号。程序可以自动识别16进制或10进制的格式。如果想使用10进制,则输入数值时不要加0x前缀即可。注意:如果使用物理地址,则不区分用户区和系统区,前面部分的物理磁道是用户区,用户区结束后,则系统区磁道开始编址。
读取的磁道会保存为.trk文件,可以用WinHex等编辑器对这些文件进行修改,然后再用磁道写入工具写入硬盘,这样便提供了一种修复硬盘的方式。
磁道写入工具的使用同样简单。单击“应用”按钮可以刷新文件列表。文件列表列出了工作目录中已经保存的磁道文件,勾选要写入的磁道文件,然后点击开始写入。这些磁道文件将被写入硬盘。磁道文件的文件名将指定数据被写到哪个磁道。如果要写入指定的磁头,请勾选“写入到指定磁头”,并填入一个有效的磁头号。勾选“有错误继续后”,即使遇到坏扇区,写入仍将继续。这种方式有时候可以用来修复磁道的UNC错误。
写入磁道时,传输方式有3中,如果硬盘的ATA接口能够工作,推荐使用“ATA高速传输”,这将是最快的。
否则,只能使用纯串口传输。通过设置较高的波特率,可以提高串口传输的速度。
设置完波特率后,仍然需要选择一种传输方式,其中“串口低速传输”是最慢的,但可以支持所有硬盘。“串口高速传输”很快(取决于当前波特率),但仅支持部分系列硬盘,比如F12。选择“串口高速传输时”,默认是整个磁道一次性传输完毕,如果这样做遇到传输失败,可以尝试勾选上“分段传输”试试,这样会降低速度,但能提高稳定性。
注意:直接写入服务区磁道有一定的风险,在这样做之前,请确保您已经充分了解这些磁道的分布和功能。
单击“打开磁道复制工具”按钮可以打开磁道复制工具,磁道复制工具可以快速的把一组磁道的数据完整复制到另一组磁道上去。此功能有一个很重要的用处:将Copy1的固件复制到Copy0中,这样可以快速简单的修复一些故障。在“源”中填入源磁头,源起始磁道和结束磁道,如果只复制一个磁道的话,起始磁道和结束磁道请填写相同的数值,这样就表示只复制一个磁道。
在“目标”中填入目标磁头和目标起始磁道。源磁头从源起始磁道开始的一组磁道将被完整复制到目标磁头的目标起始磁道处。
比如,我们将1号磁头的200,201两个磁道复制到0号磁头的200,201磁道。可以这样操作。
服务区工具 - 编辑硬盘ID,可以修改硬盘的容量的设置,点击确定后,修改将被保存到硬盘。注意需要在ATA接口下工作,所以先确保当前模式是ATA模式。如果刚刚使用过终端,可以在终端下按下Ctrl + T
其它的三个菜单可以分别修改RAP,CAP,SAP中的部分内容,他们都位于硬盘的ROM中,注意修改将被直接保存到硬盘的ROM,请谨慎操作。
服务区中的 清除硬盘密码工具,可以在不丢失用户数据的情况下快速清除安全子系统中设置的硬盘密码。我们来演示一下:
首先,使用安全子系统的功能给硬盘设置一个用户密码。
好,现在密码已经成功设置,密码为32个8
硬盘已经无法读取了。
现在,使用清除密码功能来解开密码。
先设置一个较高的波特率,然后进入串口二进制模式。
开始清除。
可以看到设置的密码已经显示出来,同时,密码已经被清除了。
用户数据已经可以正常读取,说明密码成功清除。
运行固件升级脚本 是用来执行希捷固件升级脚本的,这种脚本可以执行一些操作,更新硬盘的固件区。我们在MRT安装包中的 “数据资料\希捷固件升级脚本”文件夹中提供了一部分希捷的标准固件升级脚本。对于某些故障,可以尝试直接刷入对应的固件升级脚本,便可以修复。我们来演示一下:
首先,我们打开一个模块,并破坏它
我们将1D模块破坏并写入硬盘。可以看到1D已经被填充为FF
重启硬盘后,固件区将不可访问。
现在我们重新刷写该版本的固件升级脚本,这样就可以修复1D模块。当BSY位熄灭后,升级脚本就运行完毕。然后重启硬盘。
可以看到固件区已经可以访问,1D模块也已经被修复。
用户扇区查看器可以快速方便的查看用户扇区。当进入串口二进制模式时,它会使用终端串口读取用户数据,在普通模式下,将使用ATA读取用户数据。当ATA不能就绪时,可是尝试使用串口读取用户数据。首先设置一个合适的波特率,然后进入串口二进制模式。
在读取新扇区对话框中,输入LBA地址和长度。如果进入了串口二进制模式,下面的选项将会开启。如果ATA可以工作,勾选“串口与ATA混合传输”可以提高速度。当地址编译器出现故障,勾选“当逻辑LBA读取失败,尝试使用物理地址”,可以最大限度读取数据。一般来说,这样可以读取包括前好后坏的硬盘。
现在我们拔掉SATA线,让ATA无法工作,注意观察状态灯已经没有就绪状态。
现在可以用纯终端串口方式读取用户数据。
用终端串口读取用户数据的功能可以扩展到DR中,只需要在DR中选择工厂程序读取,并在希捷工厂程序中进入串口模式即可。这样可以在串口中镜像拷贝用户数据,即使硬盘的ATA接口不能工作。下面是演示:
保存希捷模块处于运行中,然后打开DR
用DR新建一个,由于ATA没有就绪,所以任务手工输入源盘大小。然后更改设置,这时会弹出希捷模块的选项。如果ATA可以就绪,勾选“串口与ATA混合传输”可以提高速度,否则不要勾选它。然后开始传输,此时终端串口将开始工作。可以看到现在是通过终端串口在拷贝数据。要中途更改设置,可以先停止任务,然后转到希捷程序,更改完毕后,重新返回DR并继续任务。
注意,如果中途硬盘断电,上电后硬盘将重新工作在38400波特率,请注意在程序中同步通信速率。
诊断 - 设置最大LBA 用于裁剪硬盘容量。
清除缺陷表功能用于清除滑动缺陷表(Slip List)和Alt缺陷表。
第一个清除方式是临时性清除,仅在硬盘内存中更改。第二个是永久的,会写入硬盘。第三个不是清除,而是从硬盘中重新加载缺陷表到内存。
下面会即时显示对应的终端指令,可以发送到终端执行,也可以发送到ATA执行,效果是一样的。
格式化与重建编译器工具主要用来格式化硬盘或者做编译器再生。
打开后,默认的选项是做编译器再生,常用的选项是选中“处理主缺陷表”,然后根据情况,可以选中或者不选“处理增长缺陷表”。注意做编译器再生时务必选中“禁用用户区域格式化”,否则用户数据会被格式化掉。
左下角会即时显示对应的终端指令。
常见问题解决,提供了对前好后坏的处理,使用非常简单,首先设置合适的波特率,然后进入串口二进制模式。然后点击“开始处理”,程序会自动分析硬盘故障。如果能确认故障,程序会自动修复,修复完毕后,前好后坏就解决了。如果提示“故障确认失败”,表示该硬盘的前好后坏是其他原因引起的,那么就需要尝试别的处理方案。
缺陷表功能 - 查看隐藏缺陷,可以列出该硬盘是否存在隐藏缺陷。如果存在,则该硬盘很可能会存在前好后坏故障,则可以帮助我们确定硬盘的故障原因。
缺陷表功能 - 添加与移除缺陷,可以更改缺陷表。如果缺陷表错误会导致扇区不能正常读取,这时可以添加一些缺陷或者移除不正常的缺陷。输入缺陷地址和长度,然后确定即可。更改缺陷表后,可能需要做一次编译器再生,缺陷才会生效。
终端菜单中列出了与终端有关的功能。
连接属性 - 端口设置,列出了程序使用的波特率和其他设置。如果硬盘中途断电,重新上电后,默认是38400波特率,此时应该设置程序中的终端也使用此波特率。
常用终端命令 列出了经常使用的终端命令,用户可以编辑和增加这些终端命令。
点击终端命令编辑器,选中需要编辑的命令名称,就可以在右边的框中编辑它。点击完毕后,点“更新修改”,这时才会生效。
要新增命令,先点击“清除文本”,然后在右边的框中输入命令的名称和命令需要进入的级别和命令文本。然后点击“添加”,新命令就添加进去了。
以上就是希捷模块的使用说明,谢谢大家,再见。
以上资料来源于MRT固件实验室,网址: http://www.mrtlab.com