MacosX

What we need for what

In fact for Mac OS X desktop or server, it s the same methods, the only change is the source media.

For doing this you must have a computer with Mac OS X on it.

Network install of Mac OS X

Create the media

You have just to find a dmg file of the Mac OS X install cdrom.

you can create one with your own media (from CDROM or USB) you receive when you buy your Apple computer of if you buy a new version of Mac OS X

For dumping your media, just insert it in the computer and use Disk Copy for creating the target dmg file.

Step 1. Insert the retail Mac OS X Install DVD into your drive
Step 2. Launch Disk Utility (Applications > Utilities)
Step 3. Select the Mac OS X Install DVD by clicking on it
Step 4. Click New Image on the Disk Utility toolbar
Step 5. Give the New image name and save it
Step 6. That's it

Or with the CLI.

Step 1. df
    /dev/disk1s3    13158216 12992304    165912    99%    /Volumes/Mac OS X Install DVD
Step 2. hdiutil unmount "/Volumes/Mac OS X Install DVD"
step 3. hdiutil convert -format UDZO -o "~/Desktop/Mac OS X Install DVD.dmg" /dev/disk1s3
    Reading whole disk (Apple_HFS : 0)…
    .....
    Adding resources…
    .....
    Elapsed Time: 40m 17.931s
    File size: 5602580995 bytes, Checksum: CRC32 $977CE522
    Sectors processed: 13158216, 12994881 compressed
    Speed: 2.6Mbytes/sec
    Savings: 16.8%
    created: /Users/exalead/Desktop/Mac OS X Install DVD.dmg
Step 4. That's it

Configure the DHCP server

I don't know if it s possible to use iPXE with efi subsystem for booting this kind of device, but we can use the Class properties of the PXE .

This is the part i add inside my dhcpd.conf

# For Mac OS X
class "AppleNBI" {
        match if substring (option vendor-class-identifier, 0, 14) = "AAPLBSDPC/i386";
        option dhcp-parameter-request-list 1,3,17,43,60;
        if (option dhcp-message-type = 1) { option vendor-class-identifier "AAPLBSDPC/i386"; }
        if (option dhcp-message-type = 1) { option vendor-encapsulated-options 08:04:81:00:00:67; }
        log(concat("AppleNBI boot: ",binary-to-ascii(16,8,":",hardware)," : ",binary-to-ascii(10,8,".",leased-address)));
        # Add specific bootfilename for Mac OS X plateforms
        filename "/gpxe/netinstall.nbi/booter";
        # 10.0.0.1 is the ip of bootserver.my.zone.tld
        option root-path "nfs:10.0.0.1:/data/MacOSX/macos:SnowLeopard.nbi/NetInstall.dmg";
}