Shirt Pocket Watch

The blog

Where I humiliate myself in public: release notes, backup deep-dives, and various and sundry other things that strike my fancy.

SuperDuper, Preview, iTunes, Network Copies, etc.

I thought I’d discussed this before, but it seems I haven’t!

Because my local iTunes folder is large (something on the order of 8TB), and I want it backed up offsite as well as onsite, I use an iSCSI volume as the “local” storage, and then copy that to an SMB folder on the NAS so Roon can get at the share.1

The iSCSI volume lets Backblaze get at the data (which it won’t do for network volumes), so in additional to my local backups, it also gets up into the cloud just in case.

The Old World

Anyway, in the Olden Days, SuperDuper Classic couldn’t copy directly to a network destination, so I would make that iSCSI→SMB copy with rsync, which worked fine, but I ended up having to create a shell script to do it…because why type a complicated rsync command every time.

This all worked fine for many years (at least since 2012, when I wrote the shell script).

The New World

Every time I had to sync, I was nervous about making the copy. There’s so much data involved that, even using --dry-run and paying attention, if I wasn’t careful, things could go wrong—and then I’d be quite sad indeed. Unlikely with the shell script, of course, but the vagaries of NFC/NFD encoding, changes to SMB in macOS, or an update to the Samba implementation on the NAS could wreak havoc.

I wouldn’t lose anything, of course, but it could mean a very long recovery process.

But then…enter SuperDuper 4! (Cheers, confetti, thumbs-up emoji!)

Since SD4 can now copy directly to NAS devices, I was able to retire the old rsync script and do it from a copy job, folder to folder, from a “local” iSCSI volume to the NAS. And I could look at a Preview to see what was going to happen.

When I did, it showed

Some music folders, including one that shows an artist with accents in their name. The accented artist is missing from the destination.

that some folders and artists with accents didn’t come over as expected with rsync.

Huh. Didn’t realize that!

You can also see there were also a lot of additional updates required. Once again, using SuperDuper 4’s Preview, I could see exactly what those were:

Music preview indicating that Finder metadata is missing.

Some Finder extended attributes (xattrs) hadn’t been copied by rsync, so those needed to be updated to match the source.2

Server-side changes

One other small thing: the Synology media indexer (which is also running on the NAS) adds folders named @eaDir all over the place. Without special handling, those would be deleted (since they’re not on the source), and that would force the indexer to regenerate them.

But with a simple rule that keeps **/@eaDir, that’s readily managed as well.3

The SuperDuper rule editor, saving @eaDir items.

That was easy!

I was surprised by how easy it was to do, and that SD4 caught some things that my old rsync process had done wrong.

I know I shouldn’t be surprised. I mean, I wrote the thing to do this stuff. But, it pleases me when a plan comes together.


  1. Don’t get me wrong here: most of my music listening is done via LPs. But I do have a significant amount of music from CDs, etc., and all that is managed via iTunes and Roon.

    In fact, I sync my Discogs database to iTunes/Qobuz/Tidal so that everything I purchase on LP is also available digitally…just in case I want to listen in the car, on the go, etc. (and that shows up in Roon as well). ↩︎

  2. SuperDuper 4 is smart enough to update only the xattrs in this case, without recopying the whole file…fortunately, because that would be very time-consuming. It’s many terabytes of data. ↩︎

  3. Remember, in almost all cases, you want to include Backup - all files, and then add your additional rules “to” that, even though you’ve selected All files to start.

    The reason? Backup - all files includes various Optional and Exclude rules that handle typical source drive configurations on macOS. It doesn’t matter much in this particular case…but it also doesn’t hurt. ↩︎

Quick Security Update

SuperDuper 4.0.10 includes a security update that addresses a recently reported CVE.

macOS Privacy Protection (TCC1)

Normally, on your startup drive, macOS protects personal information (Contacts, Documents, and the like) behind security prompts that I’m sure you’ve seen. When an Application tries to access the data, the user is prompted to confirm that’s what they want.

Snapshots

When SuperDuper copies an APFS drive, it snapshots the content of the drive to “freeze” it (so you don’t have to worry about using the drive while you’re backing it up). SuperDuper mounts that at a temporary location.

The problem

