Tags: OS Deployment, ESXi, Remote-Verwaltung, PXE
Der Hypervisor von VMware lässt sich auf mehrere Arten auf einem Server einrichten. Dazu gehören das traditionelle Booten des Setup-Programms von USB-Stick oder DVD. Eine interessante Alternative bieten die WDS, deren Konfiguration für diese Aufgabe jedoch einige Handarbeit erfordert.
Muss VMware ESXi auf einer größeren Zahl von Hosts eingerichtet werden, dann ist das Hantieren mit physikalischen Medien umständlich. Außerdem verfügen viele Server über keine entsprechenden Laufwerke, so dass sich das Starten der Setup-Routine über das Netzwerk anbietet.
Microsofts Bereitstellungsdienste sind primär für die Verteilung von Windows vorgesehen. Das zeigt sich unter anderem daran, dass die grafische WDS-Konsole für Boot- und Installationsabbilder ausschließlich WIM-Archive bzw. virtuelle Laufwerke im VHD(X)-Format akzeptiert.
Konfiguration für BIOS-Rechner
ESXi benötigt für das Setup eine Linux-Umgebung, wenn man es auf einer BIOS-Maschine installieren möchte. Mit WinPE, das sich für der Verteilung von Windows normalerweise auf einem WDS-Server befindet, kann es nichts anfangen.
Aus diesem Grund importiert man im ersten Schritt eine Minimalvariante von syslinux. Entgegen verschiedenen Anleitungen im Web, die neuere Versionen des OS empfehlen, unterstützt VMware offiziell nur syslinux 3.86. Zwar klappt der PXE-Bootvorgang des ESXi-Installers auch mit der Version 4.x, aber WinPE bleibt beim kaskadierten Starten aus dem Boot-Menü von syslinux hängen.
Aus dem heruntergeladenen ZIP-Archiv entnimmt man die 3 Dateien
- core\pxelinux.0
- com32\menu\menu.c32
- com32\modules\chain.c32
und kopiert sie nach Boot\x64 unterhalb des RemoteInstall-Verzeichnisses. Nachdem ESXi nur auf 64-Bit-Prozessoren läuft, kann man es sich sparen, diese Dateien auch zu Boot\x32 hinzuzufügen.
Nun kopiert man in Boot\x64 die Datei pxeboot.n12 nach pxeboot.0, damit man sie nachher aus syslinux starten kann. Auf diese Weise ist der WDS-Server in der Lage, neben ESXi auch weiterhin Windows-Images zu verteilen.
Anschließend stellt man die Installationsdateien für ESXi bereit, indem man unterhalb von x64 ein entsprechendes Verzeichnis anlegt (in unserem Beispiel ESXi60U2) und überträgt den gesamten Inhalt des ISO-Abbilds dorthin.
Diesen Schritt schließt man ab, indem man im Installationsordner von ESXi die Datei boot.cfg editiert. Dort müssen bei allen Dateinamen die führenden Schrägstriche entfernt werden.
Nun ist es an der Zeit, den WDS mitzuteilen, dass man für BIOS-basierte x64-Systeme ein alternatives Boot-Programm verwenden möchte. Die grafische WDS-Konsole erlaubt mit ihrem Wizard jedoch nur die Auswahl von WIM-Archiven, so dass man auf das Kommandozeilen-Tool wdsutil.exe ausweichen muss. Dort gibt man folgende Befehle ein:
wdsutil /set-server /bootprogram:Boot\x64\pxelinux.0 /architecture:x64
wdsutil /set-server /n12bootprogram:Boot\x64\pxelinux.0 /architecture:x64
Der zweite Aufruf setzt das Boot-Programm für solche Clients, auf denen die WDS-Konfiguration kein Drücken der F12-Taste erfordert.
Im letzten Schritt definiert man ein Boot-Menü, mit dem man sich nachher zwischen der Installation von ESXi und Windows entscheiden kann. Zu diesem Zweck legt man unterhalb von Boot\x64 ein Verzeichnis mit der Bezeichnung pxelinux.cfg an und erzeugt dort eine Textdatei mit dem Namen default.
In diese fügt man Einträge nach folgendem Muster ein:
Wählt man am Client aus diesem Boot-Menü den ersten Eintrag aus, dann veranlasst syslinux die normale WDS-Startsequenz. Existiert für eine Architektur mehr als ein Boot-Image, dann zeigen die WDS ihr eigenes Menü an. Die Option 2 sollte jedoch das Setup von ESXi starten.
Konfiguration für UEFI-Server
Der Installer für ESXi kann seit der Version 6.0 auch auf UEFI-PCs über PXE booten. Grundsätzlich ist das Vorgehen dabei einfacher, weil man dafür kein syslinux benötigt.
Vielmehr reicht es, die Datei BOOTX64.EFI aus dem Verzeichnis efi/boot zwei Ebenen nach oben zu kopieren (also dorthin, wo sich die Installationsdateien befinden) und sie dort in mboot.efi umzubenennen. Auch in diesem Fall muss man in der boot.cfg die führenden "/" vor den Dateinamen entfernen.
Anschließend legt man mboot.efi als Boot-Programm für 64-Bit-UEFI-Rechner fest, und zwar erneut über wdsutil:
wdsutil /set-server /bootprogram:Boot\x64\ESXi60U2\mboot.efi /architecture:x64uefi
wdsutil /set-server /n12bootprogram:Boot\x64\ESXi60U2\mboot.efi /architecture:x64uefi
Anschließend kann man einen UEFI-Rechner über PXE booten und er führt sofort den Boot-Loader aus. Allerdings ist dieser dann nicht in der Lage, boot.cfg einzulesen und der Vorgang bricht mit dieser Fehlermeldung ab:
Configuration error while parsing /Boot/x64/ESXi60U2/boot.cfg. Fatal error: 24 (TFTP error).
Dabei handelt es sich ganz offensichtlich um ein WDS-Problem, denn die gleiche Konfiguration führt unter einem einfachen TFTP-Server (wie etwa dem kostenlosen von Ipswitch) zum Erfolg.
Allerdings muss man dort zusätzlich für jeden Host eine DHCP-Reservierung eintragen, in der man neben den üblichen Daten auch die IP-Adresse des TFTP-Servers und den Namen der Startdatei einträgt (mit dem relativen Pfad vom TFTP-Root aus). Zuständig sind dafür die Optionen 066 und 067. Dieser Vorgang lässt sich bei einer größeren Zahl an Hosts mit PowerShell und CSV-Dateien automatisieren.
Täglich Know-how für IT-Pros mit unserem Newsletter
Ähnliche Beiträge
Weitere Links
1 Kommentar
Vielen Dank! Dies hat alle meine Fragen perfekt beantwortet!