Windows 2003-Server RIS mit Linux - PXELINUX
von Roland Bernert

In der folgenden Anleitung wird beschrieben, wie man den RIS-Service unter Windows 2003-Server benutzt, um Diskettenimages übers Netzwerk mittels PXE zu übertragen.
Dies kann benutzt werden, um z.B. gesamte Festplattenimages von Windowsinstallationen übers Netzwerk zu übertragen.
Voraussetzung: 
  • RIS muss auf dem Windows 2003-Server installiert sein und funktionieren
  • DHCP muss installiert und konfiguriert sein
  • DNS muss installiert und konfiguriert sein


1. Anlegen eines neuen Benutzers für die Anmeldung des zukünftigen RIS-Clients am Server.

2. Vorbereitungen für die Nutzung von Diskettenimages

Im Active Directory-Benutzer und Computer die Domäne mit der der rechten Maustaste anklicken

--> Eigenschaften
Gruppenrichtlinie - Bearbeiten
Benutzerkonfiguration -> Remoteinstallationsdienste
Hier wichtig: EXTRAS aktivieren.


Erzeugung der getesteten Diskettenimages mit dem Programm RawWriteWin.
Die DiskettenImages legt man unter RemoteInstall\Setup\German\Tools\Pxelinux\i386\images an.
Achtung: Unter Setup\German\Images liegen die Windows-Abbilder nicht die Dos-Abbilder.
Aus dem ServicePack 1 von Windows 2003-Server (gibts kostenlos im Internet von Microsoft)
extrahiert man die Dateien ntdetect.com NTLDR setupldr.exe startrom.0, startrom.com, startrom.n12
Hinweis: Hierzu benötigt man nicht die Windows2003-Server-CD !

Die restlichen Verzeichnisse (images, pxelinux.cfg, templates) sind manuell anzulegen.

Aus dem SYSLINUX-Projekt verschiedener Linux-Distributionen extrahiert man die Dateien pxelinux.0,
memdisk, menu.c32. (bei mir war es die Datei syslinux-3.84.zip aus dem Internet)

Unterhalb von pxelinux.cfg legt man eine Datei mit dem Namen default an.
Diese Datei beinhaltet das Menü zur Auswahl verschiedener DiskettenImages.
Bei mir sieht die Datei folgendermaßen aus.
Sollte ein Abbild nicht starten, hilft oft der Eintrag raw keeppxe hinter der KERNEL-Anweisung.
Hier die Datei zum kopieren:
DEFAULT menu.c32
PROMPT 0
ALLOWOPTIONS 1
MENU TITLE PXE Dos WinPE-Boot R. Bernert

LABEL floppy
  MENU LABEL Normale NT-NetBootDosDisk starten
  KERNEL memdisk
  APPEND initrd=images\dos.img

LABEL SnapShot
  KERNEL memdisk
  APPEND initrd=images\snapshot.img

LABEL netbootcom
  KERNEL memdisk raw keeppxe
  APPEND initrd=images\netcom.img

LABEL netbs
  KERNEL memdisk
  APPEND initrd=images\netboot.img

LABEL bart
  MENU LABEL BARTs Boot Diskette starten
  KERNEL memdisk
  APPEND initrd=images\bart.img

LABEL win98
  MENU LABEL Windows 98 starten
  KERNEL memdisk
  APPEND initrd=images\win98.img

LABEL MarvelYukonNT40
  KERNEL memdisk
  APPEND initrd=images\yukndnt.img

LABEL Netbootdiskcom
  KERNEL memdisk raw keeppxe
  APPEND initrd=images\netbootdisk.img

LABEL BartsPE
  MENU LABEL BARTs WinPE starten
  KERNEL startrom.0

LABEL HDBoot
  MENU LABEL Von Festplatte booten
  LOCALBOOT 0

Unter templates ist die PXELoader-Startdatei abzulegen.
Bei mir heißt diese pxe.sif.
Diese pxe.sif-datei hat bei mir folgenden Inhalt:
Hier sieht man, dass tatsächlich pxelinux.0 aus dem Syslinux-Projekt gestartet werden soll.
Hier die Datei zum Kopieren:
[OSChooser]
Description = "DosNetBootDisks"
Help = "Netzwerk-Bootdiskette remote booten (RIS)"
LaunchFile = "Setup\German\Tools\Pxelinux\i386\pxelinux.0"
Version = "1.00"
ImageType=Flat
Wie oben schon beschrieben, liegen bei mir die Diskettenabbilder im Verzeichnis Images.

Versuch: An einem Client
Im BIOS ist das Booten von der Netzwerkkarte - die selbstverständlich PXE-fähig sein muss - einzustellen.


Es sieht also gut aus ....

Die DosAbbilder (Tools) sind hinter dem Menüpunkt Maintenance and Troubleshooting "versteckt".

Hier erscheint der Name, der in der Datei pxe.sif angegeben wurde.
Auch das Boot-Menü wie unter pxelinux.cfg\default abgelegt erscheint
Hier wird gerade die Diskette snapshot.img gestartet.

Zum Schluss mountet man noch das Laufwerk des Servers, auf dem sich die Festplattenimages befinden.

Zusätzliche Netzwerktreiber einbinden:
1. In Snapshot-BootDisk bzw. BartsBootDisk
Seite: http://www.nu2.nu/bootdisk/modboot/

In A:\lib\ndis einfach die *.uha-Datei hinzufügen

Weitere Netzwerkkartentreiber gibt es unter

http://www.drivesnapshot.de/de/makebootdisk.htm
oder
http://www.nu2.nu/bootdisk/network/makedisk-old/#niclist


So geht das auch bei einer BartsBootDisk

BootDisk: http://www.nu2.nu/bootdisk/modboot/
BootCD  : http://www.nu2.nu/bootablecd/



2. Für BartPE-ISO-Datei:
In Barts PEBuilder
Gehe ins Verzeichnis ../pebuilder3110a\drivers\Net
Dort legt man für jede Netzwerkkarte ein neues Verzeichnis an, in die man die Treiberdateien einfügt.
 
Beispiel:
 
Noch ein Beispiel für die MarvelYukon Netzwerkarte:
 

Für eine BootDisk aus www.netbootdisk.com:
Zitat: siehe www.netbootdisk.com
Adding Network Card Drivers
It is possible to add network card drivers. The M$ Client software uses NDIS2 Real-Mode .DOS drivers. 

Here are the basic steps for advanced users:

Part 1 - Adding (or update) the driver itself: 
Find your NDIS2 .DOS Realmode driver. It'll have 2 files, a .DOS file and a protocol.ini file. For this example I'll call it demo.dos
In the protocol.ini file, look for the line that contains the drivername=something$ entry point line. Remember this! 
Create a new text file with the same filename as your new driver's filename, however use the .INI extension instead. eg: demo.ini 
In your new .INI file, copy the drivername=something$ line from the protocol.ini file. eg: drivername=demo$ - Most of the time the entry point is the same as the driver's filename - but not always!!! Try hexediting the DOS file if you're lost for idea's of what it could be. It's normally written in plain text within the error message strings inside the file. 
Once you have your two files, use UHARC 0.6b to modify/add files to FILES.UHA 

Part 2 - Editing the Menu (for new drivers): 
Edit carddata.txt within files.uha This is a space delimited text file that the menu program reads. It's pretty easy to follow, so just insert a line for your new card. 
The P/I/C column states if the card is PCI, ISA, or CardBus/PCMCIA. This has no real effect other than to make the end user's life easier. 
The 10/100/1000 Column is also for display purposes. 
Three short lines of comments can be included. Take note of the spacing!! 
The * next to some entries means this entry is a duplicate, so don't use it to resolve an autodetected driver's name. 

Part 3 - Adding PCI autodetection codes: 
Edit the NDIS.MAP within FILES.UHA 
This is a text file. There's sample syntax included inside it. 
Please email me or post on the forums if you've managed to get new drivers to work, or found more PCI autodetection codes. 

I use this syntax / compression for UHARC:
uharcd a -y+ -p- -r -mx -ac+ files.uha .\zip\*.* 

...where the files to compress are located in a subdirectory called ZIP


Januar 2010,  R. Bernert