The problem is that TCC protects the startup drive’s contents at their normal location, not in a snapshot.2 Since SuperDuper mounted the snapshot at an accessible location, a bad actor could watch for those mounts and access TCC-protected content without the user being prompted to allow it.

The solution

SuperDuper 4.0.10 now mounts the snapshot in an inaccessible, root-owned location, so only software already running with administrator (root) privileges can reach it.

The risk

All normal POSIX permissions still applied to the mount, so files that wouldn’t normally be accessible (leaving TCC aside) were (and are) still fully protected. However, malicious software running under your account could watch for the snapshot mount during a backup and read your TCC-protected files without a prompt.

Note that the backup itself is copying the protected files (it wouldn’t be much of a backup if it did not), and TCC does not protect those files on the backup save for restricting access to all external drives on a per-Application basis.

This fix protects access to the snapshot of the source drive. All external devices, like backup drives, have a single gate. Once permission is granted for an application, the files are only protected from it by POSIX permissions, ACLs, etc…and then, only when Ignore ownership on this volume is not on.

Download available

You can install SuperDuper 4.0.10 through the normal update mechanism, or by downloading and installing directly.

As always: thanks for using SuperDuper!


  1. TCC stands for Transparency, Consent & Control. You can read about protecting your privacy, and the prompts TCC generates, in this Apple article. ↩︎

  2. Which, arguably, is the real bug, and the responsibility of macOS itself, but here we are. ↩︎

Controlled Craziness

Recently, Apple released an update to TN3137 that discusses backing up keychains.

Specifically, as of macOS 26.4, the login keychain, and perhaps others, cannot be decrypted on other Macs, or after a restore. The Tech Note indicates that backup programs should be sure to back up a folder that contains special system keys…but also says that the folder is not accessible when System Integrity Protection (SIP)1 is on.

This is obviously not a good user solution, because no one is going to boot to Recovery, turn off SIP, back up, boot back to Recovery, and turn SIP back on. Thinking they would do so is kind of crazy.2

Breathe: it’s OK

Fortunately, SuperDuper handles this situation. When you make a bootable copy, the required keys are copied without requiring any special steps. Even though Smart Update cannot access those files, it preserves them on the backup so they’re available if needed.

What that means for you

It’s always a good idea to make a bootable backup, even if you have no plan to boot from it. Update it with Smart Update, update the OS when SuperDuper indicates you should, and you’ll be in good shape should you need to restore…even if you need to restore your keychains on a different Mac.3


  1. System Integrity Protection—basically, a process that prevents any programs, other than Apple-authorized ones, from performing certain activities. You can read more about it here. ↩︎

  2. This all may change in the future. The Tech Note hedges a lot in the Warning and Important sections, which suggests to me that they realize this isn’t a great situation. ↩︎

  3. In fact, I’ve just verified that migrating from a SuperDuper bootable backup to a different Mac restores the encrypted keychains as you’d hope and expect. ↩︎

Pushing the Boundaries

mtitv;ilmart1

That’s right, a new version of SuperDuper has arrived. It has some new stuff!

I get email

Every so often, a user will ask for more run logging: some sort of master list of SuperDuper copies, so they can reference it during personal contemplation time. I’ve usually suggested that they write a little shortcut to do what they want: after all, that’s what I added the feature for—to allow for extension, and inclusion of behavior that might be user-specific (and, also, to allow people to share Shortcut tips-and-tricks they might develop for SuperDuper).

Making an example

That’s a good approach, I think, but sometimes people need to start with something a bit more elaborate, and tweak that, rather than generate something from scratch.

With that in mind, SuperDuper 4.0.9 includes a new Shortcut—Log SuperDuper Copy to Dashboard.

What does it do?, you might ask? Well, pretty much what’s on the tin.

After each copy, it adds a row of information to the sheet that includes various bits of information about the copy that just ran. At the top, you’ll find a list of the different Copy Jobs that have run (there are typically multiple runs per Job, of course, but only one entry at the top).

You can focus on the runs of one Job by unchecking the Show column for the others, or compare them by checking other Jobs.

If you have so many Copy Jobs that the upper table overlaps the graphs2, you can just drag them to relocate where they are on the sheet.

Extend away

Of course, there may be other things you want to do with the data that’s logged, and once the spreadsheet is there, you can change the various charts, add to them, and do what you’d like. The Shortcut will continue to update the runs.

