saybur
Well-known member
I figured out a method to net-boot early New World ROM systems into OS 9 using modern server software. Instructions for how to do it are here:
https://github.com/saybur/kea-mboot
This is quite useful if you need to bootstrap an old Mac without a functional optical drive, or if you want to run one without a hard drive at all.
Nothing revolutionary here, this was being done in production environments many years ago. However the patches required to get it working were all for ancient versions of the ISC DHCP server; the code and config examples at the above link can (hopefully) let other people netboot using the modern ISC Kea DHCP server, alongside Netatalk and a TFTP service. The page also has some general information and links. The netboot process is a bit… involved, and much of the existing knowledge was tailored more for institutional IT folks rather than retro computing enthusiasts. Suggestions, or even better, PRs, are welcome.
From what I've read this is implementing “NetBoot 1.0” (BOOTP with vendor additions) and will only work with the New World ROM systems from before, roughly, the summer of 1999 (from the first iMac through the earliest revisions of the iBook). Later models use DHCP/BDSP aka “NetBoot 2.0,” which requires a different approach. I suppose it might be possible to write a Kea hooks library to implement BDSP, but since this current setup has solved my immediate problem (and I’m quite unfamiliar with C++) that's a problem someone else will have to solve instead.
On an interesting historical note, the payload of BOOTP option 221, sent by the Mac to start the netboot process, is “Apple MacNC” Presumably a reference or salvaged code from the canceled/vaporware Mac NC project?
Anyone who manages to get this working, please feel free to comment here: the process is finicky enough I'd like to verify it works on someone else's network!
https://github.com/saybur/kea-mboot
This is quite useful if you need to bootstrap an old Mac without a functional optical drive, or if you want to run one without a hard drive at all.
Nothing revolutionary here, this was being done in production environments many years ago. However the patches required to get it working were all for ancient versions of the ISC DHCP server; the code and config examples at the above link can (hopefully) let other people netboot using the modern ISC Kea DHCP server, alongside Netatalk and a TFTP service. The page also has some general information and links. The netboot process is a bit… involved, and much of the existing knowledge was tailored more for institutional IT folks rather than retro computing enthusiasts. Suggestions, or even better, PRs, are welcome.
From what I've read this is implementing “NetBoot 1.0” (BOOTP with vendor additions) and will only work with the New World ROM systems from before, roughly, the summer of 1999 (from the first iMac through the earliest revisions of the iBook). Later models use DHCP/BDSP aka “NetBoot 2.0,” which requires a different approach. I suppose it might be possible to write a Kea hooks library to implement BDSP, but since this current setup has solved my immediate problem (and I’m quite unfamiliar with C++) that's a problem someone else will have to solve instead.
On an interesting historical note, the payload of BOOTP option 221, sent by the Mac to start the netboot process, is “Apple MacNC” Presumably a reference or salvaged code from the canceled/vaporware Mac NC project?
Anyone who manages to get this working, please feel free to comment here: the process is finicky enough I'd like to verify it works on someone else's network!