希捷的盘不是所有盘都支持 k 指令的砍头操作,目前了解的硬盘
都是固件版本“.”后跟数字 5 的盘,都支持 k 指令,下面介绍 k 指
令的具体使用。
k 指令的格式 kx,y,z。x 表示的是要砍的第几个头,y 表示硬盘类
型参数,实际上只用到 x 参数就可以了 。下面使用 ST 笔记本
(MODEL:ST9808210A,SN:3LG0BP0Z,FW:3.05)为例来操作
k 指令。首先连接好硬盘,在指令模式下输入 CTRL+Z,回到 T 级,
按“;”查看 MXHD 的值来判断当前是总共有几个磁头,
可以看到当前盘有 4 个磁头,使用 k 指令查看磁头地图,如下:
我们现在要只砍掉第 3 个头,即 2 号头。首先使用 Y 指令来设
定磁头的总数。使用“;”查看 MxHd 的值。
现在的 MxHd 的值变为 2,已经只有三个磁头了。下面使用 k 指
令来设置磁头地图
“k2”表示砍掉 2 号头,也就是第三个头,我们可以看到下面的
磁头地图已经发生了改变。 已经删除了 2 号头。
下面使用 W 指令保存前面我们的磁头操作设置。
完成以后,断电再开电。查看 MxHd 的值是不真的变化了。
砍头成功。还需要手动修改一下 LBA 就应该可以了。
如果要想恢复被砍的磁头可以,先用 Y 指令设置回硬盘的最大
磁头数,再用 kff 指令重新设置回原来的硬盘磁头地图。用 W 指令保
存即可。
F3 T>A0 (Select User Area and not to update cylinder and head) 设置用户区参数,不改变柱面与磁头参数
F3 T>/7 (Change diagnostic command level to 7) 转7级
F3 7>S1000,0 (Seek to the target track)
F3 7>K2 (Set track format to single sector per wedge format) 设置磁道格式,
F3 7>W,,,1 (Write the track with physical sector address flag on)开启track 为FLAG格式
F3 7>/E (Change diagnostic command level to E) 转E级
F3 E>m (issue the Fast MSESER Measurement command) 显示MESESER结果
查看P表
F3 T>V10
G表转P表
F3 T>A
A
Current Addr Mode
User LLL CHS Mode, Seq In, Rnd Data
Hd 0 Cyls 000000 - 023B1F
Hd 1 Cyls 000000 - 022F4C
All Addr Modes
User LBA Mode
LBAs 00000000 - 1D1C596F
System LBA Mode
LBAs 00000000 - 000883AF
User LLL CHS and User LLP CHW Modes
Hd 0 Cyls 000000 - 023B1F
Hd 1 Cyls 000000 - 022F4C
System LLL CHS and System LLP CHW Modes
Hd 0 Cyls 000000 - 000188
Hd 1 Cyls 000000 - 000183
PLP CHS and PLP CHW Modes
Hd 0 Cyls 000000 - 0241DF
Hd 1 Cyls 000000 - 0235D5
Buffer Sector Offset 00000000
显示指令帮助,大家都懂了
Level C 'Q': Rev 0001.0000, Overlay, DisplayAsciiCmdInfo, Q[CmdLevel],[Cmd]
初始化LOG文件
Level L 'i': Rev 0011.0000, Overlay, InitLogFile, i[Log]
显示Log文件
Level L 'D': Rev 0011.0000, Overlay, DisplayLogFile, D[Log],[ErrCode]
显示LOG文件信息
Level L 'I': Rev 0011.0000, Overlay, DisplayLogFileInfo, I[Log]
SATA诊断
Level F 'z': Rev 0011.0000, Overlay, SataDebug, z[SubCmd],[Parm1],[Parm2],[Parm3]
Modify Track Defect List (Level 2 'F')--------------------------------------------- 修改磁道缺陷列表 F3 2>F
-----------------------------------------------------------------------------------------------------------------------------
Description:
详解:
The Modify Track Defect List command
修改缺陷列表指令
modifies the defect list for the specified sector(s).
修改缺陷列表指定扇区
Quick Help:
快速帮助:
"ModTrkDfctLst, F[PSctr/LBA],[Action]";
“修改缺陷列表,F扇区/LBA值,操作(加入/移除)
Input Parameters:
输入的参数:
0 - Physical Sector or LBA to Modify.
用物理扇区或LBA值来修改
If Parameter 1 is A1, B1, C1, or F1, this value is an LBA.
如果参数1是A1,B1,C1,或F1,该值是一个LBA。(A1,B1,C1,F1的功能请看下面1 - Defect List Action)
If parameter 1 is some other value, this parameter is the physical sector number of the block to be affected. The cylinder and head come from the current address.
如果参数1是一些其他的值,这个参数就是会受到影响的某块的物理扇区号。柱面和磁头来自当前地址。
Type: Unsigned 32-bit value
类型: 无符号的32位值
Range: 0 to 0xFFFFFFFF
(扇区/LBA)范围: 从0到0xFFFFFFFF
Default: 0
初始值: 0扇区/LBA
Note: The track and head used are the current track. When working with sectors
注意: that are already alted, it is best to use the LBA mode actions (B1 and C1
below) .
这句话的意思是:如果当前磁头运行在记录ALT列表的扇区上,那么最好使用LBA模式进行操作。
(下面的B1和C1—)
1 - Defect List Action.
缺陷列表的操作
Parameter 1 specifies the format action to be taken. The valid choices are:
参数1指定的格式应采取的操作。 有效的选择:
A - Add Sector to Alternated Sector List
A - 添加扇区到ALT列表
A1 - Add LBA to Alternated Sector List
添加LBA到ALT列表
B - Add Sector to Pending Sector List
添加扇区到P列表
B1 - Add LBA to Pending Sector List
添加LBA到P列表
C1 - Remove LBA from Alternated Sector List
删除LBA从ALT列表
F1 - Remove LBA from Alternated Sector List ( same as C1 above )
从ALT列表删除LBA 与上面的C1相同
Type: Unsigned 32-bit value
Range: 0 to 0xFFFFFFFF
Default: 0x0C1
Output Data:
输出的数据:
If an error occurred, the following information will be displayed.
如果发生错误,将显示以下信息
"DiagError aaaaaaaa "
where
aaaaaaaa is the Diagnostic Error Code
aaaaaaaa是诊断错误代码
Examples:
例如:
Example #1:
To remove LBA 1234 from the alt list:
要删除LBA1234从alt列表
F3 2>F1234,f1
To add LBA 1234 from the alt list:
要添加LBA1234到alt列表
F3 2>F1234,B1
Revision History:
版本历史:
0001.0000 Initial Revision.
初始的版本
0002.0000 Remove 2>Fx,F; add Fx,F1 to unalt by sector.
0011.0000 Combined the PSG Diagnostic Error Codes (PSGDEC) and the Diagnostic External
Test Service Error Codes (DETSEC) into a single set of Diagnostic Error Codes
(DiagError).
结合PSG诊断错误的代码(PSGDEC)和诊断的外部测试服务错误的代码(DETSEC)一组诊断错误代码 (DiagError