I wouldn’t do that

I’ve had way too many users write in, thinking that their license was only good for a day. They thought that because the Registration window said “Registered for 1 day” the first day they were registered. It would, of course, say “Registered for 2 days” the next day, etc.

Now, I didn’t think this was unclear, but when I get a bunch of emails about something like that, and people think that I’m somehow selling them a 1-day license (folks, I would never do that), it’s time for a change. So, now it says “You’ve been registered for 1 day”, etc.

I hope that’s clearer.

But that’s not all!

Well, that’s mostly all. I’ve also improved some additional very obscure network issues, improved progress display in some edge cases, and individual job phases now remember whether you’ve expanded them or not. So, if you like to see the detailed stats for a given job, that’ll be remembered next time you run.

To enjoy the new version, use the internal updater, or

Download SuperDuper 4.0.9 now!

Once again, thanks for using and recommending SuperDuper!


  1. My time is too valuable; I’ll let my assistant read this. ↩︎

  2. In other words, you’re an insane person like me with a million jobs running all the time. ↩︎

It's the Little Things

Purpose & Intent

SuperDuper is, obviously, a serious tool that has an important task: making a reliable copy of data from one place to another. Its UI, for the most part, is all business, and tries to make the process as clear as possible.

Those, clearly, are the big things. Table stakes, as it were.

Fun & Frivolity

Keeping that in mind, I’ve still tried to put “pleasing” things into the general design, with a focus on making things a bit more convenient, clear, informative, or easier to look at.

Things like animations and transitions (which were in SuperDuper Classic, too); updating progress with different options, communication via both bars and pulsing; more playful ways of choosing options; dragging around jobs; the sparkles to draw your attention for the first time1; things like that.

But, yeah—while I don’t want it to be boring, SuperDuper isn’t ever going to be a Delicious Generation app.2 Respect to whose who can be that playful with their stuff, though!

Fit & Finish

There are serious “little” things, too, of course. And that’s where I generally focus.

For example, SuperDuper preserves the destination drive icon and Spotlight state even across erase operations and replications.

It’s a little thing, but I know that many users identify their drives by their icons, and so it’s nearly as important as keeping the name the same.

Similarly, even though the Spotlight state is kept on the destination drive, I take pains to ensure that it’s preserved across the various copy permutations. It’s pretty annoying when Spotlight starts indexing a backup you told it to ignore…and can result in finding something on a backup rather than a source.

Behavioral things, too, like mounting drives for the user, and unmounting them after (if they started that way)…there are a lot of little touches in there that just try to predict what a user would want, without needing any settings, or thought…it just works.

Details & Obscurity

SuperDuper 4.0.8, released today, deals with some of those cases, and handles some relatively obscure cases better than before.

For example, users who have Samba setups on Linux boxes that include the fruit extensions may be preserving macOS permissions, and you can get into situations where a file with no permissions becomes permanently read-only (except server-side).

Obscure, but handled.

Speaking of obscure, the onboarding sequence is now sensitive to the macOS version you’re running, and name-checks the background activity section based differently depending on what it is. Because it regressed from macOS 14/15’s “Allow in the background” to macOS 26/27’s “Background App Activity” for reasons.

There’s a lot more, but you get the idea: continue to polish-polish-polish.

And to get the benefit of that

Download SuperDuper! 4.0.8

and install (or, better, use the built-in updater).

As always, enjoy, and thanks for using SuperDuper.


  1. Eventually, I’ll get around to my original plan for this—having the “Hi!” hand come alive, swoop down, and point at the link, along with some other fun behaviors…the storyboard I did for this amuses me…but it’s a lot of work for a funny-but-useful bit of goofiness.

    Maybe if I do it they’ll let me into the Hall of Delicious Generations. ↩︎

  2. The original version of Apple’s Time Machine had its UI designed by Mike Matas, the original—and probably the best—Delicious Generation designer. I was lucky enough to have him design the original SuperDuper Classic icon back when he was a very young man, and it was quite clear he was both incredibly talented and going places.

    And, indeed, he did (many times over)!

    Since he left, Time Machine has become less fun, and certainly less H.G. Wells/Victorian. ↩︎

⚡️Turbo Tips

I’ve been asked a lot of times about when Smart Update becomes ⚡️Turbo Smart Update, and where the setting is in SuperDuper.

