为什么USB文件传输在12.10中这么慢?


12

通过USB记忆棒复制文件时,我在12.04中得到了通常的4-8mbps。但是,升级到12.10后,当我尝试执行相同的操作时,只能得到200-300kbps。

我尝试了不同的USB记忆棒(在Windows 7上完美工作),但仍然遇到相同的问题。我之前在11.10上遇到过相同的问题,但是升级到12.04时一切正常,因此可能是内核问题。

这是的输出dmseg |tail

    mysterio@mysterio-HP-Pavilion-dv6700-Notebook-PC:~$ dmesg |tail 

[  871.023093] sdb: sdb1 
[  871.026909] sd 5:0:0:0: [sdb] No Caching mode page present 
[  871.026920] sd 5:0:0:0: [sdb] Assuming drive cache: write through 
[  871.026927] sd 5:0:0:0: [sdb] Attached SCSI removable disk 
[ 1036.226206] ISO 9660 Extensions: Microsoft Joliet Level 3 
[ 1036.233561] ISO 9660 Extensions: RRIP_1991A 
[ 1086.342973] ISO 9660 Extensions: Microsoft Joliet Level 3 
[ 1086.343010] ISO 9660 Extensions: RRIP_1991A 
[ 1173.971357] ISO 9660 Extensions: Microsoft Joliet Level 3 
[ 1173.971441] ISO 9660 Extensions: RRIP_1991A

我已经用最新更新更新了系统。有什么事吗


1
可能有很多原因。插入USB驱动器并输出后,请在终端中运行“ dmesg | tail”。如果存在驱动程序问题,则应该给出提示。另外,请告诉我们您的笔式驱动器上有什么文件系统(例如,可能为日志文件系统的日志保留的内存正在缓慢耗尽,因此性能会下降)。
soulsource

USB记忆棒如何格式化?
米奇

Answers:


22

我担心您的问题无法解决。USB慢速传输速率是Ubuntu历史上的一个幻影,它时有发生。发生这种情况的原因是,在大多数情况下,开发人员无法重现此问题,因此不会发布任何解决方案。

您会看到关于在Ubuntu(及其“表兄弟”)中USB传输速率变慢的讨论现象。例如,您可以看到此线程此讨论以及另一个线程

有人说在BIOS中启用或禁用Legacy USB Support可以解决此问题,尽管这在少数情况下似乎很常见。

LaunchPad上报告了一个错误,该错误提供了解决此问题的方法,但是由于它已过时,所以我现在无法评估其有效性。解决方案由Jean PierreBug#66115中提出,他在此评论中以及在更详细的评论中都谈到了解决方法。

热门讨论是有关Nautilus挂载设备时启用同步模式的,尽管除了Konqueror(相当于Nautilus的KDE)之外,我还没有发现有人为Nautilus禁用了同步选项。

此超级用户问题中讨论了一些怀疑有效的变通办法。

如果您在此之前没有运气,我将告诉您当前没有解决该问题的方法。

当前在LaunchPad中报告了一个错误,您可以将其标记为会影响您的问题。如果您的硬件与错误报告的硬件不同,则可以添加一条注释,报告受影响的硬件。


1
我也很担心 无论如何,距离13.04只有几天的路程,所以新的内核版本应该可以解决它
Mysterio 2013年

3
只是要记住,已经有一个错误报告bugs.launchpad.net/ubuntu/+source/linux/+bug/500069
desgua

@desgua感谢您的链接,尽管我仍然强调需要报告错误,因为错误#500069的问题与Mysterio问题不同,他的问题是传输速度慢,传输数据时系统不冻结,并且与USB有关在大多数情况下,适用于一种硬件的修复程序可能无法解决其他问题,因此最好创建新的错误报告。
罗德里戈·马丁斯

2
@RodrigoMartins标题中的“冻结”应该很有趣并引起注意。漏洞标题是:“ USB文件传输导致系统死机;操作需要花费几小时而不是几分钟”
desgua

1
@desgua抱歉,我的母语不是英语,有时我没听懂哈哈
Rodrigo Martins 2013年

7

尽管Rodrigo的回答很悲观,但我怀疑其中大多数情况仅是由于usbmount或等效的热插拔处理程序的默认行为,导致了强制写入磁盘而不是缓存。您应该检查设备是否sync启用,例如,从中查找相应的行cat /proc/mounts。它可能看起来像:

/dev/sdb1 /media/usb0 fuseblk,sync,rw,nosuid,nodev,noexec,noatime,user_id=0,group_id=0,allow_other,blksize=4096 0 0

注意sync标志。您需要防止设置此设置。如果您手动安装,则应按照此答案更改fstab条目。如果是自动安装的,则tail /var/log/syslog在插入电源后立即查看输出,并查找类似以下的行:

Jul 21 19:28:51 my-machine usbmount[3823]: executing command: mount -tntfs -sync,onoexec,nodev,noatime,nodiratime /dev/sdb1 /media/usb0

如果它是由usbmount挂载的,则可以按照我的建议在另一个答案中进行更改,MOUNTOPTIONS/etc/usbmount/usbmount.conf从以下行中进行更改:

MOUNTOPTIONS="sync,noexec,nodev,noatime,nodiratime"

MOUNTOPTIONS="noexec,nodev,noatime,nodiratime"

1
更改我的mountoptions以删除同步,只是将我的文件副本从预计的4小时以上移动到了4分钟以上。很高兴我尝试了!这是为了使用USB1.1将3.3GB的文件传输到4GB的USB记忆棒[它可能是USB2,但我很确定它是1.1]。
pbhj

1

嗯,USB传输缓慢的原因有很多:

  1. 复制文件的大小。(文件越小,速度越慢)
  2. USB记忆棒的速度。
  3. USB记忆棒的格式化方式。(NTFS,Fat32或EXT4)

因此,如果将记忆棒格式化为NTFS,请继续阅读。

Linux上的NTFS与大多数其他文件系统驱动程序有点不同,因此要写入NTFS文件系统的数据实际上通过CPU。对于大多数文件系统,CPU不会直接处理要写入的数据。

这就是为什么在Linux中向NTFS格式化的记忆棒写入要比Windows上写入NTFS慢的原因。因此,您可以将USB记忆棒格式化为Ext4(仅Linux)或fat32两种方式都可以,但是文件大小限制为4 GiB。


我有类似的缓慢度/冻结(即使鼠标停止工作),现在我尝试了Ext4,但仍然遇到该问题(ubuntu 14)。
bartosz.r 2014年

1

我在Ubuntu 15.10服务器上编辑了/etc/usbmount/usbmount.conf,从此行中删除了“ sync”一词:

MOUNTOPTIONS="sync,noexec,nodev,noatime,nodiratime"

正如罗德里戈·马丁斯(Rodrigo Martins)之前提到的(谢谢!)。

它将480 mbps连接的HDD的写入速度从2 MB /秒提高到恒定的20 MB /秒,这是恒定且真实的,不是“缓存”,也不是虚拟速度。此驱动器在Windows计算机上的写入速度约为30 MB /秒。


0

我不知道这是否对其他人有帮助,但是当我在使用Ubuntu 13.04(速度为1mb / s或更低)的传输速度真的很慢时遇到问题时,这对我有用。无论如何,我在Ubuntu启动之前就将USB HDD插入USB端口,从而重新启动了计算机,在Ubuntu加载之前,它在黑屏上运行了一些脚本,之后在低端24mb / s上,我的传输速度确实非常好。

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.