Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have a large amount of data - about 500 GB - on the internal hard drive of a desktop PC. This includes music, videos, PDFs... you name it.

I want to copy everything to an external USB hard drive (1.5 tb capacity).

The desktop PC runs Ubuntu. To being with, I simply plugged in and mounted the hard drive and dragged the top-level folder onto the drive.

It's started copying, but it seems to be proceeding very slowly. About 10 minutes later and it's only done about 500 MB. I'm sure this is slower than what I could achieve with less total data.

So I'm wondering if there's a quicker way of doing this.

Would it be better to copy it in portions of 500MB or so, rather than all at once?

share|improve this question

migrated from serverfault.com Aug 22 '09 at 12:22

This question came from our site for professional system and network administrators.

add comment

4 Answers 4

up vote 8 down vote accepted

Make sure that you are using a USB2.0 port and make sure the USB 2.0 controller says "high speed" -- a lot of disreputable manufacturers sell the "full speed (12)" USB devices with a prominent "USB 2.0" label on them, which is technically accurate but fools people who think USB 2.0 implies "High speed".

Also check if your USB hard disk has the "sync" mount option enabled? This is another cause for slowdown. You can remount the filesystem with

mount -o remount,async... /dev/usbdisk ...
share|improve this answer
    
+1 .. 500MB/10min = 50MB/min = 5MB/6sec = 0.83MB/s = 6.7Mb/s. it's not even hitting full speed. –  quack quixote Oct 10 '09 at 13:03
add comment

If I had a really huge amount of data to copy, I'd whip the drive out of the external enclosure and put it internally in the computer, and put it back in the enclosure when I was done. I keep a couple of SATA cables and drive bays open for just that sort of need. Opening up the enclosure and reclosing it afterwards it time consuming, but the copy itself will be miles faster.

share|improve this answer
add comment

Whatever is your interface to the harddisk you should use rsync to copy the data, it can resume transfers and files individually (--partial) , it gives you progress and checksums are verified on destination media.

In short:

rsync -avP src/ dst/

If you are transferring through a network interface add the -C argument to enable compression, in most cases you will be bandwith-bounded so it will not hurt performances even if the content is already compressed.

If you can you should tar your data before transferring it, it will relieve the filesystem of having to create many files, add timestamps, allocate space... on every file.
You'll likely see an improvement in speed of copy.

share|improve this answer
add comment

You didn't mention what file-system was on the USB disk. Is it a Linux native file-system or are you using ntfs/fat32? I think if your having to go through fuse it will cost you in performance.

To being with, I simply plugged in and mounted the hard drive and dragged the top-level folder onto the drive.

If you have that much data to copy, personally I would skip the GUI since that is going to add overhead to your copy operation. Instead I would use one of the many CLI commands (cp, rsync, cpio, tar, etc) for copying files.

Would it be better to copy it in portions of 500MB or so, rather than all at once?

If you are working with something like rsync, there should be no reason to copy files in small sets.

share|improve this answer
    
you're right, ntfs performance on linux is sloooooow. –  quack quixote Oct 10 '09 at 13:06
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.