The answer is: there’s no setting. When possible, SuperDuper automatically does a ⚡️Turbo Smart Update.

So, why doesn’t it always ⚡️Turbo?

The rules of the game

Here’s the deal: ⚡️Turbo depends on a number of factors, and you can improve the likelihood it will happen by using a separate Copy Job for each source/destination pair. SuperDuper needs to maintain a relationship between the source, destination, copy method, etc., to ensure that ⚡️Turbo is reliable.

If you change the copy method or the rules, then the relationship between the last backup and the next one has changed…and ⚡️Turbo is disallowed (until the next run).

Turbo also won’t run after a One Time macOS Update, or an Erase, then copy until the second Smart Update.

System effects

SuperDuper also relies on the system’s own mechanism for tracking changes.1

Many (many) years ago, there was a program that I think was called Synk. It installed a kernel extension that tracked all file system changes and wrote a database into user space that the copy program used to make “smarter” copies.

I remember thinking that was incredibly dangerous at the time. You could change the volume when Synk wasn’t running, or on another system, and Synk would be none the wiser. So, while clever, it wasn’t a reliable method of doing this.

Years later, Apple added fsevents, a system-supported way of doing the same kind of thing. I evaluated it when it was introduced, and it was just too flaky to rely on…it wasn’t worth the risk.

Since then, Apple has made changes to fsevents, making it far more reliable as a source of “truth” about volume status.

Now, it’s no panacea. fsevents doesn’t tell you a ton, and it consolidates its change sets pretty regularly, so it’s not like you can just say “here’s what happened” and replay a bunch of events on the copy and get a good result.

But, as a way of “thinning” the number of files and folders you have to visit, when used intelligently, it works well.

Unless/Until it doesn’t.

Sorry, Charlie

Unfortunately, sometimes fsevents can’t keep up with the number of changes being made to a volume, or needs to flush its internal change database. So even though SuperDuper knows what to do, fsevents can veto our attempt annd say that it has, basically, lost the history—and a full scan is needed.

This can also happen when a drive disconnects unexpectedly, or is unplugged without fully ejecting it.

And, of course, it’s erased when you erase.

Faster, Pussycat! Kill! Kill!

So there you go: ⚡️Turbo Smart Update works on the second and subsequent runs of the same job, when the job itself hasn’t changed in a way that invalidates ⚡️Turbo…as long as the system doesn’t invalidate its change database for the volumes involved.

In the event a full scan is necessary, SuperDuper uses regular Smart Update. And since that’s more than twice as fast as before, it’s less painful than it could be.

The More You Know about ⚡️Turbo Smart Update.


  1. Of course, there’s a ton of SuperDuper Special Sauce™️ involved here, too. ↩︎

Do the Right Thing

I try to always do the “right thing”.

What does that mean? It means “only use documented calls”. It means “work around problems using normal processes, but not things that aren’t documented”.

It means that even when I know why something isn’t working, if there’s no documented fix…well, I don’t do that…unless I absolutely have to.

The past is prologue

I’ve been in this situation before. When Catalina was released, and the whole boot process was different, I spent all summer figuring out how to make a bootable copy: volume groups, roles, firmlinks, and so much time going through verbose boot logs (literally taking movies of them, since they went by so fast, and single stepping through) until I figured out the issue.

It was rough (but also fun).

And, obviously, none of that was documented. But I did it anyway…to benefit the users of SuperDuper.

A new dilemma

I’ve known for a while why drives aren’t showing up as bootable under Golden Gate. And it’s been reported as a bug, as mentioned in my previous blog posts. But I didn’t want to release the workaround I had, because it relies on something undocumented.

Specifically, one…single…bit.

Cat leaves bag

I had hoped that the Terminal command I provided in a previous post would be sufficient until an official fix came out, but it’s just too difficult for “regular” people to execute…and the last thing I want to do is put people in a state of panic when they’re trying to recover from a failure.

But the tipping point was that, yesterday, a beta of 27.2 (!) was released, without a fix. Which means I don’t know when, or if, a fix is going to be implemented.

The thing is, the copy is actually fine (as proven by the original workaround & “proof of life” screenshot). The real issue is that Golden Gate’s startup drive code is filtering its selections by looking for something that neither asr nor bless is setting. In fact, they’ve never set this value, which is why, under Golden Gate, your previously bootable backups look like they’re no longer bootable.

With those factors in mind, I’ve reversed course and have decided to go ahead and work around the issue as safely as I can.

Note that this fix will automatically disable itself when the real fix is (hopefully) released. In all the internal testing that I’ve done during the Golden Gate Beta, it’s worked fine and seems perfectly safe.

What you need to do (nothing)

The fix will be applied automatically when you make your next backup, even if it’s a Smart Update, under all macOS versions supported by SuperDuper 4. Other than that, there’s nothing special you need to do.

With all that said,

Download SuperDuper! 4.0.7

(or, better, just use the internal updater).

Thanks, as always, for using SuperDuper, and for your patience.

Proof of (Boot) Life

As I mentioned in the previous post, there’s a bug in Golden Gate that is not showing proper external copies as bootable, even though they’re made correctly, with Apple’s own replicator.

The workaround, if you must, is listed there (you should also be able to install Golden Gate over the backup from Recovery). For those who doubt (you know who you are), this is a screen shot of my Mac Studio1 booting off a SuperDuper copy made to a JBOD PRO-BLADE Station (I’ve also tested a MacBook Neo and a MacBook Pro).

Golden Gate Boot.


  1. NOTACHANCE is obviously not my real serial number, but I thought this would be funnier than just blacking it out. ↩︎

Laboring Day

Busy week

Post-Labor Day (on which I still labored), it’s been a busy week here at Shirt Pocket HQ.

I’ve been adding a few little features and fixes to SuperDuper, improving behaviors with regard to images, Cloud Storage, and wrapping up Golden Gate support for its release, which will likely be a few hours after this posts.

Details are in the release notes.

SuperDuper is ready, but…

Golden Gate, in my view, looks to be one of the more reliable releases we’ve had in years, even in its 27.0 release. I wouldn’t hesitate to encourage people to install it, without waiting for the (inevitable) 27.1 release. I even recommended it to the curious during the very stable and reliable Beta period. Shockingly painless.

That said, there’s always a but in these releases, you know?

The big but(t—sorry) in Golden Gate 27.0 is a SuperDuper issue (that is actually an Apple issue): backups, even though a bootable backup is properly configured to boot, they aren’t showing up as choices in either the startup disk preference pane or the startup picker. (FB24210103, reported quite a while ago, Apple friends.)

Fortunately, unlike when this happened before, there’s no error during copy. But, even though the end result is bootable1, it just doesn’t appear.

Remember: a drive doesn’t have to boot to be fully restored. But there are many scenarios where boot is essential, and I’m hoping Apple will fix this soon.

Ecosystem: engage!

I was delighted to see that there’s a third-party app called OpenBackup that offers mobile notification when backups run for both SuperDuper 4 and SuperDuper Classic. It works on both iOS and Android.

I always hope, when I implement things like Shortcuts support, that other developers will make use of them to do cool things2…it’s nice to see it happening.

In the meantime

I continue to be surprised and delighted by how well the rollout of SuperDuper 4 is going. Thanks to everyone who has registered, to those who have recommended it to their friends, and to the folks that have reviewed it.

But now, it’s time to update SuperDuper using the built-in updater, or

Download SuperDuper! 4.0.6 Now

As always, thanks for using SuperDuper!—your support is appreciated.


  1. You can prove this to yourself if you really want to by booting into Recovery, reducing security with the Startup Security utility, and then using bless --mount /Volumes/Backup-Volume --setBoot in Recovery’s Terminal. But don’t unless you really have to. ↩︎

  2. It’s always nice to leave some space for fellow developers (not to mention users) to build on what you’ve done: we did this with Classic, with support for Growl and extensive AppleScript support. ↩︎

Daring to Recommend

John Gruber (of Daring Fireball Daring Fireball fame) has been using SuperDuper since at least 2004, not long after its initial release. He’s written kindly about it over the years, and has just issued his verdict on SuperDuper 4:

SuperDuper feels like impossibly good software. Read his post announcing version 4 to start, then catch up on the rest of the blog to get a feeling for how much work he’s put into SuperDuper 4. Just extraordinary.
…
I recommend SuperDuper 4 wholeheartedly.

Thanks, John!