为什么在 12.10 中 USB 文件传输如此之慢?

Mys*_*rio 12 12.10

通过 U 盘复制文件时,我在 12.04 中获得了通常的 4-8mbps。然而,升级到 12.10 后,当我尝试执行相同的操作时,我只能得到 200-300kbps。

我尝试了不同的 U 盘(在 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
Run Code Online (Sandbox Code Playgroud)

我已经用最新的更新更新了我的系统。可能有什么问题?

Rod*_*ira 23

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

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

有人说在 BIOS 中启用或禁用 Legacy USB Support 可以解决这个问题,尽管这似乎是特殊的罕见情况。

LaunchPad 上报告了一个错误,提供了解决该问题的方法,但由于它有些过时,我现在无法评估它的有效性。解决方法是通过提出让·皮埃尔错误#66115他对会谈的解决方法在此评论中之后这个更详细的评论

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

这个超级用户的问题中讨论了一些有效性可疑的解决方法。

如果你到这里都没有运气,我会告诉你目前没有解决这个问题的方法。

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

  • 只是要记住,已经有一个错误报告 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/500069 (3认同)
  • @RodrigoMartins 标题中的“冻结”应该很有趣并引起注意。漏洞标题是:“USB 文件传输导致系统死机;操作需要数小时而不是数分钟” (2认同)

小智 8

尽管 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
Run Code Online (Sandbox Code Playgroud)

注意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
Run Code Online (Sandbox Code Playgroud)

如果它是由 usbmount 挂载的,您可以按照我在另一个答案中的建议并将MOUNTOPTIONS行更改为/etc/usbmount/usbmount.conf

MOUNTOPTIONS="sync,noexec,nodev,noatime,nodiratime"
Run Code Online (Sandbox Code Playgroud)

MOUNTOPTIONS="noexec,nodev,noatime,nodiratime"
Run Code Online (Sandbox Code Playgroud)

  • 更改我的挂载选项以删除同步只是将我的文件副本从预计的 4 小时以上缩短到约 4 分钟以上。很高兴我尝试过!!这是为了使用 USB1.1 将 3.3GB 文件传输到 4GB USB 记忆棒 [可能是 USB2,但我很确定它是 1.1]。 (2认同)