曾用于RAID阵列的硬盘无法格式化,出现诡异15位模式问题求助
兄弟,你碰到的这个问题真的挺蹊跷的,我先帮你拆解下各个现象的可能原因,再给你几个可行的尝试方向:
关于Mac识别出1.6TB容量的问题
这个大概率是遗留的RAID元数据在搞鬼。以前的BIOS RAID(比如你说的RAID 0+1)会在硬盘的特定扇区(通常是磁盘末尾或者隐藏扇区)存储RAID组的配置信息,Mac的diskutil在扫描硬盘时,误把这些RAID元数据当成了磁盘的容量标识,所以才会把500GB的硬盘识别成1.6TB。而当你用dd if=/dev/zero of=/dev/sdb全盘清零后,这些RAID元数据被彻底擦除了,Mac找不到任何能识别的分区表或RAID签名,自然就认不出硬盘了——这个现象其实是正常的,不用太奇怪。
核心诡异问题:16位字最高位丢失
你测试的写入全0xFFFF后读出变成0x7FFF(也就是每个16位字的最高位被强制清零),这个情况大概率指向硬盘硬件层面的故障,而且你换了IDE通道还是一样,排除了线缆、接口的问题,那就更倾向于是硬盘本身的问题了:
- 可能是硬盘的磁头组件出现了故障,导致无法正确写入/读取最高位的比特;
- 也有可能是硬盘的固件或内部电路出了问题,对数据做了错误的位掩码处理;
- 虽然可能性很低,但也可以排除下是不是当年的RAID控制器做了某种特殊的私有编码(不过RAID 0+1这种标准阵列一般不会搞这么奇怪的操作)。
可行的尝试方向
使用硬盘厂商的官方低格工具
各大硬盘厂商都有自己的专用工具(比如WD的Data Lifeguard、Seagate的SeaTools),这些工具可以直接和硬盘固件通信,能彻底清除RAID元数据,甚至修复一些固件层面的小问题。你可以下载对应品牌的工具,用U盘引导启动后对硬盘进行低级格式化或者固件重置,这是目前最有可能解决问题的方法。检查硬盘SMART信息
在CentOS里用smartctl工具(需要先安装smartmontools包)检查硬盘的SMART健康状态,命令如下:smartctl -a /dev/sdb看看里面有没有坏道计数、磁头错误、读写错误之类的异常指标,如果有大量硬件错误,那基本可以确定硬盘已经损坏了。
彻底物理销毁(万不得已的情况)
如果上面的方法都没用,那这些硬盘的硬件故障应该是不可逆的。这种情况下,不建议你卖给别人或者送人——因为稳定性完全没法保证,很容易导致数据丢失反而惹麻烦。最好的处理方式是找专业的销毁机构做物理销毁,或者自己用锤子敲碎盘片(注意安全),避免数据泄露的风险。
补充你提到的GParted尝试的问题
你用GParted后出现硬件错误提示,这进一步验证了硬盘存在物理故障的可能性,毕竟GParted在操作时会直接和硬盘底层交互,有硬件问题的话很容易触发错误提示。
备注:内容来源于stack exchange,提问作者Bruce Skingle




