::香农::青岛数据恢复中心::
作者:香农青岛数据恢复中心 2008-04-18 05:48
文章首页 |
---|
专业硬盘检测工具MHDD中文手册说明 |
关于MHDD项目 |
如何工作 |
系统平台和支持的硬件 |
获取MHDD |
准备使用 |
MHDD软件包内容 |
第一次运行:一些重要的信息 |
使用MHDD |
全部页面 |
由 Dennis German 于2009-01-10 修订
翻译:青岛香农数据恢复中心
使用 MHDD 指令,从最简单的到最危险的:
设备识别指令 ID, [F2], EID, shift[F2], shift[F3]
SMART 属性 F8
SMART ERLOG
SMART DATA
SMART TEST
SMART AAS Auto Attribute save
扫描(Scanning) 磁盘 MAKELOG or SCAN F4
如果发现有 UNC 怎么办
噪音(Acoustic)管理 AMM
加密(Security)指令 PWD, LOCK, UNLOCK, DisablePassword
擦除(Erase) ERASE
读取主机保护区域(Host Protected Area)
显示HPA硬盘的原始(出厂)容量 RHPA
减小硬盘容量 HPA
恢复原始容量 NHPA.
将扇区写到文件, ATOF 自动分割文件(Atomatically Splitting file)。
从文件 写到磁盘 FF ,
设备配置 CONFIG
批处理 F5
其它 MHDD 指令 SWITCHMBR, CLRMBR.
命令行开关
/NOPINGPONG, /DISABLEBIOS, /DISABLESCSI, /ENABLEPRIMARY 和 /RO
CFG 文件
常见问题 (FAQ)
MHDD 是一个体积小但是功能强大的免费底层磁盘工具。它的第一个版本于2000年发布,作者 Dmitry Postrigan 的目标是开发一个著名的 权威的硬盘诊断工具。MHDD 第一个版本可以在CHS(Cylindar, Head,Sector)模式下对IDE硬盘进行表面扫描。
MHDD 现在可以访问扇区,查看S.M.A.R.T. (SMART) 和其它磁盘参数,例如:噪声管理,安全机制,主机保护区域等。用户可以使用简单的 脚本执行一序列的指令。
本文原始链接::http://www.shannon.net.cn/docs/knowledge/94-mhdd-chn-manual.html
英文原始链接:http://real-world-systems.com/docs/MHDD_en_manual.html
在 DOS 下如果要从磁盘读取扇区,需要通过 BIOS 来执行。BIOS 查找磁盘的端口,查找扇区位置,然后向磁盘发送指令。在所有工作完成 之后 BIOS 向 DOS 返回结果。
下图显示了 DOS 程序如何访问磁盘:
program <---> MSDOS <---> BIOS <---> IDE/SATA 控制器 <---> 硬盘
MHDD 的工作流程是:
MHDD <--------------------------------> IDE/SATA 控制器 <---> 硬盘
它们之间的差别是:MHDD 不使用 DOS 或 BIOS 函数或中断,你可以在 DOS 启动之后再启动硬盘(如果不小的话,会有小小的可能,硬盘 会损坏)。MHDD 直接访问 IDE 或 SATA 控制器,所以它会忽略分区,文件系统,BIOS (主板) 限制,等等。对于SCSI 磁盘 MHDD 使用 DOS ASPI 驱动。
警告:不要将 MHDD 放在与要检测的硬盘同一IDE数据线的硬盘上!DOS 程序(例如SMARTDRV.EXE)会与 MHDD 同时访问任 何硬盘,这可能会导致同一通道上的硬盘数据丢失!我们没有办法可以阻止或跟踪 MSDOS 或 BIOS 的读/写操作。因此在默认配置下 MHDD 不 能访问 Primary IDE 硬盘(因为它通常要启动 DOS 并运行 MHDD)。
如果要检测的iyngpan连接在 Primary IDE 接口上,可以使用 /ENABLEPRIMARY 开关。 (CD 镜像中含有这个指令)
系统平台:
硬件
硬盘驱动器
其它设备
请访问 HDDguru.com 网站。
MHDD 提供 CD 镜像,自解压软盘镜像或压缩包。
MHDD 也可以从 SysRescCD.org 下载。
使用任意 CD 刻录软件将ISO镜像刻录为可启动的 CD 光盘。
在Windows 2000/XP 系统中可以将软盘镜像写入软盘。
使用软件程序包制作你自己的诊断系统。
mhdd.exe 主程序
mhdd.hlp 使用 MAN 来查看指令说明
batch/sample.mba 简单的批处理脚本
scripts/test 简单的脚本
cfg/mhdd.cfg 配置文件
AUTOEXEC.BAT
CONFIG.SYS
SETRAMD.BAT
可启动 CD 镜像会创建:
系统启动后,你可以弹出 CD 光盘然后插入其它光盘。
但是要了解 MHDD 如何工作并不容易!
如果你对硬盘的原理并没有很深的了解,建议你阅读 ATA/ATAPI 标准: ATA8-ACS PDF.
即使你已经对硬盘的原理有了深入的了解,你仍然需要阅读 ATA/ATAPI 标准: ATA8-ACS PDF.
在使用 MHDD 之前你必须花费几小时(最少了)来学习。
我强烈建议你在使用 MHDD 诊断故障硬盘之前,先利用一些无用的好硬盘来实验。
在你开始使用MHDD之前,
要检测的 IDE 硬盘 必须 设置为 主(master)(使用硬盘跳线),不要安装其它硬盘 。
MHDD 从 cfg/mhdd.cfg 获取程序配置信息。
Primary IDE 通道默认是禁用的。要启用它,先阅读 read this 的警告信息,然后编辑 MHDD.CFG 文件,将下面的语句加入:
#PRIMARY=TRUE
如果你从 CD 光盘启动,MHDD 运行在 RAM 磁盘中,所以完全可以启用Primary IDE通道,在 AUTOEXEC.BAT 中已经使用 /enableprimary 参数来启动 MHDD。
准备一张已经使用 DOS 格式化的软盘来保存日志,截屏和配置文件。
( 最好添加一个小型的编辑器如 vi.exe 和 pkzip。记住,如 果你从 CD 光盘启动,软盘的盘符是 B:)
MHHD 将日志记录在 log/mhdd.log 文件中。
例如:
31.07.2007 17:22:14 31.07.2007 17:22:14 | MHDD 4.6 (c) Dmitry Postrigan | FREEWARE 31.07.2007 17:22:14 Changing mode to: IDE 31.07.2007 17:22:30 Changing mode to: IDE 31.07.2007 17:22:30 Device selected: 3 31.07.2007 17:22:32 31.07.2007 17:22:32 MHDD
在启动 MHDD 之后你可以看到磁盘选择菜单。
也可以按下 SHIFT+F3 来显示磁盘选择菜单:
[F1] 显示指令
MAN EN command 或
MAN RU command
可以显示 command 说明
其中一些指令有快捷键,例如 SCAN 的快捷键是 F4。
SCREENSHOT 或 [F10] 打印屏幕到文件 LOG\SCRSHOT.LOG。
ID 和 EID 指令显示磁盘驱动器的详细信息。
见 ATA/ATAPI standard
ID 或 shift[F2]
Maxtor 5T030H3 LBA: 60,030,432 BIOS: 80H SN: T3D3N8WC FW: TAH71DP0 CACHE:512KN Size = 8063MB
EID
Supports: HPA DLMC LBA MS16 DMA (UDMA2,MWDMA2) EID SMART: Enabled EID Size=8063MB
PORT 或 shift[F3] 检测磁盘驱动器并显示 磁盘选择菜单。
CX 测试读取时间
Init drive: Done Seel&Read test Press <>ESC> to finish... Start: hh:mm:ss Average Access Time: 16.87 This is continueously averaged and updated until you press [ESC]. Maximun: 35.03 Done: hh:mm:ss
SMART ATT 或 [F8]
不同的厂商以及不同的型号提供的信息是不同的。
如果不更换数据线,这项数值会越来越大。请参看 ATA/ATAPI standard (PDF) 来理解 SMART ATT 指令显示的信息的含 义。型号不同的磁盘,属性可能是不同的。
HDD: Maxtor 5T030H3; FW: TAH71DP0; SN: T3D3N8WC Name Val Worst Raw Att # 1 : Read error rate : 253 252 94 Att # 3 : Spin up time : 210 208 16970 Att # 4 : Number of spin-up times : 240 240 27451 Att # 5 : Reallocated sectors count : 253 253 0 Att # 6 : Read channel margin : 253 253 0 Att # 7 : Seek error rate : 253 252 0 Att # 8 : Seek time performance : 252 245 53387 Att # 9 : Power-on time : 216 216 64096 Att # 10 : Spin-up retries : 253 252 0 Att # 11 : Calibration retries : 253 252 0 Att # 12 : Start/stop count : 252 252 432 Att # 187 : Unknown : 35 46 35 Att # 189 : Unknown : 35 46 35 Att # 190 : Unknown : 35 46 35 Att # 194 : HDA Temperature : 35 46 35 Att # 196 : Reallocate event count : 253 253 0 Att # 197 : Current pending sectors : 253 253 0 Att # 198 : Offline scan UNC sectors : 253 253 0 Att # 199 : Ultra ATA CRC Error Rate : 199 199 0 Att # 200 : Write error rate : 253 252 0 Att # 201 : Unknown : 253 172 794 Att # 202 : Unknown : 100 253 0
SMART off | on
SMART AAS enable | disable 自动保存属性
SMART DATA 读取数据
如果在50秒之内没有显示,那么硬盘可能会失去响应。
如果指令超时 MHDD 不会显示 出错提示。
SMART ErLog 将出错日志导出到文件(可能会花费1-2分钟)
在MHDD 查询SMART日志时 ERR 和 ABRT 指示 灯会闪亮。
这里是有坏扇区时的 错误日志 示例文件。
SMART TEST 执行内部测试
-=- -=- SMART Execut OFF-Line immediate (tests) -=- -=- ------------------------------------------------------------ 0 Execute SMART off-line routine (off-line) 1 Execute SMART Short self-test routine (off-line) 2 Execute SMART Ext. self-test routine (off-line) 3 Execute SMART Conveyance s.t. routine (off-line) 4 Execute SMART Selective s.t. routine (off-line) 5-63 Reserved 64-126 Vendor specific 127 Abort off-line mode self-test routine 128 Reserved 129 Execute SMART Short self-test routine (captive) 130 Execute SMART Ext. self-test routine (captive) 131 Execute SMART Conveyance s.t. routine (captive) 132 Execute SMART Selective s.t. routine (captive) 133-191 Reserved 192-255 vendor specific ------------------------------------------------------ Select a test (0-255, blank or any symbol for cancel): Starting routine n, press "Y" to process:
captive 一直等待测试完成
off-line 立即返回MHDD控制,但是测试由硬盘继续运行。在这种 情况下可以切换到其它硬盘,同时启动多个硬盘的off-line测试。用 SMART DATA 指令查看 off-line 测试的状态。
按下 Y 后, BUSY 指示灯在测试完成之前会一直亮起。使用 SMART DATA 指令可以查看测试的剩余 % 百分比。
只有在使用 ID 或 EID 指令检测到硬盘之后才能使用Scanning指令。
MAKELOG 扫描硬盘并创建日志文件。
假如使用CD光盘启动MHDD,可能RAM磁盘上没有足够的空间来容纳日志文件。
如果被扫描的硬盘容量小于10GB,只需一张软盘就可以容纳日志文件。
在硬盘上保存日志文件的方法:
(必须使用FAT分区)。
直接运行 SCAN 或 [F4] 则不创建日志文件。
在下面的菜单中你可以调整 起始LBA 和 结束LBA,
开启 Remap 可以将坏扇区重新映射,如果坏扇区的数量少于100个,那么 Remap 对于硬盘上的数据是安全的 。
更改 Timeout 设置,Spindown after scan, loop test/repair 和
Erase Delays(数据将被清除)。
上面显示的是默认设置。
建议将Timeout 设置为 500。
按下 [F4] 开始扫描。
块大小为 255 个扇区 (130,560 bytes)。
扫描的工作原理:
硬盘寄存器显示在屏幕的顶部。
50 ERR INDX CORR DREQ DRSC WRFT DRDY BUSY AMMF TONF ABRT INDF UNCR BBK 00 |
IDE/SATA 硬盘会返回 DRIVE READY 和 DRIVE SEEK COMPLETE,因此 DRDY 和 DRSC 标志位是蓝色的。
BUSY 当硬盘在执行指令时(例如读或写指令)。
当硬盘和主机之间要传 输数据时 DATA REQUEST (DREQ) 标志位点亮。
WRITE FAULT 和 TRACK 0 NOT FOUND 标志位已经废弃,因此他们永远不会被点亮。
INDEX 也已经被废弃,但是有时它们会闪亮。
如果 ERROR 标志位 (ERR) 被点亮,你可以通过检查错误寄存器来查看具体故障。在ATA/ATAPI标准中可以找到更多有关寄存器和指令的 信息。
屏幕上色块的亮度表示读取扇区花费的时间。
? TIME VERIFY command did NOT complete within the timeout |
x UNC data is uncorrectable. |
! ABRT command was aborted |
* BBK Bad Block |
|
S IDNF sector ID cannot be read or not as expected |
A AMNF Data Address Mark Not Found |
0 TONF Track 0 was not found during drive recalibration |
蓝色色块表示正在进行扇区remapping。
AVG (average) 表示平均传输速率,AVG旁边显示的是已经完成的比率。
在扫描正在进行时,
按左箭头可以向前跳过 10,000 扇区 上箭头向前跳过 250,000 扇区
下箭头向后跳过 10,000 扇区 右箭头向后跳过 250,000 扇区
扫描日志记录在 log/mhdd.log 文件中。
如果扫描后发现有一些 UNC 错误该怎么办? 先保存扫描日志!然后使用指令 smart att 显示的结果如下: #5 Reallocated sectors count: 144 139 1109 this should be zero! #194 HDA Temperature perhaps there's an answer here! #195 Hardware ECC recovered 253 252 731 Watch for astronomical number #196 Reallocate event count 1 1 982 This looks bad! #197 Current pending sectors 144 139 1109 Not good either! #198 Offline scan UNC Sectors 1 1 11090 Looks like offline selftesting found errors too (same ones??) #199 Ultra ATA CRC error rate 199.198 1 THis has to be BAD! 然后运行 smart errlog 这时最好保存硬盘上的文件! 重复运行 Scan 仍然会得到形同的结果,实际上硬盘硬件(固件)早已经检查到扇区错误。
MAKELOG 在软盘上创建 advlog.bin 文件。advlog.bin 可以用来使用其它程序进行进一步的分析。advlog.bin文件可能会很大(例如:扫描 6GB的硬盘生成的日志文件为800KB)。
日志文件示例:
9A 00 00 00 hex header VER:2 MODE: IDE DEVICE: Maxtor 90648D3 F/W: GAS54112 S/N: A30V0VFC SECTORS: 12,656,448 SECTOR SIZE: 512 bytes SCAN BLOCK SIZE: 255 sectors address milli seconds 0000 0000 0000 0000 0000 0000 0000 302a 0000 0000 0000 ff00 0000 0000 0000 694c 0000 0000 0000 fe01 0000 0000 0000 5a1f 0000 0000 0000 fd02 0000 0000 0000 2b1f 0000 0000 0000 fc03 0000 0000 0000 6122 0000 0000 0000 fb04 0000 0000 0000 8c1c ... 0000 0000 0000 1f1f c100 0000 0000 c80b 0000 0000 0000 0a
49,633 blocks of 16 bytes for a 6GB drive
使用Erase指令可以将硬盘上的数据逐扇区的清除 然后开启 REMAP 参数 运行 SCAN 指令。 如果扫描时所有的扇区全都出错,立即停止!这种情况下硬盘的故障是由固件引起的,MHDD无能为力。 这时最好联系厂商返修硬盘或直接报废硬盘。
TOF 将扇区数据导出到文件
你可以部分扇区或整个硬盘导出到一个文件或拆分成多个文件。
ATOF (自动拆分文件) 可以创建多个文件。
MHDD 可以跳过坏扇区
FF 将文件中的数据写到硬盘扇区。输入起始扇区和要写入的扇区数。
AAM 调整噪声管理设置。注意:降低噪声会减小寻址时间!
CONFIG 查看或设置 UDMA 模式,安全机制(Security),SMART, LBA48 模式,噪声管理(AAM) 和 HPA ,等等。某些厂家使用 Device Configuration 指令更改硬盘容量。
PCISCAN 扫描 PCI 并保存到 MHDD_PCI.log 文件。例如:
MHDD PCI SCAN LOG NAME-----------------------CLASS--SUBCLASS--VENDOR--DEVICE--IO PORTS--------------------- Intel 06 00 8086 7190 0008 0000 0000 0000 0000 0000 Intel 06 04 8086 7191 0000 0000 0100 D0D0 FCA0 F480 Intel 06 01 8086 7110 0000 0000 0000 0000 0000 0000 Intel PIIX4 EIDE Controller 01 01 8086 7111 0000 0000 0000 0000 FFA1 0000 Intel 0C 03 8086 7112 0000 0000 0000 0000 EF81 0000 Intel 06 80 8086 7113 0000 0000 0000 0000 0000 0000 04 01 12EB 0001 0000 EFA1 EF69 0000 0000 0000 VIA 0C 00 1106 3044 F800 EC01 0000 0000 0000 0000 0C 03 1045 C861 E000 0000 0000 0000 0000 0000 PROMISE FastTrak100 01 80 105A 4D30 EFF1 EFE5 EFA9 EFE1 EE81 0000 02 00 10EC 8139 E801 F700 0000 0000 0000 0000 ATI 03 00 1002 4C42 0000 D801 F000 0000 0000 0000
ERASE
如果在BIOS中可以认到硬盘,MHDD 会使用BIOS函数清零硬盘。可以附加 /DISABLEBIOS 参数来禁用BIOS函数。
运行ERASE指令后,MHDD 首先显示硬盘ID,然后调用Fast Disk Eraser程序。
Fast Disk Eraser v4.4 (LBA28/48/BIOS/ASPI) Type start sector to write [0]: Type end sector [16514063]: tart : 1785 End :1786 [] Continue? (y/N) Start: 23:40:02 Sectors done: 2, 0Mbytes completed End :23:40:02
从 cmrr.ucsd.edu/people/Hughes/SecureErase.shtml 下载或者在Ultimate Boot CD上的HDDerase,可以使用硬盘内部的 SECURE ERASE 指 令一次性清零整个硬盘。这种方法是最快的清零方法但是不能中途终止。
如果在运行SECURE ERASE指令后,在它完成之前给硬盘断电,硬盘再次启动之后就会被锁住。
如果不对硬盘进行解锁,硬盘就会继续清零进程。
相关说明可以在 CMMR.UCSD.edu和ATA/ATAPI标准中找到。
RHPA 显示硬盘出厂容量
HPA 减小硬盘容量。输入MaxLBA数,单位为sectors。
NHPA 恢复出厂容量
在使用NHPA之前要先断电再重启硬盘。
根据ATA/ATAPI标准,在硬盘运行时只能使用一次HPA指令。
--------------------------------------------------------------------------------
在使用加密/解密指令之前,查看BIOS中的设置是否支持硬盘密码。如果主板不支持在硬盘启动时输入密码,那么要访问设置了密码的硬盘,就必须使用MHDD取消密码。
PWD 使用用户设置的密码锁住硬盘。根据ATA/ATAPI标准,硬盘在断电重启之后密码设置生效。
有两个指令可以解锁硬盘:UNLOCK 和 DISPWD。
UNLOCK 解锁硬盘,但是在断电重启之后硬盘仍然是被锁住的。
要清除密码,先用 UNLOCK 指令解锁硬盘,然后用 DISPWD 指令清除密码。
在使用 UNLOCK 或 DISPWD 指令时必须输入有效的密码。
UNLOCK 和 DISPWD 可以更改 master 或 user passwords。 例如,可以用 PWD 指令设置USER password。
Master password 由厂商设置,用来在不知道USER password的情况下解锁硬盘。
作为参考,在BATCH目录中有一个批处理文件的例子。
按下 [F5] 运行一个批处理。
注释文本以 ; 开始,注释文本在运行时不显示。
批处理文件中除注释文本以外的第一行 (非注释) 必须是主程序的版本号。
V1.1
指令:
ASK_ON/ASK_OFF 在执行指令前询问 默认设置是 ASK_OFF SOUND frequency, NOSOUND, BEEP seconds, ENDSND_ON / ENDSND_OFF HALT_ON / HALT_OFF 当有错误时是否挂起 PAUSE seconds REPEAT n 重复执行下一行 n 次。 [ESC] 可以终止循环。 DEV_SELECT (从菜单中心选择), DRV-PORT p (1 代表 Primary Master... 3 代表 Secondary Master, 6 代表第一个 PCI 通道) (请查看 SHIFT+[F3] 的输出), DRV_SCAN {startLBA | MIN } { endLBA | MAX } {0 | 1 | 2 } (0 是 scan, 1 是 scan and remap, 2 是 scan + Erase Delays) DRV_WAIT 等待硬盘准备就绪 DRV_ID, DRV_RESET, DRV_STOP, DRV_NHPA 恢复硬盘原始容量 (Host Protected Area) DRV_SEEK 测试秒数 DRV_ERASE {startLBA | MIN } {endLBA | MAX } 可以在一些含有数值参数的指令后面添加注释,例如 DRV_SEEK 10 ; expect 13.9 ms average
使用 MAN EN BATCH 查看指令帮助
例如:
;version - do not change V1.1 ;confirmations: on ASK_ON ;terminate batch on error HALT_ON ;make sound after each line ENDSND_ON beep 1 ;;;;; Please select drive with SN=Y2VSJQHE ;select a drive from the displayed list DRV_SELECT ;ATA reset DRV_RESET ;Seek Test for 10 seconds DRV_SEEK 10 ; scan a little DRV_SCAN 0 200 0 ASK_OFF ;repeat NEXT command 2 times REPEAT 2 ;scan whole drive without repair DRV_SCAN MIN MAX 0 ;stop spindle DRV_STOP ;announce completion beep 10
EXIT, QUIT, HELP, CLS,
WAIT 等到驱动器不再 BUSY 然后蜂鸣
SCSIINFO,
PORT shift+F3,
INIT
RST 或 [F3]
STOP 硬盘停转 shift+F4
RX 从缓存接收数据( 仅用于程序内部调试)
RPM 计算磁盘转速
SETCDSPEED,
SWITCHMBR 即, 开关 激活 | 不激活
CLRMBR
FDISK 将整个硬盘划分为一个分区并写入 MBR 。
SCSIFORMAT
MAKEBAD
RANDOMBAD
如果从CD光盘启动,由于CD光盘上的AUTOEXEC.BAT自动启动MHDD,所以你需要退出MHDD然后重新运行MHDD来包含开关参数。
/NOPINGPONG 禁用声音
/DISABLEBIOS 禁止通过BIOS 来 ERASE
/DISABLESCSI 禁用 SCSI 引擎
/ENABLEPRIMARY 启用 Pimary IDE/SATA 通道
/RO (禁用日志,禁止创建临时文件)
CDROM
LglDrv
RAMD RAM磁盘盘符
CONFIG
如下
注意: # 不是一个指令但却每行都有。
#AUTODETECT_ENABLED=FALSE #DEVICE=3 #SCAN_ERASEWAITSDELAY=350 #SCAN_STARTLBA=0 #SCAN_ENDLBA=12656447 #SCAN_TIMEOUT=240 #SCAN_MENUX=20 #SCAN_MENUY=5 #SCAN_SLEEP=0 #PRIMARY_ENABLED=FALSE
FAQ 网址:forum.hddguru.com/viewtopic.php?t=5
原作者: Maya Postrigan
由 Dennis German 修订
由 @shannon 翻译
版权 和 声明
本手册不得在任何地方出售或出版。由于我将不断的进行修订,因此最好使用链接引用本文而不是直接拷贝。
你可以在尊重版权的前提下发布 MHDD 。你也可以为了教学目的而反编译(反向工程)MHDD。不得出售MHDD或它的任一部分。
© 2005 Dmitry Postrigan
声明:MHDD 固然功能强大,但是它也是非常危险的程序,并且 没有人 对由 MHDD 导致的任何损坏或数据丢失负责。
© 2005 Hddguru.com — your source of information about Hard Drives
© 2008 Shannon.et.cn — 青岛香农数据恢复中心
点击这里 获取 D1699r6-ATA8-ACS.pdf.gz 1.8MB,
原始地址:T13.org/Documents/UploadedDocuments/docs2008(BIG).
本文修订于 7/31/07© 由 Dennis German 简历