Good to Know Database

WinPE 2.0: Windows PE 2.0 via PXE booten


1. Einleitung

Microsoft Windows Preinstallation Environment (Windows PE) 2.0 ist ein abgespecktes Windows Betriebssystem welches auf Windows Vista basiert und von CD, USB-Stick, WDS, PXE oder von der HDD gebootet werden kann. Windows PE wurde für Computerhersteller und Administratoren entwickelt um die Installation von Windows zu automatisieren.

In diesem Tutorial möchte ich Ihnen zeigen wie Sie WinPE 2.0 von einem PXE-Server booten können.

2. Voraussetzungen

Als Erstes müssen Sie sich das Windows Automated Installation Kit (AIK) von der Microsoft-Webseite herunterladen.

http://www.microsoft.com/downloads/details.aspx?displaylang=de&FamilyID=c7d4bc6d-15f3-4284-9123-679830d629f2

Installieren Sie anschließend das AIK auf einem Vista-System. Dazu folgen Sie einfach der Installationsroutine.

Nach der Installation starten Sie als Administrator die Eingabeaufforderung. Dazu öffnen Sie das Startmenü, klicken auf "Alle Programme" und anschließend auf "Zubehör". Jetzt machen Sie einen Rechtsklick auf die "Eingabeaufforderung". Wählen Sie in dem Menü den Eintrag "Als Administrator ausführen" und bestätigen die Sicherheitswarnung.

3. Benötigte Boot-Dateien sammeln

In diesem Abschnitt werden wir die benötigten Bootdateien zusammen kopieren und ein Bootmenü erstellen.

Mit Hilfe des Batch-Skriptes copype.cmd werden die benötigen Dateien für ein WinPE-Image bereitgestellt. Das Skript benötigt die Systemarchitektur und den Zielpfad als Argumente. In diesem Beispiel wollen wir ein Windows PE 2.0 System erstellen welches für Rechner mit x86-Architektur gedacht ist.

C:\>"C:\Program Files\Windows AIK\Tools\PETools\copype.cmd" x86 C:\winpe_x86

Erstellen Sie jetzt einen temporären Ordner in welchem alle Dateien für den PXE-Server abgelegt werden.

C:\>md C:\tftpboot
C:\>md C:\tftpboot\Boot

Wie Sie sehen erstelle ich auch einen weiteren Unterordner. Da man oft verschiedene Systeme von einem PXE-Server starten möchte, wird hier WinPE 2.0 in einem separatem Ordner abgelegt.

Um an die Bootdateien zu kommen, müssen Sie die Datei winpe.wim mounten.

C:\>"C:\Program Files\Windows OPK\Tools\x86\imagex.exe" /mountrw C:\winpe_x86\winpe.wim 1 C:\winpe_x86\mount

Anschließend kopieren Sie die Dateien aus C:\winpe_x86\mount\Windows\Boot\PXE\ in das temporäre Verzeichnis.

C:\>copy C:\winpe_x86\mount\Windows\Boot\PXE\*.* C:\tftpboot\Boot

Da wir keine weiteren Dateien aus dem WinPE-Image benötigen, sollten Sie dieses wieder unmounten.

C:\>"C:\Program Files\Windows OPK\Tools\x86\imagex.exe" /unmount C:\winpe_x86\mount

Jetzt benötigen Sie nur noch die boot.sdi aus dem AIK-Paket und das WinPE-Image.

C:\>copy "C:\Program Files\Windows AIK\Tools\PETools\x86\boot\boot.sdi" C:\tftpboot\Boot
C:\>copy C:\winpe_x86\winpe.wim C:\tftpboot\Boot

Hinweis: Hier wird das original WinPE 2.0 Image aus dem AIK-Paket verwendet. Sollten Sie weitere Programme und Treiber in das Image implementieren wollen, so tauschen Sie später einfach die winpe.wim auf dem PXE-Server aus.

4. BCD erstellen

In diesem Kapitel werden wir die Boot-Konfiguration mit Hilfe von BCDedit erstellen.

Mit dem ersten Befehl wir die BCD-Datei erstellt in welche die nachfolgenden Einstellungen gespeichert werden.

C:\>bcdedit -createstore C:\BCD

Durch die nächsten Befehle werden die Einstellungen für die Ramdisk eingefügt.

C:\>bcdedit -store C:\BCD -create {ramdiskoptions} /d "Ramdisk Options"
C:\>bcdedit -store C:\BCD -set {ramdiskoptions} ramdisksdidevice boot
C:\>bcdedit -store C:\BCD -set {ramdiskoptions} ramdisksdipath \Boot\boot.sdi

Nachdem die Ramdisk-Einstellungen gespeichert wurden, erstellen Sie einen Eintrag für das WinPE-Image.

C:\>bcdedit -store C:\BCD -create /d "WinPE 2.0 Boot Image" /application osloader

Dieser Befehl sollte nun eine Meldung ausgeben welche wie folgt aussieht.

Der Eintrag wurde erfolgreich in {b1cd684d-7331-11db-b049-dfaf511725d9} kopiert.

Den angezeigten Hex-Wert müssen Sie bei den nächsten Befehlen anstelle von %GUID1% eingeben.

Mit den folgenden Befehlen werden die Einstellungen für das WinPE-Image vorgenommen. Achten Sie bitte besonders auf die Schreibweise der Verzeichnis- und Dateinamen.

