在 Windows 中,您通常可以在物理拔下 USB 存储设备之前“弹出”它以避免数据损坏。
但是,对于某些设备,Windows 不提供“弹出”选项。我在一些智能手机上最常看到这种情况。
为什么是这样?
Mok*_*bai 69
可能是因为用于将文件传输到手机的方法(MTP而不是USB 大容量存储)将数据和文件系统完整性的责任放在接收数据的设备上,在手机的情况下也被认为是智能和自我- 供电或有备用电池。
USB 大容量存储设备通常是愚蠢的记忆棒或硬盘驱动器,手机、相机等MTP设备通常是合理的智能设备,可以亲自处理它们的存储。因此,文件传输可以在点对点意识形态中发生,而不是在智能主机-哑客户端模式中发生。一旦数据被“发送”到手机,就由手机操作系统和文件系统方法来确保文件的正确存储。
如果文件传输中断并因此部分传输,则手机可以决定是释放任何分配的空间还是根据具体情况显示传输的内容。我怀疑大多数中断的传输只会丢弃不完整的数据并释放任何已分配的块。文件系统完整性由电话主动管理。
由于这种传输要么发生要么不发生,并且不需要进行软件弹出,唯一的原因是让使用计算机的人可以获得“我完成了”温暖的感觉。从硬件的角度来看,USB 肯定不需要它,并且对热插拔设备非常满意。
从 MTP 维基百科页面:
例如,使用 MTP 而不是 USB 大容量存储设备类 (MSC) 的一个主要原因是后者在大容量存储设备块(通常实际上是 FAT 块)的粒度上运行,而不是在逻辑文件级别。换句话说,USB 大容量存储类旨在让主机计算机无差别地访问大容量存储设备,例如紧凑型闪存,而不是访问可能与目标设备安全共享的文件系统(主机可能正在修改/访问的特定文件除外)。因此,在实践中,当 USB 主机安装了 MSC 分区时,它会承担存储的绝对控制权,然后在主机断开连接之前,设备可能无法在没有数据损坏风险的情况下安全地修改存储。此外,由于主机对连接的存储设备具有完全控制权,因此存在主机损坏文件系统、将其重新格式化为 USB 设备不支持的文件系统或以其他方式对其进行修改的风险USB 设备无法完全理解它。
bwD*_*aco 18
这最终取决于设备是使用 MSC 还是 MTP/PTP。通常,闪存驱动器和外部硬盘驱动器等专用存储设备使用 MSC,而智能手机和其他需要在连接到计算机时保持对数据的访问或需要控制传输的数据的设备将使用 MTP。许多相机使用 PTP,它是 MTP 的一个子集。
如果设备使用 MSC,则需要先将其从计算机中弹出,然后才能将其移除。如果它使用 MTP 或 PTP,则不需要弹出。
大容量存储类 (MSC)允许计算机以与内部硬盘驱动器或 SSD 几乎相同的方式与驱动器通信,使其比其他协议传输数据更快。这就是 USB 闪存驱动器和外部硬盘驱动器等专用存储设备所使用的。但是,它需要块级访问底层存储介质,这意味着对设备的独占访问。因此,MSC 不适用于智能设备,因为它们需要能够在计算机使用文件系统时访问文件系统的内容。智能手机实际上需要关闭其操作系统,然后才能授予对计算机的块级访问权限——这是一个繁琐的过程,并且会阻止您在连接时运行应用程序或以其他方式使用设备。确保数据已完全传输是计算机的责任,因此您需要通过弹出它来告诉计算机您已完成传输。
大多数智能设备使用的媒体传输协议 (MTP)涉及文件级访问,并且设备而不是主机负责管理数据。智能手机使用 MTP,因为它们需要能够在设备连接到计算机时访问数据。MTP 还允许设备控制或限制可以传输的数据;某些(主要是较旧的)数字媒体/MP3 播放器使用 MTP 对传输的文件实施复制保护 (DRM),或确保传输的媒体文件与设备兼容。由于 MTP 只是呈现一个分层的文件/文件夹结构,因此计算机无需担心文件系统或设备如何存储数据。在任何情况下,使用 MTP,都不需要显式弹出命令;一旦设备告诉系统传输已完成(进度对话框已关闭),您就可以移除设备而无需明确弹出它。
MTP 是图片传输协议 (PTP)的超集,最初是为相机与计算机通信而设计的。许多相机仍然使用 PTP,但有些支持 MSC,有些允许在 MSC 和 PTP 之间进行选择。此外,某些相机支持通过称为PictBridge的协议直接打印,该协议需要 PTP。与 MTP 一样,PTP 不需要弹出命令。相机是否可以使用 MSC、PTP 或两者都使用取决于相机在连接到计算机时如何处理其存储。
请注意,如果您从相机中取出存储卡并将其插入计算机上的 SD 卡插槽或其他媒体读取器,它将是一个 MSC 设备,您需要在完成传输图片后将其弹出。
如果两个设备都有自己的能源,例如计算机和智能手机,就有足够的空间来正确处理传输中断或任何其他故障。该设计依赖于持续可用的电源,这是允许其他因素(通信)容错的稳定因素。如果没有它,在特殊情况下,例如如果突然从智能手机中取出电池或强行关闭 PC 电源,这些设备及其系统实际上并不比哑 USB 驱动器具有更高的抗错能力。(chkdsk有人吗?)那些容错设备只是依靠足够的时间来优雅地解决预期的问题。
但是由主机供电的设备几乎没有时间对断开电源做出任何反应。在这样的设备中托管文件系统不仅意味着为用户请求提供服务,还意味着对用户未知的主机后台进程进行的后台读取和写入的可用性。用户永远不知道当前是否正在发生通信。因此,必须提供一种明确的方式来表示主机必须停止任何操作的断电意图(并且是 Eject 命令)。然后等待突然断电而没有风险。因此,“Eject”事件是在我们仍然可以依靠连续操作的同时开始正确完成的简单方法。而现在的实质与上述案例无异:权力被授予在所有必要的行动中。完成后,主机发回信号(因为是用户物理控制电源中断)现在可以安全地突然中断设备的电源而没有风险。
因此,我们看到最重要的设计驱动因素之一是设备是否能够自主运行以有时间处理故障。如果不是,则必须通过 Eject 命令请求事先明确完成。
| 归档时间: |
|
| 查看次数: |
12192 次 |
| 最近记录: |