Mac OS X Maschine über Netzwerk booten
Apple hat für seine Rechner auch die Möglichkeit vorgesehen, über das Netzwerk zu starten, zum Beispiel für einfachere Installationen. Wie man diese Funktion auch mit Linux als Server nutzen kann (statt der vorgesehenen OS X-Server-Variante), soll hier aufgezeigt werden.
Benötigte Komponenten
- System-Image-Dienstprogramm aus den Apple Server Admin Tools (Download bei Apple.[1])
- DHCP-Server (für die Zuweisung grundlegender Netzwerkparameter),
- TFTP-Server (für den initialen Zugriff auf Bootloader und Kernel),
- NFS-Server (für den Zugriff auf das Netboot-Image).
DHCP-Konfiguration
Die Pfadangaben in der DHCP-Konfiguration sollen so kurz wie möglich gehalten werden, da in einem DHCP-Antwortpaket nur begrenzt Platz ist. Letztendlich kann eine bestehende DHCP-Konfiguration problemlos aufgebohrt werden, da die eigentliche Konfiguration über Klassenzuordnungen funktioniert.
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-i386/booter"; option root-path "nfs:192.168.59.10:/var/nfsboot:NetInstall.dmg"; } 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; 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.59.10:/var/nfsboot:NetInstall.dmg"; }
Der in der Option root-path als zweites vorkommende Doppelpunkt dient dazu, den fernen zum lokalen Pfadanteil zu trennen. So kann in einem Aufwasch die Freigabe verbunden und (auch in Unterverzeichnissen der Freigabe) das Image gefunden werden. Diese Trennung ergibt sich aus dem Mechanismus der Freigaben und liegt bei NFS sinnvollerweise direkt vor der Datei.
TFTP-Server
Ich empfehle das Paket atftpd, allerdings im Inetd-Modus:
tftp dgram udp wait nobody.nogroup /usr/sbin/atftpd atftpd /var/tftpboot
NFS-Server
Auf die Konfiguration gehe ich hier nicht weiter ein. Eine Beispielzeile für die /etc/exports:
/var/netboot 192.168.59.0/24(async,ro,no_root_squash,insecure)
Einrichtung
Mit dem SIU (System-Image-Dienstprogramm) wird vom Installationsmedium ein Bootimage angelegt. Die im Zielordner erzeugte .dmg-Datei wird nun in den Ordner kopiert, der in /etc/exports referenziert wurde (und in der DHCP-Konfiguration angegeben).
Die Verzeichnisstruktur für den TFTP-Teil wird nun vorbereitet. Im Ordner, in dem die .dmg-Datei angelegt wurde, liegen auch noch zwei Unterordner mit den plattformabhängigen Bootloadern: ppc und i386. Diese müssen dem tftp-Server zugänglich gemacht werden:
mkdir -p /var/tftpboot/macnbi-i386 /var/tftpboot/macnbi-ppc cp i386/* /var/tftpboot/macnbi-i386/ cp ppc/* /var/tftpboot/macnbi-ppc/
Test
In /var/log/daemon.log finden sich Meldungen vom TFTP-Server, was sehr hilfreich bei der Fehlersuche ist.
Fußnoten
- ↑ Zur Systemversion passende Version herunterladen, also für 10.5 eine 10.5er Version.