HPA 与 DCO
二者是ATA/SATA硬盘固件层面的两种隐藏区域机制,普通Windows、磁盘管理器、DiskGenius默认看不到,只能通过底层ATA命令访问,早年大量用于OEM笔记本恢复分区、固件工具存储,取证、工控硬盘经常遇到。
1、HPA Host Protected Area 主机保护区域
ATA‑4标准定义,位于硬盘LBA地址的尾部。
- 原理:
SET MAX ADDRESS修改硬盘对外报告的最大LBA地址。硬盘真实总容量不变,对外只暴露前面一部分;尾部剩下的扇区就是HPA,普通OS/BIOS无法寻址。 - 关键特点
- 不修改SMART原生总容量 ,用
READ NATIVE MAX ADDRESS可以读出硬盘真实物理容量,可以直接用ATA命令解除HPA,恢复全部容量。 - 可以挂到别的电脑上,HPA配置保留。
- 典型用途:联想/戴尔老笔记本系统恢复镜像、硬盘厂商诊断工具、预桌面环境。
- 临时属性:清除HPA相对简单,hdparm、PC3000都可以重置。
- 不修改SMART原生总容量 ,用
Linux检测命令:
hdparm -N /dev/sda,对比max sectors和native max sectors是否一致。
2、DCO Device Configuration Overlay 设备配置覆盖(你说的DOC)
ATA‑6引入,比HPA层级更深,硬盘固件内部配置。
- 原理:修改硬盘IDENTIFY DEVICE返回的全部参数:不仅改报告容量,还可以屏蔽硬盘硬件特性(关闭NCQ、关闭缓存等),SMART也会上报修改后的虚假容量。
- 关键特点
- 优先级高于HPA:DCO开启后,甚至可以把HPA本身也隐藏掉。
- 固化在硬盘固件配置,部分硬盘DCO有签名锁,普通命令无法直接清除,恢复难度远大于HPA。
- 原始用途:OEM工厂,不同物理容量硬盘统一伪装成同一规格出货;二手盘市场会遇到人为DCO篡改容量。
- 普通分区软件完全无法识别真实磁盘大小。
HPA vs DCO对比简表
| 项目 | HPA | DCO |
|---|---|---|
| 标准 | ATA‑4 | ATA‑6 |
| 作用层级 | ATA接口层 | 硬盘固件层 |
| SMART真实容量 | 不变,可读取原生最大值 | SMART返回虚假容量 |
| 恢复难度 | 低,标准ATA命令即可清除 | 高,部分硬盘锁死,需要专业工具 |
| 能否屏蔽硬件功能 | 不能 | 可以关闭硬盘特性(缓存、NCQ) |
| 典型场景 | OEM系统恢复分区 | 工厂统一规格、二手盘篡改容量 |
现实场景注意
- Windows XP时代工控硬盘、老笔记本经常存在HPA;DCO家用盘很少,多见于翻新盘、OEM工厂流出盘。
- 普通格式化、重分区无法清除HPA/DCO,只是操作可见部分;尾部隐藏扇区数据依然保留。
- 做磁盘镜像、数据销毁时,必须专门解除HPA/DCO,否则镜像会漏掉尾部隐藏区域。
通俗理解
- HPA:告诉系统"硬盘到此结束",尾巴一截藏起来,硬盘自己知道真实大小,钥匙公开。
- DCO:硬盘固件自己骗自己,对外全盘谎报参数,部分硬盘钥匙锁死。