BINL Server - bei Verwendung von mehreren bcd-Dateien

- 06.10.2012
von Thomas Windscheif / Microlinc



Problem:

Folgende Situation:
Windows Server 2008 R2 x64 (RIS-Server mit Windows DHCP Server, TFTPD32 (x64) als TFTP-Server, binlserver von Gianluigi Tiesi)
Mehrere RIS-Installationen:
- Win XP
   - Professional
   Home Edition
- Windows Vista
   - Home Premium (x64, x86)
- Windows 7
   - Home Premium (x64, x86)
   - Professional (x64, x86)


Beim Installieren eines RIS-Server mittels PXE und Win PE passierte folgendes.
Da ich für die x86 und x64-Plattformen getrennte Bootmanager verwenden wollte und daher genötigt war die bootmgr mittels gsar zu modifizieren (siehe http://www.rrze.uni-erlangen.de/dienste/arbeiten-rechnen/windows/windows-pxe-boot.shtml), so dass dieser auf einen anderen Bootstorage zeigt (bootmgr.exe wurde zu bootx64.exe und soll auf B_A zeigen) hatte ich immer ein erstmal nicht erklärbares Problem. Immer wenn ich versuchte den modifizierten bootmgr.exe zu öffnen wurde ich trotz des Pointers auf B_A auf die bcd weitergeleitet (siehe tftpf32-Log). Zuerst vermutete ich bei dem tftp-Server und wechselte zwischen der x64-Variante als Dienst und normales Programm, außerdem noch mit der x86 (Dienst & Programm). Das war aber nicht der Fehler, auch ein Abschalten des ASLR vom verwendeten Windows 2008 R2-Servers brachte nicht den Erfolg. Nach einigem hin und her und der Tatsache, dass das Laden des PE-Images kurz nach einem Neustart des Server funktionierte, ging ich die Dienste und Aufgaben durch. Und siehe da: Der Verursacher war der Dienst binlsrv (BINL Server von Gianluigi Tiesi's, zur Erkennung der NIC-Treiber für WinXP-PXE-Setup). Dieser scheint dem PXE-Client nach dem Laden des Bootmanagers (bootmgr.exe) eine Antwort zu senden, welche BCD-Datei er nutzen soll (boot\bcd).

Nach Recherche im Source-Code (http://oss.netfarm.it/guides/) der binlsrv.py fand ich den entsprechenden Punkt und kommentierte diesen aus. Anschließend kompilierte ich die Python-Datei mit py2exe und testete das ganze nochmal.

DAS ERGEBNIS: Wunderbar. Sowohl die Windows XP-RIS-Installation als auch die Vista/W7-WinPE-Images starten.

Für diejenigen die ebenfalls einen Multi-OS-RIS-Server mit WinXP, Vista, W7 benutzen oder benutzen wollen stelle ich hier den modifizierten binl-server (0.4mod) zur Verfügung:


binl_without_bcd_pointer.zip
MICROL!NC - URL zum Artikel: http://microlinc.homeip.net/index.php?lev1=3%E2%89%A4v2=12%E2%89%A4v3=1&id=110 - Ausdruck vom 27.04.2024