希捷F3系列硬盘在启动一个指令后,会自动的跑一些测试过程,在此期间硬盘终端界面会显示出大量的信息,并不断的刷新。这个过程被大家称为 “B级自修复流程”。那么,所谓的B级自测试指令怎么使用呢,它主要是用来做什么用途呢?为此,MRT固件实验室制作了一个文档,详解B级自测试指令和其 使用方法。
大家以前用过 DOS 操作系统的可能知道有一种 BAT 批处理文件,用户可以事先定义好一些 DOS 命令,然后一起执行。DOS 下的批处理文件功能强大,不但可以批量执行命令,还定义了循环和条件判断语句,可以分条件执行和循环执行某一部分。实际上,在希捷 F3 系列硬盘的终端模式中也支持类似的批处理机制。这就是希捷F3的批处理系列指令。在硬盘数据恢复过程中有时我们使用此方法可以事办功倍,下面我们来了解下希捷F3终端系统中所有与批处理有关的指令:
第一个指令是6级下的“D” ,它用来显示出当前硬盘中存储的批处理文件的内容。每个批处理文件有一个编号,从十六进制的0x0到 0xFF,可以看出最多可以定义256个批处理文件。D命令有一个参数,就是要显示的文件编号。这就需要事先知道批处理的文件编号。D命令格式如下:
查看批处理文件内容 D[文件编号]
值得一提的是,希捷硬盘在出厂之前,工厂会预先定义一些批处理文件存储在硬盘中,所以每个硬盘都有一些工厂预定义的批处理文件。比如已知有一个编号为十六进制 0x16 的批处理文件是工厂预定义的,那么我们要查看它的内容的话,只需要在 6 级下面输入 D16,回车,然后批处理文件内容就会显示出来,下图是在 MRT 希捷程序终端窗口中的演示:
可以看到编号为 12 的批处理文件一共有从 0x00——0x12 共 0x13 行,也就是 10 进制的 19 行,每一行都是
一个普通的终端指令。比如第0x4行的“/1” ,就相当于进入1级模式。
现在我们能查看一个已有的批处理文件了,那么,我们怎么建立一个自己的批处理文件呢?这需要用到6级
下的E 指令,格式如下:
输入批处理文件 E[文件编号]
这里要注意的是,由于工厂预定义的批处理文件已经占据了一些文件编号,所以用户自定义的批处理文件编
号范围只能是0——2。我们输入E,然后回车,这时候终端的命令提示符就会进入编辑状态,这时候我们可以输
入想要定义的批处理命令,每个命令末尾用一个回车来换行。当我们输入完所有的批处理命令后,怎么退出编辑
状态呢,也很简单,只需要输入一个管道符号“|”就可以了,也就是 Shift+“\” ,出来的就是符号“|” ,这样就退出了批处理编辑状态,硬盘会进行批处理语法检查,如果没有问题,会自动保存这个批处理文件。如果批处理
有语法错误,硬盘会给出出错提示。我们在MRT 的终端下演示下建立自己的批处理文件:
上面建立的批处理文件, 先进入2级, 然后执行x指令查看段位表, 然后进入1级, 执行N1指令清除SMART,
最后输入管道符号“|” ,退出编辑状态。硬盘显示出一段提示,然后回到命令提示符“F3 6>”下面。这里要注意,
用户自定义的批处理,断电后就会丢失的,所以硬盘会提示,用户自定义的批处理只能在不断电的状态下执行。
我们已经建立了自定义的批处理文件,现在怎么来执行它呢?这要使用6级下的B 指令。
执行批处理文件 B[文件编号],[执行选项]
第一个参数是要执行的批处理文件编号,第二个参数是一个位掩码,用来控制执行的细节,有如下可选的掩
码位:
0x08 失败时继续。
0x04 执行所有批处理
0x02 单步执行
0x01 执行时把批处理文件的内容显示出来
比如,我们要执行所有的批处理文件,就输入F3 6>B,4
这个指令会逐个执行所有的批处理文件,执行完一个文件后,会继续执行下一个文件,直到所有被定义的批
处理文件都被执行完。由于厂家出厂时预定义了很多批处理文件,所以全部执行完需要很长时间。
如果我们只想执行指定编号的批处理文件,那么就在第一个参数填上编号就行了。比如,在前面我们建立了一个编号为0x02的自定义批处理文件,那么,我们要执行它的话,输入 F3 6>B2 就可以了。下面是操作演示:
我们看到,输入B2并回车后,终端显示Executing Batch File 02
然后就开始执行我们之前定义的批处理命令了。
如果要执行工厂预定义的批处理怎么办呢?工厂预定义的批处理都是从编号 0x10 开始的,也就是说我们输
入类似这样的指令:
F3 6>B10
F3 6>B11
F3 6>B12
就可以逐个执行工厂预定义的批处理。
以上就是批处理命令的常见用法。有时候,我们会看到工厂预定义批处理的内容里面含有一些逻辑判断和循
环控制标记,这就是批处理的高级功能。以下简单做一个介绍:
上面的批处理内容中,第 9 行有一个“@”符号,这是用来标记行号的, “@”后面跟一个数字,这个数字
就是标签号,然后就可以用跳转指令跳转到这个行。主要用于批处理中需要分情况执行(分支执行)的地方。
那么像跳转啊,循环啊这些指令怎么表示呢?希捷里使用星号“*”来表示一个高级批处理功能。星号后面
跟一组参数,不同的参数就可以表示不同的操作。
星号指令只能出现在批处理文件中,它的格式是:
*[功能号],[参数1],[参数2],[参数3]
其中参数1、参数2的作用是由功能号决定的。
功能号有如下可选值:
0 – 无操作
1 – 暂停批处理执行,然后让用户按任意键继续
2 – 延时由参数1 指定的毫秒数。比如 *2,3000 就是延时3000毫秒
3 – 跳转指令,跳转到由参数1指定的标签处运行。
4 – 条件跳转指令。增加首地址,如果增加后没有环回,就跳转到参数1 指定的地方执行。
5 – 清屏幕。就类似DOS下的CLS 指令一样。
6 – 如果发生错误就停止执行
7 – 设置从参数2 到参数1 为循环次数
8 – 递减参数2指定的循环计数器,如果循环计数器不等于0,就跳转到参数1指定的地址执行。
9 – 清除执行错误信息
A – 用参数1指定的错误码更新批处理错误信息标记。最小计数由参数2 指定,最大计数由参数3 指定。
B – 显示活动错误日志并与批处理错误信息标记比较,以确定批处理是否失败。
在批处理中插入星号指令就可以让批处理执行循环,跳转,条件判断等高级用途。
最后还有一点,在批处理文件的执行过程中,如果想停止它的执行,只需要按下ESC 键就可以了。 最后列出一些指令使用示例:
执行所有批处理: F3 6>B,4
执行 0x10号批处理: F3 6>B10
显示 0x10号批处理内容: F3 6>D10
创建用户自定义批处理,编号为0x2 : F3 6>E2
本文系转载,如有侵犯版权问题,请通知。我们立即删除。
转载请注明:成都千喜数据恢复中心 » 希捷F3系列B级批处理指令详解