坏道与硬盘的P表和G表

序言

这篇文章是对机械硬盘坏道相关知识的一些介绍,包括为什么会产生坏道,什么是P表和G表,以及它们的工作机制。文章介绍的比较清晰,感觉有所帮助,故将其转载过来。
原文链接:http://www.360doc.com/content/17/0129/18/30599128_625300307.shtml

原文

坏道是指硬盘碟片中存在缺陷的区域,在这个区域上,硬盘无法读取和写入数据,而已经存储在这个位置的数据可能由于坏道的存在而损坏。坏道是数据恢复中常见的故障之一,通常可分为逻辑坏道和物理坏道,逻辑坏道可以通过低级格式化来消除,而物理性坏道是无法通过软件来解决的。
一、坏道的产生
目前的机械硬盘都采用高密度存储技术生产,在生产过程中不可避免地会在某些区域上产生缺陷扇区,同时在使用过程中,一些不稳定的扇区也会逐渐老化成为缺陷扇区,这些先天缺陷和和后天残疾就是我们所说的坏道,它们会严重威胁硬盘数据的安全,为此,硬盘设计了两个缺陷列表 P-list(P 表)和 G-list(G 表)来处理这些有缺陷的扇区。P表和G表用于记录硬盘的缺陷扇区的情况,使硬盘在工作时不会在缺陷扇区中读写数据,防止数据损坏。
二、P-List(P 表)
P 表又称为永久缺陷列表,用于记录硬盘生产过程中产生的缺陷。厂家使用专门的测试设备发现的缺陷是磁介质寿命完成之后产生的永久缺陷,只能使用特别的设备来增加它,一般没有必要去动它。
加入 P 表不会影响硬盘的读写性能,这要从硬盘的扇区结构进行分析。因为硬盘的全部扇区可以划分为固件区、工作区和保留扇区,其中固件区和保留扇区普通用户无法直接进行操作。其实硬盘的实际扇区数比我们看到的硬盘标签上标定的要大,其中一部份用于存储硬盘的固件;一部分是用户存储数据的区域,即工作区,也就是硬盘标定容量的扇区;剩下的就是保留区,实际上硬盘上并不会物理划出一个保留区域,只是在工厂生产时标定了全部的有效扇区,而硬盘的容量是小于其实际扇区总数的,在固件里定义了硬盘的容量,超过硬盘容量的那些扇区我们就称为保留扇区。
缺陷扇区被加入 P 表后,硬盘不会再读写该扇区,而是将原读写该扇区的操作顺延到读写坏扇区的下一个扇区,该扇区以后的所有扇区的 LBA 值都发生了改变,原来保留扇区的一个扇区成为了硬盘可访问的扇区。所以坏道被加入 P 表后,硬盘需要进行一次返厂低格。
三、G-List(G 表)
G 表又称为增长缺陷列表,是用于记录硬盘使用过程中由于磁介质性能变弱而引起的缺陷。这些缺陷可以在格式化的过程中发现,也可以由固件自动格式过程或者 REASSIGNBLOCK 命令做重新分配的过程中发现。也就是说,硬盘在使用时,其实坏道是不定时都在产生的,只是由于 G 表的及时屏蔽,使用户感觉不到它的存在,只有当坏道产生的数量超过 G 表所能屏蔽的范围,坏道就能被用户感知到了。而产生数据恢复需求的硬盘,大多由于 G 表已满,无法继续屏蔽造成的。
另外 G 表中还包括 C 表和 D 表,其中 C 表又称检查缺陷列表,用于记录在执行 FormatUnit 格式化命令时,初始化进程之后在数据块校验的过程中所检测出的缺陷数据块的位置信息,一般也存储为 G 表方式。而 D 表又称数据缺陷列表,用于记录在执行 FormatUnit 格式化命令前所产生的缺陷位置信息,它可以人为定义,先定义了这个列表,最后由系统传送给硬盘的缺陷列表,在格式化的过程中,这些缺陷信息会被加入 G 表。缺陷扇区被加入 G 表后,当硬盘需要读该扇区时,会被重定位到保留扇区中的一个扇区,硬盘工作区的其它扇区不会受影响。
由于保留扇区在硬盘的内道,读写速度慢,同时由于该扇区会导致硬盘的数据存储从物理上来说不连续了,当磁头读取该扇区的数据时需要移动较远的距离,代替坏扇区后,该 LBA 的读写速度会慢一些,所以我们说缺陷扇区加入 G 表后会影响硬盘的读写速度。
物理性坏道非逻辑问题,无法通过数据恢复软件进行恢复和屏蔽,产生坏道的硬盘应及时联系专业数据恢复公司进行数据救援,切勿强制拷贝坏道硬盘中的数据,否则磁头在坏道区域反复读取,可能造成坏道区域扩大,甚至造成磁头损坏而升级为“开盘数据恢复”。

