我需要了解几件事:我连接到装有 Ubuntu 17.10 的笔记本的每支 USB 笔(2.0 和 3.0)都会导致写入文件的速度非常慢。如果我将 1GB(例如一部电影)粘贴到 3.0 笔上,它开始非常快(我认为速度刚刚好),但随后速度就会变得非常慢,并且会在 3 分钟内保持在 99%。我记得在装有相同 Ubuntu 版本和相同 USB 笔的旧电脑上没有遇到过这个问题。我可以做些什么来缓解这种情况吗?
答案1
复制到 RAM,然后复制到 USB 驱动器
您会看到复制过程会将数据写入 RAM 中的缓冲区,然后复制过程将忙于下一步,即将数据从缓冲区写入 USB 闪存盘的内存单元。不同版本的 Ubuntu 具有不同的“断点”,缓冲在此停止,写入 USB 驱动器开始,并设置复制速度。
我在多个版本的 Ubuntu 中都看到过这种现象,不同版本之间可能会有所不同。在使用以下软件创建 USB 启动盘时,这一点非常明显:韓國。以下是 mkusb 的输出,在 Ubuntu 17.10 中向 Sandisk Extreme USB 3 闪存盘写入数据时,
...
Installing 'lubuntu-16.04.1-desktop-amd64.iso' to '/dev/sdb' ... :
< "lubuntu-16.04.1-desktop-amd64.iso" pv -s 896532480 | dd bs=4096 of=/dev/sdb
Please wait for sync until 'Done' is written
(flushing file system buffers to the device)
855MiB 0:00:05 [ 150MiB/s] [===========================================>] 100%
218880+0 records in
218880+0 records out
896532480 bytes (897 MB, 855 MiB) copied, 19,4446 s, 46,1 MB/s
Syncing the device ...
Done :-)
p_clean:
live system or temporary superuser permissions
clean if necessary and return
sync
在这种情况下,刷新缓冲区非常重要,这样你才能确保写入 USB 驱动器的操作已完成,然后你就可以拔下 USB 驱动器。你可以使用以下命令
sync
为此目的。当 shell 返回提示时,同步已完成,并且缓冲区已刷新。
当您将文件写入文件系统并卸载该文件系统时,sync
会在卸载文件系统(分区)之前自动运行。但是当您从 iso 文件克隆到 USB 闪存盘时,目标驱动器中没有已安装的文件系统,因此您应该使用sync
。
寻找快速的 USB 3 闪存盘
USB 闪存盘之间的写入速度差异很大。一些 USB 3 闪存盘速度相当快,而另一些则并不比 USB 2 闪存盘快多少。如果你想要快速写入,你可以通过此链接获得有用的提示,
help.ubuntu.com/community/Installation/FromUSBStick#Notes_about_speed
通过擦除整个设备来恢复速度
当旧的 U 盘速度变慢(通常写入速度减半)时,我会用 mkusb(用零覆盖)擦除整个设备。这样我就可以恢复原始(或接近原始)的写入速度。我认为这是一种减轻内存单元内部管理负担的方法(将逻辑单元与物理单元连接起来,可能通过释放那些很少写入的单元(因为它们一直在存储数据)。但不要太频繁地这样做,因为会磨损。