virtualising high sierra

My old iMac is more than ten years old. It works perfectly well, but showing its age. I decided to replace it while I had the time to transfer things properly, and had the time to explore the new system.

The new iMac comes with macos Catalina, which will not run older software. Many older programs are 32 bit, and won’t run on Catalina, which only supports 64 bit programs. Unfortunately, I have a lot of 32 bit macos software I want to keep using.

image: bent tree

I could have kept my old iMac, but decided, in the end, to virtualise it. These machines are big, and I don’t want another one on my desk. I already use VMWare Fusion for virtualisation, so that’s my preferred solution.

It turns out that virtualising an old iMac on a new one under VMWare Fusion is surprisingly complicated.

First of all, I cannot simply run up the VM and then restore a Time Machine backup of the old iMac into it. I need to install the old operating system into the VM, then restore the old machine from a Time Machine backup, using Migration Assistant, into that virtual guest. To do that, I needed an installer for the appropriate version of macos to manage the Time Machine restore. Of course, I also need a Time Machine backup of my old iMac.

(As an aside, I’ll mention I find Time Machine to be a superb backup solution. It’s one of the greatest advantages of macos over windows.)

I found it difficult to grab a copy of old editions of macos. People may tell me they can be downloaded from the Apple site, but I certainly couldn’t find them.

Fortunately for me, a few years ago, I noticed something that is now rather useful. When Apple want you to upgrade macos, they prompt you like a randy old goat wanting you to let them have their way. In the background, they ensure they can promptly take advantage of any lack of immediate refusal by downloading a copy of the new macos installer. When I noticed this, I started archiving those installers when they appeared. Thus I had a copy of macos High Sierra’s installer available.

It’s that copy I used to prepare my new VM.

But, of course, it wasn’t so easy. I found I could not, in the VM, run up the installer and simply restore the old machine into the new VM. The Time Machine restorer objected. Instead, I had to install a new copy of macos, then use its version of Migration Assistant to virtualise the old iMac.

I had to change the Fusion disk to its appropriate size before installation. It seems to confuse Disk Utility’s partition manager inside the VM. I could not resize and repartition using the Disk Utility during installation; it got confused, I got worried, nothing happened anyway, and it’s all beside the point: the installer correctly partitions the resized disk.

Installing High Sierra in VMWare Fusion was complicated by the problem that the installer didn’t want to run. It’s signed, and the signature ran out a while ago. I had to cheat by changing the date to the past to bludgeon it into doing its job.

image: bent tree

I did the following:

  1. In Fusion Advanced Settings for the VM, disable Synchronise Time;
  2. Set the VM settings Network Adapter connection to be Private to my Mac (some more recent macos installers try to check the date online);
  3. I reduced the virtual hardware offered by Fusion to that available in my 2009 iMac. In particular, I set the VM to used USB version 2.
  4. When Fusion runs the installer, it initially launches macos Recovery, which has the option to install afresh. Before you install, nip to the Utilities menu, run Terminal, and change the date to January 1st of the year after the OS was first released; that’s 2018 for High Sierra. I did so thus:
    date 010101012018
    Then quit Terminal, and start the installation.

After copying lots of files, the installation process wants to create a new user. I originally recreated my own account on my old iMac. This was an error. Later, during migration, my old user was renamed, user IDs changed, etc.. Experience assures me that dealing with that once things were operational would have been a big pile of poo. I had to restart the restoration, &, the second time around, created a new user with a name that did not exist on my old iMac.

Once the new operating system was installed, I did the following:

  1. Installed VMWare tools;
  2. Patched patched patched, so the VM has the same security patches and updates as the old iMac. I wanted both OSs to be as identical as I could make them, at least at the system level;
  3. Ran Migration Assistant.

Migration Assistant takes time, and lies ridiculously about the amount of time its going to take. During the restore, it bounced from 4 hours left for 40,000 hours left to ten minutes left. Everything actually took roughly 24 hours, and, despite this estimation idiocy, worked perfectly well.

I now have what appears to be a working VM containing my old iMac! Yay!

UPDATED: dammit, the host iMac crashed and corrupted the virtual machine’s disk drive. Take snapshots, folks, take oodles of snapshots.