Mac – Time Machine – How does one convert Backups.backupdb to a backupbundle

backupcatalinatime-machine

I recently had a critical drive failure on my network drive that I use for Time Machine backups. Creating the first backup over the network (with ~1TB of data) will be painfully slow.

I've already created a backup using Time Machine on the drive mounted via USB, however this is a Backups.backupdb folder structure, not a backupbundle disk image that Time Machine uses when working over the network.

Is there a way to create/convert a new backupbundle file with the Backups.backupdb folder such that I don't have to run a first full backup over the network? Alternatively, is there a way to convince Time Machine to use the backupbundle structure when backing up over USB?

Best Answer

While I haven't tried this personally, I recently came across a workaround posted on the MacRumors forums that claims it should work:

There is a work around to do this. Attach the drive to the router (assuming it supports Time Machine) then start a backup to the disk using Time Machine. Give it a couple minutes to get started, then stop it and disconnect.

Now attach the drive to the Mac over USB. Look in Finder and you will see a sparse bundle with the partial Backups.backupdb file there. Just delete that file and empty the trash.

Now turn on Time Machine and do a full backup. When it is done you will have the full Backups.backupdb on the drive. Just move that from the root of the drive into the sparse bundle. Now connect it back to the router and turn TM back on. It will pick up where it left off with incremental backups going forward.

Another variation on this method creates a local Samba file share mount on the USB drive as a workaround. Full details in the linked answer, but a summary snippet follows:

sudo ifconfig lo0 alias 127.0.0.2/32

Plug your usb drive, then via System Preferences / Sharing add a smb share to a folder time-machine-macbook in the drive time-machine-usb Then, add a destination backup (Time Machine will see it as a network share)

sudo tmutil setdestination -a "smb://user:password@127.0.0.2/time-machine-macbook"

If there is a simpler/more direct way to do it though, that would be awesome to know! I was thinking maybe something in the tmutil command line program may be able to do it, but haven't yet tried.

According to Apple's Disk Utility User Guide, it appears possible to manually create a sparsebundle disk image:

  • In the Disk Utility app on your Mac, choose File > New Image > Blank Image
  • Enter a filename for the disk image, add tags if necessary, then choose where to save it.
  • In the Name field, enter the name for the disk image.
  • In the Size field, enter a size for the disk image.
  • Click the Format pop-up menu, then choose the format for the disk:
    • I believe for Time Machine you will need to choose Mac OS Extended (Journaled) or Mac OS Extended (Case-sensitive, Journaled) (reference)
  • To encrypt the disk image, click the Encryption pop-up menu, then choose an encryption option.
  • Click the Partitions pop-up menu, then choose a partition layout.
  • Click the Image Format pop-up menu, then choose an option:
    • Sparse bundle disk image: Same as a sparse disk image (below), but the directory data for the image is stored differently. Uses the .sparsebundle file extension.
    • Sparse disk image: Creates an expandable file that shrinks and grows as needed. No additional space is used. Uses the .sparseimage file extension.
  • Click Save, then click Done.
  • Disk Utility creates the disk image file where you saved it in the Finder and mounts its disk icon on your desktop and in the Finder sidebar.
  • In the Finder, copy your files to the mounted disk image, then eject it.

Edit Note: macOS Catalina appears to use the extension backupbundle instead of sparsebundle, but it seems that this file is still mountable in the same ways as previously.