For the benefit of anyone who manages to turn an ancient Mac into a doorstop by trying to use XPostFacto to install a more recent OS on it, here's how I screwed up, and how I got out of it without having to wipe the disk and re-install:
<LJ-CUT text=" --More--(14%) ">
I've got this old G3 Powerbook running 10.3, and I wanted to upgrade it to 10.4. Apple says thou shalt not do that, but I've had luck doing so on even older machines with XPostFacto, so I figured what the hell.
The way it works is, you run this program and it does some magic to make your old machine claim that it is a newer machine, so that the Apple install DVDs don't refuse to run. After that, the normal OSX install will mostly work fine.
The mistake I made was that the install DVD I had was one that came with a G4 Powerbook, and apparently those gray DVDs that come with the computer are hardware specific, and refuse to install on anything else, even after XPostFacto fakes them out. It seems that if you want to use XPostFacto, you need to have the non-bundled OSX discs.
But then when I rebooted, the Powerbook got a kernel panic saying "wrong hardware". Oops, it was apparently still in "impersonate a G4" mode, and now because of that it wouldn't even boot off its own drive...
I had no idea where XPostFacto had installed its magic (and, in fact, I still don't.) Resetting NVRAM didn't help, and mounting the drive on another machine and deleting the one XPF* bundle under /System/Library/Extensions/ didn't help either (and yeah, I recreated Extensions.kextcache and Extensions.mkext too.)
What did eventually work was:
- Boot with Cmd-S (single user, to get a tty shell)
- mount -uw /
- sh /etc/rc multiuser -x
most things seem to start up, including networking and sshd, but loginwindow.app never appears; presumably some other part of the startup process is freaking about "wrong hardware"...
- log in via ssh
- killall SystemStart
(since it is hung)
- cd /System/Library/CoreServices
and start a bunch of likely-sounding stuff manually:
- open System\ Events.app
- open SysemUIServer.app
- open SecurityAgent.app
- open SyncServer.app
- open UserNotificationCenter.app
- open loginwindow.app
Bingo! Now you can log in normally.
- Run XPostFacto.app again, select "Uninstall" from the menu, and reboot.
I strongly suspect that there was just some set of files I could have deleted by hand to fix this, but I couldn't find them.
It's lucky (and somewhat surprising) that the kernel didn't throw a "wrong hardware" panic when running in single-user mode, nor when bringing up multi-user mode from single-user. But that was what got me out of it...