在“安全”弹出 USB 驱动器后拔下闪烁的 USB 驱动器是否安全?

Law*_*nce 63 usb external-hard-drive windows-10

有很多关于如何安全拔出 USB 硬盘的信息。但是,这些文章往往停留在操作系统说可以安全拔下电源的部分,或者您确定没有任何内容写入驱动器等的部分。

相关设置:

  • Windows 10 PC 或 Windows 10 笔记本
  • 外置 USB 硬盘(不是 U 盘)
  • 单击“弹出外部 USB 3.0”
  • 等待“安全移除硬件”通知

在操作系统声明可以安全拔下 USB 硬盘驱动器后,驱动器上的 LED 会在驱动器关闭之前闪烁大约 10 次。

我使用了东芝和希捷的许多外置 1TB 到 4TB 硬盘驱动器,它们在弹出时都会持续闪烁大约 10 次 LED。闪烁发生操作系统说“安全删除硬件”之后。尽管操作系统仅限于查看已完成的缓冲区刷新,而驱动器的固件可以检测到写入何时完成,但即使驱动器刚刚插入并立即弹出而根本没有写入,也会发生 10 次闪烁。同样,当驱动器被广泛写入然后弹出时,它仍然是相同的 10 次闪烁。

一些理论:

  • 闪烁 10 次只是一种礼貌,以便在将多个驱动器插入一台计算机时更容易识别哪个驱动器被弹出。

  • 操作系统刷新其写入缓冲区与写入物理编码之间存在固定延迟。这将解释为什么任何非零写入量都会在弹出时产生固定延迟。但是,如果写入和弹出之间有很长的延迟,或者根本没有任何(有意的)写入,则仍然会闪烁 10 次。

  • 10 次闪烁代表驱动器停放头部的安全余量。不过,这听起来像是要停住头的时间相当长,每次眨眼持续大约一秒钟。

那么,在 LED 仍在闪烁时拔下硬盘驱动器是否安全?

我试图找到权威的答案,甚至查看希捷东芝的网站,查看东芝案例中的数据表。我正在寻找有关驱动器在关机闪烁序列期间执行的操作的参考可靠来源的答案,以了解在该序列期间拔下插头是否安全。


以下是我检查过的其他一些领域:

Dmi*_*yev 38

通常是,按照用户手册说的去做

如果驱动器的固件写入正确,它会. 因此,这样做是安全的。

如果驱动器的固件写入不正确,它可能会在忙于处理重要事情的同时宣布它已准备好弹出。因此,弹出它是不安全的,但是,使用具有错误固件的驱动器弹出(或执行其他任何操作)永远不会真正安全。

例如,是一个随机的硬盘手册,上面写着:

  1. 单击“硬件和弹出媒体 - 图标”将出现一个弹出消息框,其中列出了连接到计算机的外部设备。
  2. 选择要弹出的东芝驱动器。几秒钟后,您将收到通知,提示您现在可以安全地移除设备。
  3. 单击“确定”,您现在可以拔下驱动器。

请注意,没有提及 LED 活动。事实上,你应该检查手册你的驱动器,如果它说:“等待LED在莫尔斯电码闪烁出EJECT”,你绝对应该这样做。我还没有看到这样的手册。

如果您绝对需要您的数据在那里,请验证您写入的数据的完整性,并进行备份。否则,当您在便携式 HDD 上的数据消失时,您一直等到 LED 闪烁十次的事实将没有什么安慰。

  • @Lawrence:信号并不是专门“准备好弹出”,它更像是“所有挂起的操作(通过命令#X)都已完全提交”。操作系统,因为它知道它将弹出驱动器,所以在刷新/同步后不会发送任何新命令。 (11认同)
  • 这很有意义。我不知道操作系统从驱动器收到了弹出就绪信号。 (2认同)
  • @Lawrence:嗯,大多数操作不使用刷新/同步命令。但也许操作系统也会发送“停车头”或类似信息(闪存驱动器会将其解释为准备断电,即使它没有要停车的头) (2认同)
  • 驱动器不再在“每次操作”的基础上闪烁,许多驱动器只有“LED 亮”和“LED 灭”状态,当“打开”时它会闪烁。尝试将一个 1 字节的文件写入 SSD 或拇指驱动器(或在 Linux 中,“触摸”一个文件)——您可能会观察到,对于一次微小的写入,它会快速闪烁一两秒。我认为这更像是 UI 的事情,闪烁持续的时间足够长以供用户感知......因此,最后 10 次(或多少次)闪烁是最终写入后的持久性。 (2认同)

har*_*ymc 17

没有看到官方介绍Safely remove后磁盘指示灯闪烁的原因,所以我写在这里只是基于常识和观察。由于固件与操作系统交互的方式,某些磁盘会发生这种情况。

Windows 宣布,一旦设备从内存缓存中刷新了所有数据,并通知设备的固件停止旋转,就可以安全地移除设备。

固件本身可能需要一些时间来处理降速命令。许多 USB 硬盘驱动器还包含高速缓存存储器,如果磁盘被粗暴地断电,这些高速缓存存储器将会丢失。固件需要自己的时间来终止所有写入并降低磁盘转速。这样做时,磁盘的指示灯将闪烁。

在指示灯闪烁时拔下磁盘并关闭电源肯定是不安全的,因为它们表明固件正在积极地做某事。某些磁盘可以通过使用非易失性高速缓存从突然断电中恢复,因此当磁盘从停止的地方通电时,它们可以恢复。

从 Windows 10 版本 1809 开始,只要磁盘不闪烁,就可以安全地拔下磁盘。安全删除不再是绝对必要的,尽管我仍然会推荐它。

  • @DmitryGrigoryev:当驱动器*声称它已将自己的缓存刷新到盘片时,它会返回。您可以阅读 SQLite 源代码或 Linux 内核源代码中关于驱动器的一些 NSFW 注释,容我们说,为了改进基准数据,这些驱动器“不太诚实”。 (16认同)
  • 您能否为您的最后一句话提供任何来源(关于自 Windows 10 版本 1809 以来不再需要安全删除)? (10认同)
  • @gronostaj:当然。Microsoft 文章 [Windows 10 版本 1809 及更高版本:更改外部存储介质的默认删除策略](https://support.microsoft.com/en-us/help/4495263/windows-10-1809-change-in-外部媒体的默认移除策略)。 (10认同)
  • 而且我很确定 Windows 不只是发出信号让驱动器停止旋转并结束它。IMO 它首先发送 [SCSI 同步缓存命令](https://www.systutorials.com/docs/linux/man/8-sg_sync/),只有在 HDD 将自己的缓存刷新到盘片后才会返回。 (10认同)
  • 想想你的倒数第二段,这也意味着 Windows 现在默认为“快速删除”正在使用户产生一种错误的安全感:( (5认同)
  • @DmitryGrigoryev:SQL RDBMS 的 ACID 保证关键依赖于确保数据实际上在旋转锈蚀上持久化,因此它们将*大量*使用同步写入。数据库和数据库负载也恰好是一个非常有利可图的基准测试目标。这会激励文件系统作者和 HDD 制造商在同步写入上作弊。因此,这不是基准测试结束时的单个同步,而是在写入原子数据后持续同步。 (4认同)