为什么usb文件在12.10中传输速度如此之慢?

当我用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 

我已使用最新更新更新了我的系统。 可能有什么不对?

我担心你的问题没有解决方案。 USB慢速传输速率是Ubuntu历史上的一个幻像,它随时都会消失。 这是因为大多数情况下的开发人员无法重现此问题,因此不会发布解决方案。

您可以看到Ubuntu(及其“表兄弟”)中有关USB传输速率缓慢的讨论现象。 例如,您可以看到此线程 , 此讨论和此其他线程 。

有人说启用或禁用旧版USB支持进入BIOS可以解决问题,尽管它似乎是特殊的罕见情况。

在LaunchPad上报告了一个错误,提出了解决该问题的方法,但由于它有点过时,我现在无法评估它的有效性。 解决方法由Jean Pierre在Bug#66115中提出,他在此评论中讨论了解决方法,并在此更详细的评论之后 。

一个热门的讨论是关于在Nautilus安装设备时启用同步模式,虽然除了Konqueror(KDE相当于Nautilus)之外,我还没有找到任何为Nautilus禁用同步选项的人。

本超级用户问题中讨论了一些有效的解决方法。

如果你在这里没有运气,我会告诉你目前没有解决问题的办法。

目前在LaunchPad中报告了一个错误 ,您可以将其标记为影响您的问题。 如果您的硬件与该bug报告的硬件不同,您可以添加评论报告受影响的硬件。

尽管罗德里戈非常彻底地回答了悲观主义,但我怀疑大多数情况仅仅是因为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中的MOUNTOPTIONS行:

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

 MOUNTOPTIONS="noexec,nodev,noatime,nodiratime" 

嗯,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文件大小限制。

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

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

正如前面提到的罗德里戈马丁斯(大thx!)。

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

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