Mac Netzboot

DHCP

Wie man einem ISC DHCP das BootServiceDiscoveryProtocoll von Apple beibringt.

Intel-Mac Netboot Class

class "AppleNBI-i386" {
 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; }

 filename "macnbi-x86/booter";
 option root-path "nfs:192.168.1.6:/export/nbi:Install.dmg";
}

PPC-Mac Netboot Class

class "AppleNBI-ppc" {
 match if substring (option vendor-class-identifier, 0, 13) = "AAPLBSDPC/ppc";
 option dhcp-parameter-request-list 1,3,6,12,15,17,43,53,54,60;
 filename "macnbi-ppc/booter";
 option vendor-class-identifier "AAPLBSDPC";

 if (option dhcp-message-type = 1) {
   option vendor-encapsulated-options 08:04:81:00:00:09;
 }
 elsif (option dhcp-message-type = 8) {
   option vendor-encapsulated-options 01:01:02:08:04:81:00:00:09;
 }
 else {
   option vendor-encapsulated-options 00:01:02:03:04:05:06:07;
 }

 filename "macnbi-ppc/booter";
 option root-path "nfs:192.168.1.6:/export/nbi:Install.dmg";
}

Host Config

host macnetboot {
  hardware ethernet 00:16:cb:A8:39:C1;
  fixed-address 192.168.1.10;
  next-server 192.168.1.5;
}

TFTP

Verzeichnisstruktur anlegen.

[root@tftp ~]# mkdir /tftpboot
[root@tftp ~]# mkdir /tftpboot/macnbi-x86
[root@tftp ~]# mkdir /tftpboot/macnbi-ppc

Intel-Mac Kernel files

intelmac:~ admin$ mkdir -p tmp/macnbi-x86
intelmac:~ admin$ ditto /mach_kernel tmp/macnbi-x86/mach.macosx
intelmac:~ admin$ kextcache -a i386 -s -l -n -z -m tmp/macnbi-x86/mach.macosx.mkext /System/Library/Extensions
intelmac:~ admin$ ditto /usr/standalone/i386/boot.efi tmp/macnbi-x86/booter
intelmac:~ admin$ scp tmp/macnbi-x86/* tftp:/tftpboot/macnbi-x86

PPC-Mac Kernel files

ppcmac:~ admin$ mkdir -p tmp/macnbi-ppc
ppcmac:~ admin$ ditto /mach_kernel tmp/macnbi-ppc/mach.macosx
ppcmac:~ admin$ kextcache -a ppc -s -l -n -z -m tmp/macnbi-ppc/mach.macosx.mkext /System/Library/Extensions
ppcmac:~ admin$ ditto /usr/standalone/ppc/bootx.bootinfo tmp/macnbi-ppc/booter
ppcmac:~ admin$ scp tmp/macnbi-ppc/* tftp:/tftpboot/macnbi-ppc