当我将数据写入 USB 设备(如记忆棒或外部硬盘)时,Ubuntu 显示数据传输速度非常快,完成速度非常快。但是,当 Ubuntu 说完成时,USB 写入 LED 会闪烁很长时间。当我在闪烁期间拔出 USB 时,数据传输实际上并未完成,并且并非所有数据都已写入。
有办法解决这个问题吗?
答案1
发生这种情况的原因是 Ubuntu 从磁盘中取出所有要写入 USB 的数据并将其保存在 RAM 缓冲区中(取决于 RAM 的容量)。然后 Ubuntu 显示数据已写入 USB,但实际上数据当时正在从缓冲区传输到 USB。因此,如果您在传输过程中移除 USB(尽管 Ubuntu 已显示传输已完成),您会发现所有数据尚未传输。您可以使用
sudo iotop
检查磁盘和其他 I/O 之间的实时传输,当您发现传输确实完成后,您就可以安全地移除 USB。
答案2
在拔出驱动器之前,请先正确卸载驱动器。从终端,使用sync
使其写入现在,sudo umount /path/to/stick
才能正确卸载它。从 GUI 文件管理器中,有很多方法可以做到这一点 - 驱动器图标旁边可能会有一个符号,或者右键单击它并弹出或卸载。
在任何常见的操作系统中,您都无法可靠地拔出一根棒子,因为写入会被缓存,以使您的命令具有优先权 - 如果您进行了多次编辑并且它让您等待每次写入,您不会喜欢它。它与 Windows 的“安全删除”相同。