A couple years ago some folks published a pair of fairly extensive reviews of backup software for Mac OS X. Titled "The State of Backup and Cloning Tools under Mac OS X" and "Mac Backup Software Harmful", they concluded that many Mac OS X backup utilities (including CCC) were not up to the task of adequately backing up files on Mac OS X. Metadata, it claimed, was often lost in transit. While this article had the beneficial effect of making many developers pay closer attention to Mac OS X filesystem metadata, it also had the unfortunate side effect of causing unnecessary panic among most end users. Here's why:
Many filetypes include support for metadata. For example, TIFF includes support for hundreds of different kinds of metadata like the location where the picture was taken, author name, camera specifications, etc. These metadata are stored inside the TIFF file, so it's rather difficult to lose these during a backup. Filesystem metadata, on the other hand, include things like permissions, ownership, creation/modification date, and access controls. There are also "extended" attributes -- data associated with a file that is not stored in the file itself. Resource forks fall into this category. All of these filesystem metadata reside within the filesystem directory, separate from the data fork of the file, therefore it is possible to lose this information when transferring files from one volume to another.
Obviously the preservation of both kinds of metadata is important, however there was never cause for concern about the loss of filetype-specific metadata. I'm also not trying to suggest that they intentionally instigated concern about filetype-specific metadata loss, but the difference is lost upon the layman if you don't call out the two types of metadata explicitly.
Due to the concern raised by this article, and because it is not updated on a regular basis to keep track of developer responses, I have decided to post the outcome of CCC's "Backup Bouncer" test here. Backup Bouncer is an automated test suite developed by Nathaniel Gray that determines how well Mac OS X file metadata is conserved. To analyze the accuracy of your backup, you would first use the test suite to create a "source" volume that contained several samples of typical and edge-case metadata. Next you would use your backup utility to backup the data to a "target" volume, and finally you would use Backup Bouncer to compare the two volumes and report how well metadata was preserved.
The following report compares two volumes after Carbon Copy Cloner copied the "Source" volume to the "Target" volume. The "Cloning method" in CCC was set to "Backup everything". Tests in blue are tests that I added to the test suite to make it even more thorough. I've actually made numerous changes to Backup Bouncer to make it more robust and applicable to more OSes.
bash-3.2# ./bbouncer verify -d /Volumes/Source/ /Volumes/Target/ Verifying: basic-permissions ... ok Verifying: timestamps ... ok Verifying: symlinks ... ok Verifying: symlink-ownership ... ok Verifying: hardlinks ... ok Verifying: resource-forks ... Sub-test: on files ... ok Sub-test: on hardlinked files ... ok Verifying: finder-flags ... ok Verifying: finder-locks ... ok Verifying: creation-date ... ok Verifying: bsd-flags ... ok Verifying: extended-attrs ... Sub-test: [ on files ] ... ok Sub-test: creation time ... ok Sub-test: modification time ... ok Sub-test: [ on locked files ] ... ok Sub-test: creation time ... ok Sub-test: modification time ... ok Sub-test: [ on directories ] ... ok Sub-test: creation time ... ok Sub-test: modification time ... ok Sub-test: [ on symlinks ] ... ok Sub-test: creation time ... ok ok Verifying: hfs-compression ... Sub-test: decmpfs xattr ... preserved Sub-test: UF_COMPRESSED flag ... set Sub-test: file contents ... match Sub-test: creation time ... ok Sub-test: modification time ... ok Sub-test: hard link inode ... ok Sub-test: hard link decmpfs xattr ... preserved Sub-test: hard link UF_COMPRESSED flag ... set Sub-test: hard link modification time ... ok ok Verifying: hfs-compression_large ... Sub-test: decmpfs xattr ... preserved Sub-test: UF_COMPRESSED flag ... set Sub-test: file contents ... match Sub-test: creation time ... ok Sub-test: modification time ... ok Sub-test: hard link inode ... ok Sub-test: hard link decmpfs xattr ... preserved Sub-test: hard link UF_COMPRESSED flag ... set Sub-test: hard link modification time ... ok ok Verifying: access-control-lists ... Sub-test: on files ... ok Sub-test: on locked files ... ok Sub-test: on dirs ... ok Sub-test: on non-inherited acls ... ok Sub-test: on inherited acls ... ok ok Verifying: fifo ... ok Verifying: devices ... ok Verifying: combo-tests ... Sub-test: xattrs + rsrc forks ... ok Sub-test: lots of metadata ... ok ok
Flying colors! CCC passed every single test. I repeated this test using several other settings -- "Incremental backup of selected items", remote and local source and target volumes, PowerPC and Intel clients, Snow Leopard, Leopard and Tiger OSes. In every single case, CCC passed every single test. So there you have it! CCC is accurate *and* safe. Sleep well!