有很多关于如何安全拔出 USB 硬盘驱动器的信息。但是,这些文章往往停留在操作系统表示可以安全拔出电源的部分,或者您确定没有任何内容写入驱动器的部分等。
相关设置:
- Windows 10 电脑或 Windows 10 笔记本电脑
- 外部 USB 硬盘驱动器(不是 USB 记忆棒)
- 单击“弹出外部 USB 3.0”
- 等待“安全删除硬件”通知
在操作系统声明可以安全拔出 USB 硬盘驱动器后,驱动器上的 LED 在驱动器关闭前闪烁约 10 次。
我使用了东芝和希捷的一些外置 1TB 到 4TB 硬盘驱动器,它们在弹出时它们的 LED 都会持续闪烁大约 10 次。闪烁发生在操作系统说“可以安全删除硬件”之后。尽管操作系统仅限于查看完成的缓冲区刷新,而驱动器的固件可以检测写入何时完成,但即使驱动器刚刚插入并立即弹出而根本没有写入,也会发生 10 次闪烁。同样,当驱动器被广泛写入然后弹出时,它仍然是相同的 10 次闪烁。
一些理论:
10 次闪烁只是一种礼貌,以便在将多个驱动器插入一台计算机时更容易识别哪个驱动器被弹出。
在操作系统刷新其写入缓冲区和写入物理编码之间存在固定延迟。这可以解释为什么任何非零写入量都会在弹出时产生固定延迟。但是,如果写入和弹出之间有很长的延迟,或者根本没有任何(有意的)写入,那么 10 次闪烁仍然会发生。
10 次闪烁代表驱动器停放其头部的安全余量。不过,这听起来像是一个相当长的时间,只是停顿头部,每次眨眼持续大约一秒钟。
那么,在 LED 仍在闪烁时拔下硬盘驱动器是否安全?
我试图找到一个权威的答案,甚至查看希捷和东芝的网站,查看东芝的数据表。我正在寻找有关驱动器在关机闪烁序列期间所做操作的参考可靠来源的答案,以了解在该序列期间拔出电源是否安全。
以下是我检查的其他一些区域:
谷歌搜索:拔下闪烁的 USB 是否安全
我得到了一大堆关于如何安全拔出 USB 驱动器的提示,但与 USB 无关。
-
其他一些帖子出现了,主要与故障排除有关,但与弹出时的常规 10 次闪烁无关。
搜索超级用户:[usb] [硬盘] [windows-10] 弹出
这会产生 7 个结果(如果我将[hard-drive]替换为[external-hard-drive]则为 8 个结果),主要是关于问题。例行程序 10 在弹出时没有闪烁。
通常是这样,按照用户手册所说的去做
如果驱动器的固件写入正确,它会向 Windows 宣布它已准备好弹出。因此,这样做是安全的。
如果驱动器的固件写入不正确,它可能会宣布它已准备好弹出,同时仍忙于处理重要的事情。因此,弹出它是不安全的,但是,使用具有错误固件的驱动器弹出(或做任何其他事情)永远不会真正安全。
例如,这是一个随机的硬盘手册,上面写着:
请注意,没有提到 LED 活动。实际上,您应该检查驱动器的手册,如果它说“等待 LED 在摩尔斯电码中闪烁 EJECT”,那么您绝对应该这样做。不过,我还没有看到这样的手册。
如果您绝对需要您的数据,请验证您写入的数据的完整性,并进行备份。否则,当您在便携式 HDD 上的数据消失时,您一直等到 LED 闪烁 10 次这一事实并不能带来什么安慰。
我没有看到任何官方资料描述了安全删除后磁盘指示灯闪烁的原因,所以我在这里写的只是基于常识和观察。由于固件与操作系统交互的方式,某些磁盘会发生这种情况。
Windows 宣布,一旦设备从内存缓存中刷新了所有数据并发出信号让设备的固件停止运行,就可以安全地删除设备。
固件本身可能需要一些时间来处理降速命令。许多 USB 硬盘驱动器还包含缓存内存,如果磁盘被粗暴地断电,缓存内存就会丢失。固件将需要自己的时间来终止所有写入并降低磁盘转速。这样做时,磁盘的指示灯会闪烁。
在指示灯闪烁时拔下磁盘并关闭它肯定是不安全的,因为它们表明固件正在积极执行某些操作。一些磁盘可以通过使用非易失性高速缓存从突然断电中恢复,因此它们可以在磁盘从它们停止的位置上电时恢复。
从 Windows 10 版本 1809 开始,只要磁盘不闪烁,就可以安全地拔出磁盘。安全删除不再是绝对必要的,尽管我仍然会推荐它。
只有当外部驱动器的电气活动停止时,才能保证数据安全。闪烁表示外接驱动器仍在从计算机接收电力,因此我们不能确定某些数据操作不会发生。
在 Linux 中,这很容易确定,因为卸载和分离是两个独立的阶段:
Windows 没有 Power Off 命令,只有 Eject,这类似于卸载,因此在 Windows 中,在某些情况下关闭整个计算机可能会更好,因为这样可以保证外部驱动器也没有电。
不,它不(完全)安全!!!
它应该是(并且几乎在所有情况下都会),但在任何意义上你都不能绝对确定。
可悲的是,生活(总是)不是它应该的样子。
以我个人的经验,几年内只有几次(特别是 Windows 10 没有)我记得如果在系统启动后立即删除数据丢失或文件系统损坏。但它只发生在第二个人准备移除 USB 并在系统启动后(立即)逃跑并且在最后一刻需要写入操作时。
闪烁表示设备中的一些活动,或者至少是与用户的硬件(与操作系统无关)通信。某些 Seagate 型号的闪烁是错误代码[ avid ]通信。您可以使用您的模型检查这种闪烁方式(短脉冲或长脉冲)是否具有特殊含义。通常8个短脉冲表示字节零,
0
是程序的退出代码,完全没有错误......TLDR
前提。总的来说,这个问题的范围很广,不可能有其他单一的普遍有效的答案:可能涉及的型号和品牌太多。您必须同时参考硬盘的手册以及操作系统和驱动程序的说明,考虑最严格的,但您将无法绝对安全。
了解会发生什么。操作系统正在 USB 驱动器(HDD、SSD)上读取/写入。您要求从系统中删除此驱动器。操作系统停止/拒绝来自其程序的新 I/O 操作请求,等待当前 I/O 操作结束,并检查设备上是否有某个锁处于活动状态。当设备通知所有 I/O 操作已结束时,操作系统将释放设备,声明您可以安全地移除设备。
在理想的世界里,这应该足够了。
问题是......操作系统只能根据设备本身的回答来回答。通常设备固件和操作系统驱动程序都是闭源的,因此您必须依赖他们的文档和许可协议。问题是,双方的表现往往都受到重视。他们可能依赖于这样一个事实,即在系统启动和拔出设备所需的人类平均反应时间之间,现代设备通常有足够的时间来完成正在进行的内部操作。
此外,每一方的责任都受许可条款的限制。为尽可能保护公司而编写的限制,即使他们知道或应该知道损害的可能性(参见下面的 Windows 10,但您可以为设备制造商找到类似的信息)。
因此,由于他们提前承担后果并根据他们的表现进行评估,因此由您决定您可以在多大程度上信任他们并且您会感到安全。
当您至少有一侧是开源的时,您可以阅读会发生什么
安全及其含义。
现在我们甚至可以指定您希望在哪种意义上安全......
数据传输安全。正如我很少遇到的那样,您可能认为已将数据保存在外部驱动器上,但并未全部保存,或者 FAT(或等效文件)未更新......下次您检查时会发现一些扇区修复或某些文件不存在。启用写入磁盘缓存可能在过去发挥了作用。
硬件安全。在某些外部硬盘驱动器上,您可以感觉到(我确实做到了)在系统说您可以移除后的几秒钟内,它们仍在旋转(您甚至可以听到振动)。拔下电缆会中断能源供应。如果板没有以最大速度旋转,则很少会出现没有足够的能量将磁头安全停放在停车坡道上的情况[ 2 ]。
隐私安全。好的,让我们假设固件正在将一些数据从一个位置移动到另一个位置(一些 SSD 在后台执行此操作以旋转使用的扇区,某些 HDD 固件可能在扇区上执行相同操作,从而在扇区上出现读取问题)。在它复制新扇区中的数据之前,然后更新 FAT(或等效文件),最后释放旧扇区,或者在需要时从中删除数据。如果该过程在结束之前中断,您可以完成复制该数据的扇区,但不会正确报告和管理它。如果这是明智的数据,您将面临安全风险。
法律/经济安全。在许可条款中规定的范围内,您将受到数据丢失的保护,之后您将能够证明有罪和罪魁祸首......
结论:再等一会。
:-)
来自 Win10 许可条款 [9.d] [ 3 ]
而且
对于您的确切问题,不,在闪烁停止之前是不安全的。通常我看不到任何闪烁,但有时(不经常)我会看到并等待。这样可行。
我认为它“不安全”,原因很简单,你完全不知道现在驱动器内部发生了什么(Windows 也不知道)。
Windows 可能会发送一个刷新命令并得到一个“是的 OK”回复,然后您拔下插头,只是在下次插入磁盘时发现没有任何问题。
所以...驱动器在断电前闪烁 10 秒钟,很好。这将需要额外的 10 秒,真的……这 10 秒让你付出了多少代价?与丢失数据相比,这些秒数是多少?没有什么!给它那10秒。
现代驱动器(尤其是几乎所有外部希捷驱动器)会做一些奇怪的事情,例如叠瓦式磁记录,它通过重叠磁道来增加密度,并在一些不明显的条件下导致大量写入放大。您写入一个字节,硬盘可能需要重新排序一兆字节或两兆字节(也许?)。控制器可能会发现校验和错误并重新定位扇区,这可能会导致另外几兆字节被重写,无论如何。
几乎所有固态磁盘都是如此。您写入一个字节,控制器可能必须擦除一个完整的 512k 块,从旧块复制 53687091 个字节,然后写入您的单个字节。或者……什么东西。控制器可能会发现该块已达到其生命周期结束(变为不可擦除)并可能将其标记为这样,然后擦除一个不同的块,可能它必须做同样的事情 3-4 次。有些驱动器有两层或三层缓存,其中一些是易失的,有些不是,还有一些非常奇怪、晦涩的磨损均衡算法,它们也做一些非常不明显的事情。
你完全没有办法知道。安全完成可能需要 0.5 毫秒或 5 秒(不太可能,但仍然如此)。它可能会正确报告“flush OK”,也可能会不正确。就像,谁在乎正确性。我从“信誉良好的”制造商那里购买了 USB 设备(不仅仅是磁盘),这些设备非常违反标准,破坏了实现......这太可怕了。
甚至 Windows 的配置方式也可能会导致“意外”。例如,只要不发生写入,通常认为始终拔出驱动器是“安全的”。除非当您或其他人使用计算机时,例如打开性能模式(这会启用写入缓存并因此最终将在随意的时间断开连接到“不安全”的领域),这根本不是真的。
更奇怪的东西(MAMR 等)正在成为主流,我们无法知道你在 6 个月后购买的磁盘中的任何东西将如何工作(可能需要 10 秒,在此期间它会在盘片“最终确定”磁盘,无论如何?),从前编写“安全弹出”代码的人也不可能知道。
唯一真正 100% 安全的事情是没有闪烁的灯并且不再有来自驱动器的声音(声音在 SSD 上确实不是一个很棒的指示器,但在硬盘上它是一个非常好的指示器)。