说明书: 命令名称: dut1 简便找盘 idp或info 查看硬盘信息 chkresfall 检测固件 RDIRSECT 显示硬盘固件目录 smart 查看SMART clrsmart 清SMART svmod 0x.. 单个备份模块 wrmod 0x.. 写入备份好的单个模块 remergepg 合并GP remergepgnow 立即合并pg CLRGLIST 清G CLRFILE 0X33 清P Depophd 1,X 关头 Fmtunit 内部低格 rdfl 2;edit 编辑ID wrldir 写01扇区 fmtrsvd 格式化固件区 zrcyls 固件区清零 clribilog 清E0-E6 F0-F1的LOG HEADTEST 自动测试当前所有磁头好坏,好的返回OK,坏的返回BAD。 getPEDATA 自动获取PE bin 读E8 E9 E10 tp 校准指针 sf1 从0x01自动开自校准(范围S53. S58) 处理完后,出现COMPLETELY(完成)此时需要手工断电通电一次,校准即开启。校准时候用 POLL 0 命令实时查看进程。 sf2 从0x0e自动开自校准(若sf失败,则用这个跑(范围S53. S58)) 处理完后,出现COMPLETELY(完成)此时需要手工断电通电一次,校准即开启。校准时候用POLL 0命令实时查看进程。 stop 强制停校准(盘在IDE 1,不是IDE0) rdTRK 自动备份全固件磁道 (范围S53. S58) wrTRKa 自动写全固件磁道 (范围S53. S58) swap58 自动全换SABRE58系列固件(范围S53. S58) swap53 自动全换SABRE53系列固件(范围S53. S58) wr58 自动全写S58系列固件(范围S53. S58) wr53 自动全写S53系列固件(范围S53. S58) sv58 自动全备份S58系列固件(范围S53. S58) sv53 自动全备份S53系列固件(范围S53. S58) wrdir 写dir wrrplist 写35模块 re47 自动配47适配器模块(范围S53. S58) re40 自动配40适配器模块(范围S53. S58) SVLROM 保存128K ROM WRROML 写128K ROM CLRCOLOR 修护色块和坏道的命令 CLR0 清零 CLRPW 解密 setPWD 密 disablePWD 禁用密码 unlockUnit SECURITY UNLOCK Macro erasePrep SECURITY ERASE PREPARE Macro eraseUnit SECURITY ERASE UNIT Macro SMARTSTAT SMART归位 smtRdData SMART数据读取 htl L板测磁头 hlr换L板ROM AdpL自适配L板47 KadpL headnum 砍L板所选磁头适配 svtl uhead 保存L板所选磁头磁道 wrtl uhead 写所选磁头磁道 SVALL 存全固件RPM wrall 写全固件RPM svhawk保存HAWK全固件 wrhawk写HAWK全固件 svthawk保存HAWK磁道 wrthawk写HAWK磁道 initall初始化三项 getadpfrom40 从40拷贝MR适配进47 getadpfrom41 从41拷贝MR适配进47 raidergetadpfrom40 raider系列从40拷贝MR适配进47 raidergetadpfrom41 raider系列从41拷贝MR适配进47 svseqfull SEQ保存全固件 wrseqfull SEQ写全固件 SVBUC BUC保存全固件 WRBUC BUC写全固件 SVRAIDER RAIDER保存全固件 WRRAIDER RAIDER写全固件 kill headnum 这几个系列的砍头 adujst40 调整40模块 fmtcover 格式覆盖 SVORION ORION保存全固件 WRORION ORION写全固件 ORIONadp47 ORION配47 ROYL tp32 32位校准指针 ROYSF 自动开ROYL系列校准(从01开始跑,即第一个DC)处理完后,出现COMPLETELY(完成)此时需要手工断电通电一次,校准即开启。校准时候用POLL 0命令实时查看进程。 STOPROY 强制停ROY校准 ROYHEADTEST ROY测试磁头 ROYRE47 ROY配ROM ROYMAKEROM ROY配ROM BAKpermovl 备份11号ATA模块 新命令: SF、SFP校准 LDR自动载11 tpseq 设置校准起始指针 Get_adp_info 获取适配信息 Get_adp_new_info 获取适配信息(新) displayheadmap、hdmap 显示磁头映射 AAJSre40 AAJS盘从47拷贝MR到40 AAJSre47 AAJS盘从40拷贝MR到47 adjust_40(微代码,调用时.)适配40 adjust_47(微代码,调用时.)适配47 Adpzeus自适配ZEUS系列47 AdpR R系自适配47 K47 umaxhead UHEAD 砍头且设置47 kadpzeus headnum砍ZEUS所选磁头适配 cutmap uhead 关要砍的头的映射 SETPARM uhead设置所需磁头数的TPI和CAP getflash读取ROY备份ROM SA并保存 peirom配ROM svall 存全固件RPM,并存ROM.BIN, 11 PERMOVL.BIN, 35 RPLIST.BIN SVFW 保存全固件 SVBASE 存33 40 41 SVROM 保存192K ROM SV2ROM 保存256K ROM SVROMMOD 保存A 47 SVT UHEAD 保存所选磁头磁道 SVMOD OverlayNum 保存单个模块 WRBASE 写33 40 41 WRROMMOD 写A 47 WRROM 写192K ROM WR2ROM 写256K ROM WRALL 全写固件RPM RWRFW 自读自写全固件RPM wrFW 全写固件RPM WRT UHEAD 写入所选磁头磁道 WRTL UHEAD 写入所选磁头磁道 WrMOD BinFileNum 写入单个模块 SETHQ ULCAP设置HQ自定义CAP SETTAG ULCAP设置TAG自定义CAP scap显示CAP STPI显示TPI dpst、dpst1显示流程 EMDL编辑磁盘型号 ENTERSN编辑磁盘SN号 HT测试头 HDT UHEAD测试所选头 SETLBA ULBA设置自定义LBA setdcm udcm设置自定义DCM setTPI为全部磁头设置TPI setCap为全部磁头设置CAP ST0 UTPI为0头设置TPI ST1 UTPI为1头设置TPI ST2 UTPI为2头设置TPI ST3 UTPI为3头设置TPI ST4 UTPI为4头设置TPI ST5 UTPI为5头设置TPI ST6 UTPI为6头设置TPI ST7 UTPI为7头设置TPI SC0 UCAP为0头设置CAP SC1 UCAP为1头设置CAP SC2 UCAP为2头设置CAP SC3 UCAP为3头设置CAP SC4 UCAP为4头设置CAP SC5 UCAP为5头设置CAP SC6 UCAP为6头设置CAP SC7 UCAP为7头设置CAP RADP读103并重新适配47 REPAIR重建DIR SFLOG查校准LOG CM对比47和103 ClrRES prmFileID、ClrR prmFileID、Clrbinfile binfile清空所选模块 CLEARFILE UFILEID清空所选ID模块 CLRPSTLOG清除SPTLOG CLRLIST清除所有缺陷 kadp3 headnum、kadp2 headnum、kNEW2ROM headnum、knew3 headnum砍所选磁头适配 k0 headnum、k1 headnum、k3 headnum砍头 vp1、vp显示P VG显示G c4改28走C4 FmtR格式化固件区 cf清空缺陷 sz显示ZONE kz uznum ulba砍所选段位LBA SHOWZONE显示ZONE kZONE uzone砍所选段位 hr换ROM gb搞0B模块 h40换40
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值