I installed Leopard on two older machines that are not officially supported by Apple.
PowerMac G4 533Mhz 354MB RAM: This machine works okay with 10.5. It is somewhat slow with graphics and the low memory causes it to hit the disk a lot. The most serious issue is waking from sleep, which results in a kernel panic. I tried adding more RAM, removing SCSI card, disconnecting an older drive, but the kernel panics continued. I’ve set energy saver to never put the machine to sleep for now.
iMac G4 1Ghz 256MB RAM: This machine only has half of the required 512MB RAM for 10.5. It seems to run fine, but swaps to disk a lot.
When spotlight first indexes the drive on first boot, the machines crawl because the disk is so busy with swapping and indexing, but once that is finished, the machines are usable.
I spent some time attempting to get Leopard booting from a ZFS volume. I used Apple’s method of Boot!=Root. Boot!=Root basically allows you to boot from ‘exotic’ filesysytems by using a helper partition that is not ‘exotic’ (HFS+) and contains enough information to mount your exotic volume and root off of it. The information includes a kernel, kernel extensions caches, and a plist specifying the UUID of the volume you want to root off of. The machine actually boots from the helper partition, loads the kernel and kernel extensions from cache, waits for the volume with the specified UUID to show up, then switches over to root off of that. Apple has been doing this for some time with helper partitions that allow booting from Apple RAID volumes.
So I created a RAID volume, made it bootable, mounted its helper Apple Boot partition, asr restored the helper partition to another partition to use as a base for my ZFS helper partition. I edited the Boot.plist to point to my ZFS volume UUID. I blessed the helper partition and rebooted in verbose mode. I got an error from the AppleFileSystem kext and got the dreaded “Waiting for root device…” message. Damn.
Apparently the problem is that Apple marks certain filesystem types as allowed to boot from. These seem to be held in the Info.plist of the AppleFileSystem kernel extension. I was going to attempt editing the plist to include ZFS, but when I saw that the kernel extension appeared to be signed, I gave up assuming that I would invalidate the kext by modifying the plist. I downloaded the kext from the darwin site, but it had all sorts of dependencies.
Why would I think it would be that easy?
That is where I left it. A few hours lost. Not a lot gained. Maybe I’ll try again…
The bless command in Leopard contains references to ZFS.
kserver:~ pbuffr$ strings /usr/sbin/bless | grep -i zfs
No ZFS container partitions found
ZFS container partition found: %s
Since bless is the command that sets the boot variables in nvram to set your a startup volume, it seems likely that Apple is at least working on boot support for ZFS, if it isn’t already there, but hidden away. Interesting.
I’m having good success with radmind and Leopard so far. A critical piece is a correct negative transcript. Folks have a pretty solid working version at the radmind wiki. Mine is similar to the one posted there.
Installer.app no longer lives in /Applications/Utilities in Leopard. It is in /System/Library/CoreServices. Apparently Apple sees the installer as a ‘CoreService’ rather than a utility.
There are TONS of changes to the way daemons and agents are handled in Leopard. This new Apple technical note explains a lot. If you are having trouble running a GUI app from a script or at startup in Leopard, this is required reading. http://developer.apple.com/technotes/tn2005/tn2083.html Thanks Quinn “The Eskimo!”
There are a number of ways to wait for the network to come up before running a script. This is one I hadn’t seen before, but I may use it in the future.
There is also scutil -r to check the reachability of a host, which is nice.
scutil -r host.domain.com