在 Windows 中,当您插入某个外部硬盘时,有 90% 的可能性您无法安全地将其拔出。一半情况下,您会收到某个程序正在使用它的消息,但实际上并没有,而且重新启动计算机没有任何效果,因此您不得不将其拔出。另一半情况下,它会告诉您可以安全地将其拔出,但实际上并非如此,因为拔出后您会听到咔嗒声。Mac 没有这个问题。它们总是能顺利“弹出”,没有任何咔嗒声。
无论如何,我的问题是,既然 Windows 开发人员无法修复这个导致硬盘损坏的 Windows 错误,那么为什么硬盘制造商不在硬盘中放置一个小电容器,以便在拔下电源后它有足够的电量来安全地停放磁头?
答案1
您错误地认为问题在于需要安全地停放磁头。几十年前,所有硬盘都已解决了这个问题(可能是使用电容器,也可能是使用旋转系统的惯性)。实际上,大多数人甚至不记得在早期的硬盘上,您必须明确地“停放磁头”。
您无法安全拔出它的原因是,出于效率原因,所有操作系统都会将部分磁盘管理数据结构保留在内存中。而且这些数据结构经常更改,因此不会一直被写出。而且所有操作系统(Mac、Windows、Linux)都需要您采取一些措施才能写入这些数据结构。
如果你收到某个程序正在使用它的消息,那么即使你认为没有,某个程序也在使用它。因此,当你强行拔下它时,你可能会丢失一些数据,因为磁盘管理数据结构仅在内存中更新,而尚未写出。
编辑
正如评论中指出的那样,硬盘使用的写缓存更加困难:因此,即使操作系统缓存(位于主存储器中,这就是我使用“存储器”一词的原因)已经写入磁盘,硬盘的写缓存中可能仍有需要写回的数据。
我不知道您听到的是哪种咔嗒声。咔嗒声通常意味着驱动器重新校准了磁头。发生这种情况最可能的原因是,当您强行拔下驱动器时,文件系统处于无效状态,因此在下次启动或插入时,Windows 会尝试恢复文件系统并将其置于良好状态。这可能涉及读取文件系统处于良好状态时未读取的扇区。这些扇区可能难以读取,因为它们已降级,从而导致咔嗒声。找出原因的一种方法是查看磁盘的 SMART 值,和/或找出这些扇区,然后尝试直接读取它们。
肯定是什么不是原因是由于“缺少电容器”,磁头没有正确停放,导致磁头碰撞并损坏了磁盘表面的一部分,现在由于磁头碰撞而出现读取错误。而且你越频繁地这样做,磁盘表面的损坏就越多。因为那会读到很多更多的读取错误。
答案2
停車處甚至不是最困难的部分,磁头停放非常简单,只需在断电时用磁铁将磁头从驱动器上拉下来即可。这是最容易处理的部分。困难的部分是保持驱动器旋转并正常工作以推送数据到磁盘。
一个电容器或一组电容器能够存储足够的电力,使驱动器在数据从缓存中清除时旋转几秒钟,然后允许磁头停放,这可能会占用当前驱动器空间的很大一部分。
它必须拥有强大的电子设备来应对快速消散和降低的电源电压,同时阻止任何回流到计算机中导致其更快放电。
即使这样,也不能保证操作系统有实际上将所有相关数据写入磁盘。它根本没有做任何事来确保数据的完整性。这取决于操作系统前断电后,确保操作系统不崩溃的唯一方法就是给整个机器配备电池。
答案3
Windows 7的关闭 USB 设备上的写入缓存。
下次插入外部 USB 硬盘。
打开设备管理器
选择按连接查看设备
找到您想要使用的 USB 和磁盘驱动器。
选择它,然后右键单击并选择特性。
打开政策标签。
[x] 写缓存策略。
取消选中该框以禁用此设备上的磁盘写入缓存。
接下来,请阅读以下内容。
您可以关闭设备上的 Windows 写入缓存缓冲区刷新。
完成此设置后最好重新启动计算机。
笔记这可能不适用于所有 USB 硬盘。您可能只能设置单选框,例如快速删除(默认)