如何在Windows系统下使用hdparm工具执行Secure Erase?
如何在Windows系统下使用hdparm工具执行Secure Erase?
嘿,我来帮你搞定在Windows上用hdparm做Secure Erase的问题,尤其是你卡壳的“Not Frozen”状态这一步——其实这个问题的核心不在Windows本身,而是硬盘的冻结机制是BIOS层面控制的,咱们一步步来:
首先得明确:hdparm是原生的Linux工具,Windows上没有直接的版本,所以得先搭个类Linux环境,比如Cygwin或者MinGW,安装的时候记得选上hdparm工具包,这个是前提。
接下来重点解决硬盘“Frozen”状态的问题,这是Secure Erase的前置条件,Windows下可行的办法有这几个:
- 冷启动+BIOS设置调整:先彻底关机(别选重启),如果是台式机,拔掉目标硬盘的电源线等10秒再插上;笔记本的话,拔掉电源拆电池(如果能拆的话)等一会儿再装回去。然后开机进BIOS,找到SATA相关的电源管理选项(比如叫“SATA AHCI Link Power Management”之类的),把它改成“Performance”模式或者直接禁用,保存BIOS设置后进Windows,这一步能大概率解除BIOS给硬盘加的冻结锁。
- 休眠唤醒 trick:如果上面的方法没用,试试把Windows系统休眠(不是睡眠!),等系统完全休眠后再唤醒,然后再用hdparm检测状态,很多时候这能临时解除冻结。
等状态变成“Not Frozen”后,就可以执行Secure Erase了,步骤是这样的:
- 先确认目标硬盘没有被挂载:如果是外接硬盘,先安全弹出但别拔线;如果是内置非系统盘,去磁盘管理里删掉它的盘符,避免被Windows占用。
- 打开Cygwin终端(必须以管理员身份运行!),先输入
hdparm -I /dev/sda(这里的/dev/sda是Cygwin里的设备路径,对应你的目标硬盘,可能是/dev/sdb,你得自己根据hdparm -I的输出确认),再检查一遍“Security”区域的状态是不是“not frozen”。 - 设置临时安全密码:输入
hdparm --user-master u --security-set-pass 123456 /dev/sda(这里的123456是临时密码,随便设一个好记的就行),这是Secure Erase的强制要求,必须先设密码才能擦除。 - 执行Secure Erase:输入
hdparm --user-master u --security-erase 123456 /dev/sda,替换成你刚才设的密码,这时候就开始擦除了,耐心等完成(时间根据硬盘大小来,可能几十分钟到几小时)。 - 擦除完成后一定要清除密码:输入
hdparm --user-master u --security-disable 123456 /dev/sda,不然下次开机硬盘会被锁死,无法访问。
另外给你个备用方案:如果你折腾hdparm太麻烦,其实Windows原生的diskpart工具的clean all命令也能达到近似的效果——虽然它不是硬盘固件层面的Secure Erase,但会把硬盘所有扇区写0,数据基本无法恢复。操作也简单:打开管理员命令提示符,输入diskpart,然后list disk找到目标盘的编号,select disk X(X是盘号),最后输入clean all就行。
最后提醒一句:不管用哪种方法,擦除前一定要备份好数据!Secure Erase和clean all都是不可逆的,删了就找不回来了。
备注:内容来源于stack exchange,提问作者Hamit Can Karaca




