Apple APFS Snapshots – rolling them back?

I am using a new M1 Mac with macOS 12.0.1.

I installed software that caused all sorts of problems (I won’t mention the name). I suspected it might be problematic, so I used CCC to take a full backup first.

Specifically, I used CCC6 which created a snapshot on my internal drive, and then cloned this read-only snapshot to my external USB drive. I can’t use Time Machine at the moment because, well, bugs.

So rather than doing a full restore from the external drive, I just wanted to revert back to the snapshot on the internal, effectively discarding all changes on the drive after the snapshot was taken. A common thing in GNU/Linux with LVM, ZFS etc.

“Restoring a whole volume from a snapshot should normally be performed in Recovery.”

https://eclecticlight.co/2021/11/09/disk-utility-now-has-full-features-for-managing-snapshots/

Makes perfect sense. So I booted into recovery mode and went to time machine restore, but the snapshot would not appear.

I went into disk utility (under recovery mode) and it shows the snapshot.. But there is no option to rollback the APFS volume to that snapshot.

Frustrated!!

I figured out a hack to make it work. Be warned, that I discovered this by experimentation and if you attempt this yourself, you do so at your own risk.

I renamed the snapshot replacing the label given by CCC, to the standard naming format that Time Machine uses.

Which is (for example):

com.apple.TimeMachine.2018-03-01-002010

The last part is the snapshot date and time.

I used a date and time close to what the original was, and then returned to the Time Machine recovery option, and the snapshot appeared! I selected it, and within about 30 seconds, I had reverted the changes. I rebooted and was on my way again.

The upshot for me was I was able to do this quickly without having to revert to a full migration assistant restore of my external CCC backup which would have taken hours. It would seem that the only metadata that Time machine uses to identify snapshots is its name/label.

Sharing in case this might help someone else in a bind.

Damo.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Create a free website or blog at WordPress.com.

Up ↑

%d bloggers like this: