Shirt Pocket

Big Sur Wednesday, November 11, 2020

I'm going to keep this short and to the point.

It's never a good idea to update to a just-released major OS version unless you have to. Nobody knows how reliable Big Sur is going to be for regular users. Let someone else find out before you take the jump.

On our end, SuperDuper! will not be compatible with Big Sur on day of release.

As I indicated on twitter, the first time we were able to make a successful bootable copy of Big Sur at all was November 5th. As of this writing, that was six days ago.

Until that point, it wasn't possible.

So, it's going to be a while. Until then, if you must move to Big Sur, use Time Machine.

Under Construction Friday, September 04, 2020

I haven't said anything about Big Sur yet, and since the public beta has been out for a while, and I'm getting more questions about it, it's time.

At present, it's not possible to make bootable copies of Big Sur, even with asr, Apple's own built-in replication utility. As such, we haven't released a Beta, or even an internal Alpha, because it wouldn't meet our own requirements.

So, for the moment, we're holding back, hoping that Apple will fix the issues and allow 3rd party (or even 1st party, given asr) bootable backups. While asr was failing completely in previous builds, in the most recent one it isn't able to back up because the system volume isn't properly 'sealed' (which is ominous, since why wouldn't a standard install be sealed, and if it's not, why wouldn't you be able to back it up anyway).

So, while progress is being made, we're kind of stuck waiting for the king.

In the meantime, my advice for macOS Betas remains as valid as ever: do not install a macOS Beta unless you have a critical business need to do so. These Betas, even when public, are not for general use, and certainly not for anyone who wants a reliable system for day-to-day work.

If you must install it, use Time Machine for backups for now (and, given my advice in Practices Make Perfect (Backups), on a continuing basis in addition to other methods), since it's at a relatively equivalent Beta quality level to the OS itself and is explicitly tested and supported by Apple.

I'll be back when we have additional news to share. For those in the US, enjoy Labor Day weekend!

Never Look a Gift Fix in the Mouth Thursday, July 16, 2020

Happy to say that Apple has fixed the bug in 10.15.5 that caused firmlinks to not be connected after being copied by backup programs.

As you may know, this had two symptoms:

  1. The backup looked incomplete, with some folders seemingly empty on the backup drive.

    Note that the backup was complete, but because the firmlinks weren't fully connected, you couldn't see the files on the Data Volume without specifically looking for them in /Volumes (which you could access via Go To Folder in Finder).

  2. The backup would boot about 2/3 of the way, and then shut down.

Both of these symptoms were caused by the same symptom. We provided a workaround on request for users who needed it, and while convenience was impacted, your data was never in danger.

Fortunately, it's fixed in 10.15.6, and a normal Smart Update will repair your backups and all will be back to normal.

Until Big Sur, of course...where the "adventure" continues. More on that when I have something good to say.

Black Boxes and Bugs Thursday, May 28, 2020

During last year's Catalina introduction, Apple's APFS session introduced a new capability: the asr (Apple Software Restore) tool was now able to perform both APFS copies and, used appropriately, "delta" backups.

We were pretty excited about this new feature, until we actually tried to use it.

The new feature basically didn't work until Catalina's final beta. And even when it started working, while fast, it dealt with failures...poorly.

Sometimes it would leave unusually named volumes hanging around. Sometimes it would leave unmanaged snapshots on a volume. Sometimes the destination drive would be unreadable or unmounted.

And in all cases, it would fail...obscurely. With messages like "Error -49173". Or it would just crash.

Rocks and Hard Places

If you've seen that WWDC session, you know that Apple specifically mentions the new asr capability as being perfect for "Backup programs", and we sort of looked at that as code for you're going to be forced to use this eventually. So, during investigation, when we discovered how incredibly buggy and user-hostile it was, even when it started "working", we took the work we'd done to implement asr support and tabled it.

It's one thing to depend on system features to perform necessary functions: after all, to be a good application, you need to build yourself on top of the APIs that Apple provides.

Much of that work is deciding what "level" you're going to interact at. We're constantly choosing between "higher level" tools (like diskutil) or lower-level APIs (like the IORegistry) to accomplish our tasks.

When there's no significant disadvantage to using a higher level tool, we choose that, because it helps to insulate us from future OS changes: Apple tends to update their own tools to work with new OS releases, and so we have a higher chance of minimizing incompatibilities when a major OS is released.

But one of the "hidden" downside is: sometimes that particular box is way too black. When you put in a file and get out a failure, and the resulting errors are so obscure as to be useless, it's a pretty easy decision: don't use that tool.

Another is less obvious: Apple can move away from the "solution" they were pushing at WWDC, and replace it with "the new hotness", and now you've lost control over your product.

Ch-ch-ch-changes

Regardless of what you pick, sometimes things happen that you can't predict. When Apple makes a change and breaks something, as they have in 10.15.5, they break us...and then we need to react within the framework we've established...or replace what we've selected with something else, because that's the only solution available.

In this case, Apple has broken the ability to make new firmlinks. It's utterly unclear why they broke this capability, but they did. And that makes new and erased SuperDuper! backups unbootable.

Note, though (and this is important): Smart Updates of previous Catalina volumes continue to work properly.

We had hoped Apple would fix the problem before 10.15.5's release, but unfortunately, they didn't. And so we're working on an "automatic" workaround based on the asr work we'd done early in the Catalina beta cycle.

If you have need of a fix "now", please reach out to me at the support email and I'll be happy to assist.

Modern Times Friday, February 07, 2020

Over the years, Shirt Pocket has been hosted on a number of local Unix-based systems. As I recall, it started out on a Cobalt Qube, then moved to a Power PC Mac mini, then the original "tall" Intel Mac mini, and finally to a "short" Intel mini.

These systems served us well, were easy to manage and, important for the time, meant we were fully "in control" of our site and mail.

There were downsides, though.

Apple has obviously moved away from the whole idea of "macOS Server", leaving a lot of the details of keeping things up to date and relevant to the "modern internet"...and eliminating the original "easy to use and manage" reasons for selecting it in the first place.

But even more than that, since the mini wasn't in a data center, extended power or network outages would take our site down completely—an obviously ridiculous situation. A few years ago, a huge snowstorm took cut power for two weeks, and while I was able to find alternate "hosting" for the site (thanks, Jon!), it wasn't ideal. Not to mention when it would happen when I was on vacation.

Fortunately, while macOS Server is no longer really relevant or useful, in its place are a million cloud-based providers, many from huge vendors like Microsoft, Google and Amazon.

A few years ago, I moved from our own Kerio mail server to one of those: Microsoft's Office 365 Exchange service. That went extremely well, and so, with the threat of winter storms looming, it was time to make the change.

As of Wednesday, all of Shirt Pocket is now "in the cloud", as it were. I'm using SSDNodes, a high quality provider with great support for many Unix variants, Docker, fast bandwidth, etc.

Bruce had used them, successfully, to bring up our Paddle-specific micro services, with no downtime during that transition. A good choice.

So, with that experience under his belt, Bruce guided me through the transition (doing much of the work while I looked over his shoulder, learning how to actually work with Docker, Traefic, etc) and the result?

So, we're now up entirely in the cloud. The Mac mini is off, after probably 10 years of always-on (well, mostly-on) service. One of its RAID drives had died and come back to life, and I had a SuperDuper! backed-up SSD ready to go, but now it won't be needed.

You'll get better service with hopefully no downtime, I don't have to worry about the power going off when I'm away, and thanks to Bruce, I now mostly understand how to use, configure and maintain a Docker-based set of services that, in aggregate, look just like the old web site.

While the dusty old graphics and layout still look like they were created in 2005 (yeah, I know - I have to allocate my limited time carefully), and you probably didn't notice anything had changed, the whole thing works...better!

Can't ask for more than that.

And now, after many years of faithful service, the mini gets a well deserved nap. Well done, little guy. Enjoy the rest.

Happy Thanksgiving Update! Thursday, November 28, 2019

Happy Thanksgiving, for those who celebrate.

Whenever there's a new, major release, there's an inevitable set of problems that weren't caught during testing (even the long public beta). We've got those mostly taken care of in the new 3.3.1 update, released today.

Most users having problems are running macOS 10.10 or 10.11. Here's the list:

  • 10.10 users had an immediate failure with a dyld error due to a release build mess-up on our side. In addition, on some systems, there was a digital signature validation issue. We've corrected both in this update.
  • Users with unusual characters in their drive names (eg "ø") were getting errors on all OS versions. This should be fixed.
  • There was a problem with drive names with quote marks in them (eg "Fred's MacBook Pro 17" Backup"). Fixed.
  • Read-only images would sometimes generate a symbol substitution error. Not any more.

There's one remaining issue for 10.10 and 10.11 users: Erase, then copy backups are failing due to some unexpected "volume transformation" events that are occurring. When we validate the result, we're being quite cautious, and we're not seeing what we expect, so we fail the copy.

That isn't yet fixed, because it's going to take some very careful investigation and, well, Thanksgiving. The workaround is to use Smart Update. If you need to erase, you can erase with Disk Utility, and then run Smart Update.

If you are unregistered, need to run a backup on macOS 10.10 or 10.11, and you're running into this issue, you can Download v3.2.5 here.

The update is available through the normal built-in updater, or you can...

Download v3.3.1

OK, back to celebrating with the family. Enjoy, everyone.

Breaking the Tape Tuesday, November 26, 2019

I'm happy to announce the release of v3.3 of SuperDuper, our fully Catalina-compatible version: happier, perhaps, then even you are in reading the news. It's available via the normal update mechanism, or by downloading it from the web site.

Everyone with a Beta version installed will get an update notice for this version as well.

Note: after SuperDuper! 3.3 is installed, if you keep getting prompted for Full Disk Access, you need to restart your Mac. Welcome to Windows 95!

Roads, Long: See Island Destinations

The process of getting to a final version took longer than I hoped it would, but for good reason: once again, Apple has made some pretty radical changes to the way things are stored on your drive, and we didn't want to release a final version—a version that would be installed by "everyone"—without getting extensive test coverage in "real world" situations...that is, setups other than our own test setups and real-world "developer" systems.

Testing has gone really well, and the broader coverage has provided us with some cases that we wouldn't have normally seen: broken systems, leftover volumes from bad OS updates, generally weird behavior with early Catalina releases.

So, thanks to everyone who participated in the public beta: your reports, feedback and encouragement helped create a better final release of v3.3.

What's Changed?

The whole idea of the new version is, if we did our job right (and I think we did), things should just work the way you expect them to. You'll notice a bunch of little things here and there that clarify things, or parts that work more smoothly than before. But overall, it should feel like SuperDuper always has.

But despite that, SuperDuper is doing a lot more things. Catalina has made some radical changes to the way your files are stored, and it's important to know what's going on "behind the scenes".

You may notice, during your first copy, that there's a new step in the Status View: Copy System Files, which will sometimes precede Copy Files. Why is that?

Catalina divides your drive into two volumes (which is what we've been working all spring, summer and fall to support properly). A read-only "system" volume, and a read/write "data" volume.

Things you are allowed to write to, in general, are on the Data volume. Things you can't (the OS, Apple's applications) are on the System volume.

Before Catalina, I often told users that they didn't "own" most of their drive: the vast majority of it was owned by Apple, or rather macOS. You only really "own" your Home folder, in /Users, and the applications you install. (Yes, yes, I know about /usr/local, etc, but work with me here.)

Catalina now formalizes that concept beyond just Unix permissions and SIP-protected locations. The stuff you "own" is now on the Data volume. The System volume is off-limits. For good.

Both macOS and SuperDuper "hide" the details of this from you by tying the two volumes together into a single "Volume Group". You actually start up from the System volume, and the Data volume is connected to it using a new file system feature called "firmlinks".

The details here are unimportant to the user, but the reason you'll occasionally see strange things (like, when you eject a backup drive in Finder, it may tell you there's more than one volume), or extra steps in our Status view, are because of this new setup.

So, your first copy will convert your destination into these two volumes and copy each source to its corresponding destination. We then do what's needed to "tie them together" using firmlinks so they work as one.

Note, though, there's one big benefit: subsequent Smart Updates will not copy the system volume if it's already up to date, which speeds things up quite a bit!

Forced March

Changes like those introduced in the last few OS versions have been frustrating, because they've meant we've had to spend most of our engineering time simply maintaining compatibility with the changes Apple is forcing on all of us.

Not only has the last three years introduced a new file system (APFS), it tightened "security" in a way that broke automation, and then, as I explained above, radically changed the way system and data files are stored on a drive, splitting them into multiple volumes...while hiding those facts from the user.

Until the curtain parts, and they suddenly don't understand what's going on.

Each one of these changes required very significant investigation into under-to-un-documented parts of the system, months-long checks of assumptions, followed by writing a ton of new code, and then extensive testing of all that stuff on both current and older OS versions to ensure we've maintained compatibility with the platforms we support.

And that takes time. Time we'd rather spend implementing new things.

Yes, it's our job. And as long as Apple keeps yanking the rug out from under applications like ours, we have to continue to move, as fast as we can, to wherever the new floor covering lands.

But doing that kind of thing every year is bad for everyone. It's bad for developers, like us, because it means we're constantly chasing the ball. It's bad for users, like us, because it breaks their software (this year more than most), and gives them a less stable system that doesn't let them get their work done, or requires them to replace working software with new software: software that they then have to learn all over again.

On top of that, there are background murmurs suggesting another platform shift, to ARM processors. Because it might give us slightly faster Macs, with slightly better battery life.

So more hoops. More time spent doing things other than the things we really want to do.

This isn't an argument against progress. We all benefit from forward momentum: real security and functionality improvements are valuable and welcomed.

But constantly changing a platform in ways that break compatibility, or confuse users, or make their data less safe and secure stops that progress. We all spend the year between the releases trying to catch up with the latest change, without actually being able to spend time reaping the purported benefits.

It can be frustrating. But it's the way it is, right now.

It doesn't have to be. We can make progress without jerking everyone around. Security can be improved without subjecting users to confusing prompts and bad UX. New APIs can be built without forcing users to throw away software and hardware they've been depending on for years.

Respecting users must also recognize the fact that they have a significant investment in their software and peripherals, let alone their Mac. Just because someone can't afford to purchase new hardware, or needs to maintain compatibility with an old scanner or printer, or really likes what they have...that shouldn't be reason enough to leave them behind. They shouldn't have to add their perfectly good gear to a landfill.

Climbing Off the Soapbox

With that off my chest, I hope you all enjoy the new version of SuperDuper. We've put a lot of love and care into it, and I think you'll find it works exactly as you'd hope it would.

Have at it, and thanks for being a SuperDuper user!

Continued Cranking Friday, November 15, 2019

Not much to say about this build: we've fixed a bunch of things, basically. The vast majority of users had success with the last beta. But:

  • Some had schedules that would fail right at the start, with a collapsed window. Fixed!
  • Copies to HFS+ volumes would fail to copy recovery in some cases. Also fixed!
  • Eject would sometimes not eject both volumes of a volume group. Can you believe it? Fixed!
  • Some systems have a broken installation of Perl and xpath, which we detect. But that detection was broken. We fixed it!
  • If you had just set up a bunch of scheduled copies to locked volumes, we were only preauthorizing against the keychain for the first one. I bet you can guess: fixed!
  • Various other things. Fixed!
  • Some people were impatient and didn't realize HFS+ to APFS conversion might take a while! We now tell them to get a tasty beverage! Which isn't so much "fixed!" as "indicated to them that patience is a virtue".

Yeah, like I said. Things are in good shape. We're busily making sure all the various panel gaps are even.

Keep reporting the things you find...until then, download away, install and enjoy.

Download SuperDuper! 3.3 B6 (v119.7)

Rolling, Rolling, Rolling… Wednesday, November 06, 2019

Beta updates are rolling along. We've incorporated a number of fixes for additional edge cases, polished some behavior, worked around some OS issues...the usual.

We've had a number of people ask whether it's "safe" to run these betas.

Now, barring the occasional, rapidly-fixed "goof" (eg the bless error we fixed in Beta 4), every beta version we release is basically "production ready". They're "betas" because we're dealing with a new OS that's changing rapidly, and we want to ensure we've covered all the cases we didn't think of before we do a general release.

Prepare for Boredom

For example, this version has an "automount" fix in it. As I've discussed previously, sdautomatedcopycontroller is used to run "automatic" copies. Those include scheduled copies, copies users can run from the command line or their own tools, etc.

sdautomatedcopycontroller (every time I type that I think why didn't I make this name shorter) handles the detail of automatically mounting source and destination volumes, and setting them up to eject when the copy is complete.

With volume groups, though, there are two potential volumes to mount...but keychain passwords might be under either the Data volume or the System volume, depending on what the user does. Previously, we were only looking under the System volume name...now we check both.

Not Boring Enough? Try This!

Another example: on some user systems, certain macOS command line tools that are written in Cocoa or Swift would output loader warnings as errors (on stderr), and so we'd think they failed. We now handle more of those cases, if the tool otherwise is successful.

Short and Sweet

So, yeah. These are little fixes that cover cases that come up in broader testing...and are examples of why these betas are "safe". These fixes just aren't things most people are going to notice.

Again, thanks for your feedback: your reports are making SuperDuper! 3.3 better for everyone!

Download SuperDuper! 3.3 Beta 5 (v119.6)

Nothing Up My Sleeves Redux Sunday, October 27, 2019

Yeah, well, sometimes a change to the install process that shouldn't have any effect on anything else...does.

Beta 3 gave an error when using bless to bless the drive. The underlying issue was code we have that needs to ignore certain types of output on stderr that aren't actually errors. (For example, the EFI fix that I describe in this blog post produces an error that isn't actually an error–we know it's going to fail in a specific way).

The unexpected part is that just before the beta, we made a change to the installer to try to improve our workaround for systems that required rebooting post-install to make Full Disk Access work. After we made the change, we didn't re-run the full suite of tests because we (incorrectly) thought the change was isolated to the install process.

However, it was made in a runtime element that was shared with the way we executed bless. We didn't take that into account, and should have re-run all the tests.

The backups themselves are fine (and are even bootable, even though there's an error issued). Beta 4 fixes the false error indication: once installed, bless will not give a false failure.

Sorry about that. Beta. >sigh<

Download SuperDuper! 3.3 B4 (v119.5)

Page 3 of 21 pages « First  <  1 2 3 4 5 >  Last »