I'm trying to migrate my data from an old external hard drive to a new one. When I copy and paste from within Finder, the data seems to expand to take up much more space, so I'm assuming some link structure is being lost. What's the most robust way to do this?


I have a Mac Pro running High Sierra with 1TB internally, plus a 4TB external drive that I use for data, including iMovie projects. It's formatted as Mac OS Extended (Journaled). The external drive is now full, so I want to replace it with a new 10TB drive. I've formated the new drive identically, and now want to transfer all my files across to it. When I did this by copying and pasting within Finder, I noticed something strange - Disk Utility tells me that the space used on the old drive was 3.9TB, but on the new drive this had jumped to 5.2TB. Looking at the original folders individually, I see that they indeed add up to 5.2TB, which is clearly impossible since they fit on a 4TB drive. I notice that there's an iMovieEvents folder and an iMovieLibrary package, both of size 1.35TB, and I'm assuming that some links between these are using the same data twice. So how can I best copy the entire drive with all its link structures etc onto the new drive? Rsync? cp? Thanks.

  • 1
    Carbon Copy Cloner is a good disk duplication app. – Chris Paveglio Mar 27 '18 at 20:04
  • Yes CCC is a good app for that (it uses rsync) - However to find out what the issue is use something like OmniDiskSweeper to see what the directory sizes are. If it is just the iMovie it might help to edit this question down to just that – Mark Mar 27 '18 at 21:19
  • CCC looks good, but for something so simple as 'copy everything exactly', I'd hope not to have to use 3rd party software. I was hoping for eg an rsync line with a few flags. But I don't know exactly what those flags should be to keep High Sierra happy with the current version of its bundled rsync. I actually found an rsync example from 5 years ago, but was nervous about trusting something tuned for 3 major OS releases back. (And even that old example suggested installing a different rsync version first.) – thund Mar 28 '18 at 16:51

This might be due to the file system’s allocation size.

To check, use Get Info to get the space on disk for a tiny file on both disks.

For a more definitive answer, try this command in Terminal on each disk:

stat -f %k .

If the large disk uses a larger size, your small files will take extra space. That can be resolved, but it might not be worth the work.

  • Yes, that seems to be making a significant difference - in GetInfo a 4542 byte file is shown as using 8k on disk on the old drive vs 16k on disk on the new drive. However, stat -f %k . is showing 4096 for each drive. Was that the right command? – thund Mar 28 '18 at 16:40

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .