作为 Seagate 的固件工程师,从硬盘的角度给你说一下。USB 硬盘在连接到电脑时,通过 USB 供电,盘片一直处于转动状态,可能是低速的如果不在进行读写操作。低速操作很容易误以为硬盘不转,可以用手斜一下硬盘,就可以感受到硬盘的动作。

  直接拔掉 USB 其实不太可能造成硬盘固件的损伤,主要是硬件方面的。因为硬盘一直在转,突然断电,盘片不可能直接停下,另外控制读写的激光头(head)可能因为 servo 不及时归位对盘片产生硬接触,造成不可逆的损伤。

直接拔除移动硬盘

  选择卸载磁盘有两层操作:
1:关闭所有打开的文件,并且确保缓存里的数据已经全部写入;
2:完成后通知设备进入关闭模式,硬盘把磁头收好马达停转。

  移动硬盘里面的盘体一般是蓝盘或者绿盘(已停产并入其他产品线)或者其他厂商类似产品。这种盘有比较激进的省电策略,没有活动的话十秒甚至几秒就会停泊磁头,然后再等一会儿就停转了,这是为了省电,也为了降低突然卸载、震动带来损坏的风险。

  在活动状态拔掉,写入到一半的数据肯定丢了,NTFS有比较完善的文件系统日志,一般来说没打开的文件或者整个文件系统不会受到影响,其他文件系统不知道。硬件上,硬盘磁头会被复位机构强制硬复位,这个比较粗暴,你能听到磁头咚一声收回来,SMART数据里POWER OFF RETRACT记录也会+1,虽说现代硬盘基本都比以前皮实很多,但这个仍然是有损坏风险的操作,这个数值很高的旧硬盘别用,如果正常使用这个数值在增高的话,检查是否供电不稳。此外万一复位机构有一点不灵,或者这时候受到外力冲击(这个场景其实很常见,硬盘从桌子上滑下去,线拔掉几乎同时摔地上),可能会导致复位失败,磁头仍然停留在数据区,盘片停转的时候飞行的磁头就贴在盘面上了,这时候硬盘完蛋,你要再插电的话,数据也完蛋。

  在休眠停转的状态下,你直接拔对硬件不会有任何不良影响,只是操作系统如果把这个盘当作内置磁盘的话,可能会有延缓写入的策略,你又没有通过正常卸载的流程把缓存里的数据都写好了再断开,症状就是新写入的数据可能丢失损坏。