希捷F3系列硬盤在啟動一個(gè)指令后,會自動的跑一些測試過程,在此期間硬盤終端界面會顯示出大量的信息,并不斷的刷新。這個(gè)過程被大家稱為 “B級自修復(fù)流程”。那么,所謂的B級自測試指令怎么使用呢,它主要是用來做什么用途呢?為此,MRT固件實(shí)驗(yàn)室制作了一個(gè)文檔,詳解B級自測試指令和其 使用方法。
大家以前用過 DOS 操作系統(tǒng)的可能知道有一種 BAT 批處理文件,用戶可以事先定義好一些 DOS 命令,然后一起執(zhí)行。DOS 下的批處理文件功能強(qiáng)大,不但可以批量執(zhí)行命令,還定義了循環(huán)和條件判斷語句,可以分條件執(zhí)行和循環(huán)執(zhí)行某一部分。實(shí)際上,在希捷 F3 系列硬盤的終端模式中也支持類似的批處理機(jī)制。這就是希捷F3的批處理系列指令。在硬盤數(shù)據(jù)恢復(fù)過程中有時(shí)我們使用此方法可以事辦功倍,下面我們來了解下希捷F3終端系統(tǒng)中所有與批處理有關(guān)的指令:
第一個(gè)指令是6級下的“D” ,它用來顯示出當(dāng)前硬盤中存儲的批處理文件的內(nèi)容。每個(gè)批處理文件有一個(gè)編號,從十六進(jìn)制的0x0到 0xFF,可以看出最多可以定義256個(gè)批處理文件。D命令有一個(gè)參數(shù),就是要顯示的文件編號。這就需要事先知道批處理的文件編號。D命令格式如下:
查看批處理文件內(nèi)容???? D[文件編號]
值得一提的是,希捷硬盤在出廠之前,工廠會預(yù)先定義一些批處理文件存儲在硬盤中,所以每個(gè)硬盤都有一些工廠預(yù)定義的批處理文件。比如已知有一個(gè)編號為十六進(jìn)制 0x16 的批處理文件是工廠預(yù)定義的,那么我們要查看它的內(nèi)容的話,只需要在 6 級下面輸入 D16,回車,然后批處理文件內(nèi)容就會顯示出來,下圖是在 MRT 希捷程序終端窗口中的演示:
可以看到編號為 12 的批處理文件一共有從 0x00——0x12 共 0x13 行,也就是 10 進(jìn)制的 19 行,每一行都是
一個(gè)普通的終端指令。比如第0x4行的“/1” ,就相當(dāng)于進(jìn)入1級模式。
現(xiàn)在我們能查看一個(gè)已有的批處理文件了,那么,我們怎么建立一個(gè)自己的批處理文件呢?這需要用到6級
下的E 指令,格式如下:
輸入批處理文件?? E[文件編號]
這里要注意的是,由于工廠預(yù)定義的批處理文件已經(jīng)占據(jù)了一些文件編號,所以用戶自定義的批處理文件編
號范圍只能是0——2。我們輸入E,然后回車,這時(shí)候終端的命令提示符就會進(jìn)入編輯狀態(tài),這時(shí)候我們可以輸
入想要定義的批處理命令,每個(gè)命令末尾用一個(gè)回車來換行。當(dāng)我們輸入完所有的批處理命令后,怎么退出編輯
狀態(tài)呢,也很簡單,只需要輸入一個(gè)管道符號“|”就可以了,也就是 Shift+“\” ,出來的就是符號“|” ,這樣就退出了批處理編輯狀態(tài),硬盤會進(jìn)行批處理語法檢查,如果沒有問題,會自動保存這個(gè)批處理文件。如果批處理
有語法錯(cuò)誤,硬盤會給出出錯(cuò)提示。我們在MRT 的終端下演示下建立自己的批處理文件:
上面建立的批處理文件, 先進(jìn)入2級, 然后執(zhí)行x指令查看段位表, 然后進(jìn)入1級, 執(zhí)行N1指令清除SMART,
最后輸入管道符號“|” ,退出編輯狀態(tài)。硬盤顯示出一段提示,然后回到命令提示符“F3 6>”下面。這里要注意,
用戶自定義的批處理,斷電后就會丟失的,所以硬盤會提示,用戶自定義的批處理只能在不斷電的狀態(tài)下執(zhí)行。
我們已經(jīng)建立了自定義的批處理文件,現(xiàn)在怎么來執(zhí)行它呢?這要使用6級下的B 指令。
執(zhí)行批處理文件???? B[文件編號],[執(zhí)行選項(xiàng)]
第一個(gè)參數(shù)是要執(zhí)行的批處理文件編號,第二個(gè)參數(shù)是一個(gè)位掩碼,用來控制執(zhí)行的細(xì)節(jié),有如下可選的掩
碼位:
0x08??? 失敗時(shí)繼續(xù)。
0x04??? 執(zhí)行所有批處理
0x02??? 單步執(zhí)行
0x01??? 執(zhí)行時(shí)把批處理文件的內(nèi)容顯示出來
比如,我們要執(zhí)行所有的批處理文件,就輸入F3 6>B,4
這個(gè)指令會逐個(gè)執(zhí)行所有的批處理文件,執(zhí)行完一個(gè)文件后,會繼續(xù)執(zhí)行下一個(gè)文件,直到所有被定義的批
處理文件都被執(zhí)行完。由于廠家出廠時(shí)預(yù)定義了很多批處理文件,所以全部執(zhí)行完需要很長時(shí)間。
如果我們只想執(zhí)行指定編號的批處理文件,那么就在第一個(gè)參數(shù)填上編號就行了。比如,在前面我們建立了一個(gè)編號為0x02的自定義批處理文件,那么,我們要執(zhí)行它的話,輸入? F3 6>B2? 就可以了。下面是操作演示:
我們看到,輸入B2并回車后,終端顯示Executing Batch File 02
然后就開始執(zhí)行我們之前定義的批處理命令了。
如果要執(zhí)行工廠預(yù)定義的批處理怎么辦呢?工廠預(yù)定義的批處理都是從編號 0x10 開始的,也就是說我們輸
入類似這樣的指令:
F3 6>B10
F3 6>B11
F3 6>B12
就可以逐個(gè)執(zhí)行工廠預(yù)定義的批處理。
以上就是批處理命令的常見用法。有時(shí)候,我們會看到工廠預(yù)定義批處理的內(nèi)容里面含有一些邏輯判斷和循
環(huán)控制標(biāo)記,這就是批處理的高級功能。以下簡單做一個(gè)介紹:
上面的批處理內(nèi)容中,第 9 行有一個(gè)“@”符號,這是用來標(biāo)記行號的, “@”后面跟一個(gè)數(shù)字,這個(gè)數(shù)字
就是標(biāo)簽號,然后就可以用跳轉(zhuǎn)指令跳轉(zhuǎn)到這個(gè)行。主要用于批處理中需要分情況執(zhí)行(分支執(zhí)行)的地方。
那么像跳轉(zhuǎn)啊,循環(huán)啊這些指令怎么表示呢?希捷里使用星號“*”來表示一個(gè)高級批處理功能。星號后面
跟一組參數(shù),不同的參數(shù)就可以表示不同的操作。
星號指令只能出現(xiàn)在批處理文件中,它的格式是:
*[功能號],[參數(shù)1],[參數(shù)2],[參數(shù)3]
其中參數(shù)1、參數(shù)2的作用是由功能號決定的。
功能號有如下可選值:
0 –? 無操作
1 –? 暫停批處理執(zhí)行,然后讓用戶按任意鍵繼續(xù)
2 –? 延時(shí)由參數(shù)1 指定的毫秒數(shù)。比如 *2,3000? 就是延時(shí)3000毫秒
3 –? 跳轉(zhuǎn)指令,跳轉(zhuǎn)到由參數(shù)1指定的標(biāo)簽處運(yùn)行。
4 –? 條件跳轉(zhuǎn)指令。增加首地址,如果增加后沒有環(huán)回,就跳轉(zhuǎn)到參數(shù)1 指定的地方執(zhí)行。
5 –? 清屏幕。就類似DOS下的CLS 指令一樣。
6 –? 如果發(fā)生錯(cuò)誤就停止執(zhí)行
7 –? 設(shè)置從參數(shù)2 到參數(shù)1 為循環(huán)次數(shù)
8 –? 遞減參數(shù)2指定的循環(huán)計(jì)數(shù)器,如果循環(huán)計(jì)數(shù)器不等于0,就跳轉(zhuǎn)到參數(shù)1指定的地址執(zhí)行。
9 –? 清除執(zhí)行錯(cuò)誤信息
A – 用參數(shù)1指定的錯(cuò)誤碼更新批處理錯(cuò)誤信息標(biāo)記。最小計(jì)數(shù)由參數(shù)2 指定,最大計(jì)數(shù)由參數(shù)3 指定。
B – 顯示活動錯(cuò)誤日志并與批處理錯(cuò)誤信息標(biāo)記比較,以確定批處理是否失敗。
在批處理中插入星號指令就可以讓批處理執(zhí)行循環(huán),跳轉(zhuǎn),條件判斷等高級用途。
最后還有一點(diǎn),在批處理文件的執(zhí)行過程中,如果想停止它的執(zhí)行,只需要按下ESC 鍵就可以了。 最后列出一些指令使用示例:
執(zhí)行所有批處理:? F3 6>B,4
執(zhí)行 0x10號批處理:?? F3 6>B10
顯示 0x10號批處理內(nèi)容:?? F3 6>D10
創(chuàng)建用戶自定義批處理,編號為0x2 :? F3 6>E2
本文系轉(zhuǎn)載,如有侵犯版權(quán)問題,請通知。我們立即刪除。
轉(zhuǎn)載請注明:成都千喜數(shù)據(jù)恢復(fù)中心 » 希捷F3系列B級批處理指令詳解



