我的台式电脑内置硬盘上有大量数据(约 500 GB)。其中包括音乐、视频、PDF……应有尽有。
我想将所有内容复制到外部 USB 硬盘(1.5 TB 容量)。
台式电脑运行的是 Ubuntu。首先,我只需插入并安装硬盘,然后将顶层文件夹拖到驱动器上。
它开始复制,但似乎进展非常缓慢。大约 10 分钟后,它只复制了大约 500 MB。我确信这比我用较少的总数据所能达到的速度要慢。
所以我想知道是否有更快捷的方法来做到这一点。
分段复制(即 500MB 左右)而不是一次性复制是否更好?
答案1
确保您使用的是 USB2.0 端口,并确保 USB 2.0 控制器标有“高速”——许多声誉不佳的制造商出售的“全速 (12)”USB 设备带有显眼的“USB 2.0”标签,这在技术上是准确的,但却会愚弄那些认为 USB 2.0 意味着“高速”的人。
还要检查您的 USB 硬盘是否有“同步“挂载选项已启用?这是导致速度变慢的另一个原因。您可以使用
mount -o remount,async... /dev/usbdisk ...
答案2
无论您的硬盘接口是什么,您都应该使用 rsync 来复制数据,它可以单独恢复传输和文件(--partial),它会为您提供进度,并且在目标媒体上验证校验和。
简而言之:
rsync -avP src/ dst/
如果您通过网络接口传输,请添加 -C 参数以启用压缩,在大多数情况下,您将受到带宽限制,因此即使内容已经被压缩,也不会影响性能。
如果可以的话你应该 tar 你的数据前传输它,它将减轻文件系统必须创建许多文件、添加时间戳、分配空间……在每个文件上的压力。
您可能会看到复制速度有所提高。
答案3
如果要复制的数据量非常大,我会将驱动器从外部机箱中取出,放入计算机内部,完成后再将其放回机箱中。我会留出几根 SATA 电缆和驱动器托架以备不时之需。打开机箱并在之后重新关闭它很耗时,但复制本身会快很多。
答案4
您没有提到 USB 磁盘上的文件系统是什么。它是 Linux 原生文件系统还是您使用的是 ntfs/fat32?我认为如果您必须通过 fuse,那么性能会受到影响。
首先,我只需插入并安装硬盘,然后将顶层文件夹拖到驱动器上。
如果你有那么多数据需要复制,我个人建议跳过 GUI,因为这会增加复制操作的开销。相反,我会使用众多 CLI 之一命令(cp、rsync、cpio、tar 等)用于复制文件。
将其分成 500MB 左右的部分进行复制,而不是一次性全部复制,这样是不是更好?
如果您正在使用 rsync 之类的程序,则没有必要以小组形式复制文件。