为什么Windows没有为某些USB存储设备显示“弹出”选项?


48

在Windows中,您通常可以在弹出USB存储设备之前将其弹出,然后再将其拔出以避免数据损坏。

但是,对于某些设备,Windows不提供“弹出”选项。我最常见的是一些智能手机。

为什么是这样?



3
我不确定这是否重复。这是一个更广泛的问题,涵盖了可以连接到计算机的各种设备,而不仅仅是特定的外部硬盘驱动器。
bwDraco

Answers:


69

可能是因为用于将文件传输到手机(MTP而不是USB大容量存储器)的方法将数据和文件系统完整性的责任放在接收数据的设备上,在移动电话的情况下也被假定为智能和自我 - 动力或备用电池。

USB大容量存储设备通常是哑记忆棒或硬盘驱动器,诸如电话,相机等的MTP设备通常是相当智能的设备,其个人处理它们的存储。因此,文件传输可以发生在对等的意识形态中,而不是智能主机 - 哑客户端。一旦将数据“发送”到手机,就可以通过手机操作系统和文件系统方法来确保正确存储文件。

如果文件传输被中断并因此部分传输,则电话可以决定是否释放任何分配的空间或者根据具体情况显示传输的内容。我怀疑大多数中断的传输只会丢弃不完整的数据并释放任何已分配的块。手机主动管理文件系统完整性。

因为这样的转移要么发生要么不做,并且不需要进行软件弹出,唯一的原因是使用计算机的人可以得到“我已经完成”温暖的发光感觉。从硬件的角度来看,USB当然不需要它,并且对热插拔设备非常满意。

从MTP维基百科页面:

使用MTP而不是USB大容量存储设备类(MSC)的主要原因是后者以大容量存储设备块(通常在实践中,FAT块)的粒度运行,而不是在逻辑文件级别。换句话说,USB海量存储类旨在为主机提供对大容量存储的无差别访问,例如紧凑型闪存,而不是文件系统,可以安全地与目标设备共享(主机可能正在修改/访问的特定文件除外)。因此,实际上,当USB主机安装了MSC分区时,它假定存储的绝对控制,然后设备可能无法安全地修改该存储,而没有数据损坏的风险,直到主机断开连接为止。此外,由于主计算机可以完全控制连接的存储设备,因此存在主计算机可能损坏文件系统,将其重新格式化为USB设备不支持的文件系统或以其他方式修改它的风险。 USB设备无法完全理解它。


3
USB HDD没有此选项,它们是大容量存储,而不是MTP。
约翰内斯星期二

16
@ Alex.S我使用了几个USB硬盘,它们都具有弹出功能。在它们可能没有的情况下,我希望驱动器的USB控制器将其宣传为“固定”磁盘而不是可移动的,并且要么是故意的,要么在操作系统因任何原因运行时永远不会被删除,或者这是制造商的错误配置。这个问题指的是电话,所以我从这个角度回答,因为我知道具体原因的情况,即文件不是通过相同的方法传输的。
Mokubai

2
非常丰富的答案,谢谢你的时间@Mokubai。我大多只看到智能手机这个问题。但是,我确实用USB拇指驱动器遇到过这个问题。
迈克尔

这只是MTP的第二个优势。主要优点是文件系统可以同时由两个设备使用。仅支持USB大容量存储协议的旧手机必须先卸载文件系统才能通过USB访问。
卡斯佩德

1
为了增加一点,一些MP4播放器和数码相机使用MTP连接到PC。这不是一个新的协议,因为有些人会想到,因为它来自Android设备等。
Ismael Miguel

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设备,您需要在传输完图片后将其弹出。


7
不要让任何人告诉你这无所谓; 我警告我的前任几个星期停止扯她的USB钥匙。结果在电子表格上失去了两天的工作后,仍然没有停止这样做(也是备份!gees!)
在轨道上的轻盈竞赛

1
@LightnessRacesinOrbit然后确保为她启用了快速删除 - 它会减慢驱动器的速度,但是这样它就不必弹出usb棒
Baldrickk

3
@Baldrickk哦,她早已离开^ _ ^
轻盈

6

该设计还与设备的供电方式有关。

如果两个设备都有自己的能源,例如计算机和智能手机,则有足够的空间来实现传输中断或任何其他故障的正确处理。设计依赖于持续可用的功率,这是一个稳定的因素,可以使另一个因素(通信)容错。如果没有它,在特殊情况下,例如,如果电池突然从智能手机上移除或者PC被强行关闭,这些设备及其系统实际上不比哑巴USB驱动器更耐错误。(chkdsk任何人?)那些容错设备只是依靠足够的时间来优雅地解决预期的问题。

但是,从他们的主机供电的设备几乎没有时间对任何断开电源的反应。在这样的设备中托管文件系统不仅意味着提供用户请求,还意味着对用户未知的主机后台进程进行后台读取和写入的可用性。用户永远不知道当前是否正在进行通信。因此必须提供一种明确的方式来发信号通知断电的意图(并且是Eject命令),主机必须停止任何操作。然后等待没有风险的突然断电。所以“Eject”事件是一种简单的方式来开始正确的完成,而我们仍然可以依赖于连续操作。现在的实质与上述情况没有什么不同:授予权力在所有必要的行动中。完成后,主机发回信号(因为它是物理控制电源中断的用户),现在可以安全地突然中断设备的电源而没有风险。

因此,我们看到最重要的设计驱动因素之一是设备是否能够自主运行以便有时间处理故障。如果不是,则必须通过弹出命令请求先前的显式终结。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.