C:\>bcdedit -store C:\BCD -set %GUID1% systemroot \Windows
C:\>bcdedit -store C:\BCD -set %GUID1% detecthal Yes
C:\>bcdedit -store C:\BCD -set %GUID1% winpe Yes
C:\>bcdedit -store C:\BCD -set %GUID1% osdevice ramdisk=[boot]\Boot\winpe.wim,{ramdiskoptions}
C:\>bcdedit -store C:\BCD -set %GUID1% device ramdisk=[boot]\Boot\winpe.wim,{ramdiskoptions}

Zum Schluss werden noch die Einstellungen für den Bootmanager eingetragen.

C:\>bcdedit -store C:\BCD -create {bootmgr} /d "Windows Vista Boot Manager"
C:\>bcdedit -store C:\BCD -set {bootmgr} timeout 30
C:\>bcdedit -store C:\BCD -set {bootmgr} displayorder %GUID1%

Wenn alle Befehle erfolgreich ausgeführt wurden, kopieren Sie die erstellte BCD-Datei in den temporären PXE-Ordner.

C:\>copy C:\BCD C:\tftpboot\Boot

Da wir nun alle benötigten Dateien erstellt und zusammen kopiert haben, können Sie den Ordner C:\tftpboot auf ihren PXE-Server übertragen.

5. Tftpd32 für WinPE 2.0 konfigurieren

Tftpd32 (http://tftpd32.jounin.net) ist ein Windows-Programm welches einen DHCP- und TFTP-Server zur Verfügung stellt. In diesem Abschnitt des Tutorials möchte ich Ihnen die Konfiguration von Tftpd32 für WinPE 2.0 zeigen.

Starten Sie Tftpd32 und klicken anschließend auf "Settings".

Windows_PE_2.0_via_PXE_booten_1

Es öffnet sich jetzt ein Fenster in welchem Sie die allgemeinen Einstellungen für Tftpd32 vornehmen. Zuerst wählen Sie das "Base Directory" aus in welchem sich der Ordner "Boot" mit den WinPE 2.0 Boot-Dateien befindet. Anschließend müssen Sie unter den "Advanced TFTP Options" die Option "PXE Compatibility" auswählen. Dadurch wird auch die Option "Allow '\' As virtual root" aktiviert.

Windows_PE_2.0_via_PXE_booten_2

Nachdem Sie die allgemeinen Einstellungen vorgenommen haben, speichern Sie diese ab und wechseln zum Register "DHCP Server". Hier stellen Sie eine IP-Range für den DHCP-Server sowie das Boot-Image ein.

Windows_PE_2.0_via_PXE_booten_3

Hinweis: Wenn Sie anstelle der Datei pxeboot.n12 die pxeboot.com angeben, müssen Sie beim Bootvorgang F12 drücken damit WinPE gestartet wird.

Sobald Sie die Einstellungen für den DHCP-Server gespeichert haben, können Sie bereits Windows PE 2.0 vom Netzwerk starten. Sollten Sie Probleme beim Bootvorgang haben, öffnen Sie einfach den "Log viewer" von Tftpd32. Hier sollten Sie anhand der Meldungen recht schnell das Problem finden.

6. PXE-Server unter openSUSE 10.2 für WinPE 2.0 konfigurieren

Bevor Sie mit der Konfiguration des PXE-Servers beginnen können, müssen Sie einen DHCP-Server und einen TFTP-Server installieren und konfigurieren.

Wenn Sie diese Voraussetzungen erfüllt haben, fügen Sie in der Datei /etc/dhcpd.conf den folgenden Abschnitt ein.

allow booting;
allow bootp;
next-server 192.168.0.1;
filename "/Boot/pxeboot.n12";

Die Option next-server gibt den PXE-Server an und ist in diesem Fall auch die IP-Adresse des DHCP-Servers. Wie bereits hingewiesen, können Sie auch hier anstelle der pxeboot.n12 die pxeboot.com verwenden.

Anschließend erstellen Sie die Datei /etc/remap und fügen den folgenden Abschnitt ein.

re bootmgr\.exe /Boot/bootmgr.exe
rgG [\] /

Öffnen Sie jetzt die Datei /etc/xinetd.d/tftp und ergänzen die folgende Zeile.

server_args = -s /tftpboot -m /etc/remap

Jetzt müssen Sie nur noch das Verzeichnis für die Bootdateien erstellen und diese hinein kopieren.

opensuse102:~ # mkdir /tftpboot/Boot

In diesem Verzeichnis sollten nun die folgenden Dateien existieren.

abortpxe.com
BCD
boot.sdi
bootmgr.exe
hdlscom1.com
hdlscom1.n12
hdlscom2.com
hdlscom2.n12
pxeboot.com
pxeboot.n12
WdsConfig.inf
wdsnbp.com
winpe.wim

Damit wären die Vorbereitungen abgeschlossen und Sie können die Server-Dienste starten.

opensuse102:~ # rcdhcpd restart
opensuse102:~ # rcxinetd restart

Testen Sie anschließend ob WinPE 2.0 vom PXE-Server gestartet wird. Sollte es Probleme geben, überprüfen Sie die exakte Schreibweise der Dateien und Verzeichnisse. Wenn Ihnen hier noch kein Fehler auffällt, können Sie mit Hilfe von tcpdump überprüfen bei welcher Datei der Bootvorgang abgebrochen wird.

opensuse102:~ # tcpdump -i eth0


Dieser Eintrag wurde am 13.02.2007 erstellt und zuletzt am 04.10.2013 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_10_599.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer