How to Backup Raw Partition to Disk in Multiple Parts

backuppartition

I have an external drive for my iMac with a Windows-to-go and Linux system installed on it. It took an awful lot of work to get this set up just the way I needed, and am trying to find a way to back up the drive so that I can restore either system if things go wrong, especially given that Windows-to-go has no recovery environment. My main OS is macOS so I'd like to do the backup in that.

So far, I am doing the backups by dumping the contents of each partition to disk, e.g.:

dd if=/dev/rdisk2s2 of=/Volumes/Backups/external_drive_partition2 bs=1m

That works great, and I've already used it to restore my Windows partition after accidentally blowing it away. However, it causes real problems if I want this file to be backed up via an online backup service like CrashPlan or Backblaze, or even using Time Machine.

The problem, of course, is that these partitions are each 200 GB in size. Every time I update their respective backup, the whole file has been modified, and any of those services will now try to upload 200-400 GB of data, which will take weeks on my internet connection. Furthermore, Time Machine would quickly fill up my entire backup drive with multiple iterative backups of this file.

What I'd like to do is backup the raw partitions in multiple parts, say 50 MB chunks for example. Then each time I update the backup, each part is only overwritten if the data from that part of the partition has changed. That way, any online backup service will only upload the chunks that need to be uploaded.

Is there any software or method that can do this? I'm aware of a few programs in Windows that can do this sort of thing, but not in macOS.

I'm also open to alternative methods of backing up these partitions. If there's a better way, I'm all ears!

Best Answer

After some time, I eventually decided that the method I outlined was probably the best way to do this. So I wrote a piece of software that allows me to make backups the way I want: multipart-backup.

Perhaps someone else will eventually find it useful too!