RSS

PXE-Boot mit VistaPE

vischda.jpgBisher setzen wir erfolgreich BartPE ein, um übers Netzwerk Rechner zu Image- oder Diagnosezwecken zu booten. Einige Worte dazu habe ich hier schon verloren.

VistaPE bringt deutlich mehr Treiber mit als BartPE und ist m.E. auch weniger pflegeaufwändig, was das Einfügen neuer Treiber betrifft. Wie BartPE benötigt es 512 RAM Minimum. Ein CD-Boot auf Systemen mit weniger RAM funktioniert im Gegensatz zu BartPE nicht.
Alle viralen Tools sind vorhanden: diskpart, chkdsk, net use usw…

Windows Automated Installation Kit (WAIK) auf einem PC installieren
Download hier
Das WAIK ist eine Image-Datei, die auf DVD (!) gebrannt werden muss. Mit dieser DVD kann man ein VistaPE booten oder das WAIK installieren.
Nach der Installation liegen WAIK als auch VistaPE auf der Platte.

Start - Programme - Microsoft Windows AIK - Windows PE Tools Eingabeaufforderung

Es kommt ein DOS-Fenster:

copype [Arch] [Zielpfad]

[Arch] ist die Plattform: x86 oder amd64 oder ia64
[Zielpfad] ist ein lokales Verzeichnis, in dem das VistaPE-Image und später auch die ISO liegen soll - also bspw.

copype x86 c:\vistape

Dieser Befehl kopiert die VistaPE-Erstellungsumgebung in das Zielverzeichnis

VistaPE anpassen

Man hat dann im Verzeichnis c:\vistape das Image winpe.wim liegen. Dieses Image kann man bearbeiten, in dem man es in das Dateisystem mounted:

imagex /mountrw winpe.wim 1 mount

Jetzt hat man unter c:\vistape\mount die Verzeichnisstruktur und Dateien des Images im Zugriff und kann Tools reinkopieren (z.B. imagex.exe oder ghost) und Treiber hinzufügen:

peimg /inf=”[Pfad zur .inf-Datei]” c:\vistape\mount

Beispiel:

peimg /inf=”c:\Drivers\Lan\NET8254X.INF” c:\vistape\mount

Abschliessend muss das Image dismounted und geschrieben werden:

imagex /unmount /commit c:\ivistape\mount

PXE-Boot einrichten
Voraussetzung: Funktionierender PXE-Server.

Das VistaPE-Image mounten (s.o,)

cd \vistape
imagex /mountrw winpe.wim 1 mount

Ordner erzeugen, in dem alles landen soll. Der Ordner wird später auf den PXE-Server kopiert.

md c:\pxe

cd \vistape\mount\windows\boot\pxe
copy * \pxe
cd \vistape\mount\windows\boot\fonts
copy wgl4_boot.ttf \pxe
cd \waik\tools\petools\x86\boot
copy boot.sdi \pxe
cd \vistape
copy winpe.wim \pxe

Jetzt muss der Bootblock geschrieben werden (BCD, Ersatz für die boot.ini)

cd vistape\mount\windows\system32
bcdedit /createstore \pxe\BCD
bcdedit /store \pxe\bcd /create {ramdiskoptions} /d “Ramdisk options”
bcdedit /store \pxe\bcd /set {ramdiskoptions} ramdisksdidevice boot
bcdedit /store \pxe\BCD /set {ramdiskoptions} ramdisksdipath \Boot\boot.sdi
bcdedit /store \pxe\BCD /create /d “MyWinPE Boot Image” /application osloader

Man sollte eine GUID erhalten:
Der Eintrag {ed26a7d4-0ed5-11dc-9d1a-000c29ea1605} wurde erfolgreich erstellt.
Mit dieser GUID gehts weiter:

bcdedit /store \pxe\BCD /set {GUID} systemroot \Windows
bcdedit /store \pxe\BCD /set {GUID} detecthal Yes
bcdedit /store \pxe\BCD /set {GUID} winpe Yes
bcdedit /store \pxe\BCD /set {GUID} osdevice ramdisk=[boot]\Boot\winpe.wim,{ramdiskoptions}
bcdedit /store \pxe\BCD /set {GUID} device ramdisk=[boot]\Boot\winpe.wim,{ramdiskoptions}
bcdedit /store \pxe\BCD /create {bootmgr} /d “Windows VISTA BootManager”
bcdedit /store \pxe\BCD /set {bootmgr} timeout 30
bcdedit /store \pxe\BCD /displayorder {GUID}

Jetzt muss das ganze Verzeichnis c:\pxe auf den PXE-Server kopiert werden. Das Zielverzeichnis sollte “Boot” heissen und sich unterhalb der FTP-Root befinden.

Die dortige Datei pxeboot.n12 muss in startrom.0 umbenannt werden.

Die Datei pxelinux.cfg\default muss um diesen Eintrag ergänzt werden:

# Windows VistaPE Loader
LABEL VistaPE
MENU LABEL ^VistaPE
MENU PASSWD
KERNEL Boot\startrom.0

zukünfige Anpassungen

Zukünftig reicht es, Treiber oder Tools in ein gemountetes VistaPE-Image zu kopieren (s.o.) und das Image dann auf den Server zu kopieren.

Inspirationen/Quellen/Links:

17 Kommentare

Schreibe einen Kommentar»
  1. [...] Meine BartPE Boot CD hat mir schon immer sehr gute Dienste geleistet. Als Grundlage wird Windows XP verwendet. In letzter Zeit habe ich aber immer wieder mit nicht erkannten Geräten zu kämpfen (vor allem Netzwerk - bzw Raidcontrollertreiber). Mit VistaPE gibt es jetzt ein bootbares Vista System. Es werden sehr viel mehr Geräte erkannt und hat kaum höhere Systemanforderungen als das alte BartPE. Zum Erstellen einer VistaPE CD wird das Windows Automated Installation Kit von Microsoft benötigt. Weitere Infos findet man direkt bei VistaPE oder Stephan. [...]

  2. [...] Hier habe ich schon gezeigt, wie man VistaPE per PXE booten kann- das ganze geht aber auch mit einem USB-Stick. [...]

  3. [...] wenn ich bereits beschrieben habe, wie sich VistaPE via PXE oder USB booten lässt, so hat doch das gute alte BartPE natürlich seine [...]

  4. [...] Meine BartPE Boot CD hat mir schon immer sehr gute Dienste geleistet. Als Grundlage wird Windows XP verwendet. In letzter Zeit habe ich aber immer wieder mit nicht erkannten Geräten zu kämpfen (vor allem Netzwerk - bzw Raidcontrollertreiber). Mit VistaPE gibt es jetzt ein bootbares Vista System. Es werden sehr viel mehr Geräte erkannt und hat kaum höhere Systemanforderungen als das alte BartPE. Zum Erstellen einer VistaPE CD wird das Windows Automated Installation Kit von Microsoft benötigt. Weitere Infos findet man direkt bei VistaPE oder Stephan. [...]

  5. Mark

    Um es etwas zu vereinfachen habe ich die befehle von oben zu einer Batch-Datei zusammen befügt.
    Erstell euch einne Textdatei mit dem Notepad und speichert sie z.B.: “PE-BAUEN.bat” im Verzeichnis C:\Program Files\Windows AIK\Tools\PETools.
    Dann startet ihr Windows PE Tools-Eingabeaufforderung und startet hier die Datei.

    ___________________________________________________________
    REM @echo off
    if exist C:\vistape goto weiter
    copype x86 C:\vistape

    :weiter
    imagex /mountrw C:\vistape\winpe.wim 1 mount
    md C:\Boot

    copy C:\vistape\mount\windows\boot\pxe\* C:\Boot
    copy C:\vistape\mount\windows\boot\fonts\wgl4_boot.ttf C:\Boot
    copy C:\Program Files\Windows AIK\Tools\PETools\x86\boot\boot.sdi C:\Boot
    copy C:\vistape\winpe.wim C:\Boot

    echo.
    echo.Jetzt hat man unter c:\vistape\mount Tools reinkopieren
    echo.

    pause
    bcdedit /createstore C:\Boot\BCD
    bcdedit /store C:\Boot\bcd /create {ramdiskoptions} /d Ramdisk-Options
    bcdedit /store C:\Boot\bcd /set {ramdiskoptions} ramdisksdidevice boot
    bcdedit /store C:\Boot\BCD /set {ramdiskoptions} ramdisksdipath \Boot\boot.sdi
    bcdedit /store C:\Boot\BCD /create /d VistaPE-Image /application osloader

    pause
    bcdedit /store C:\Boot\BCD /set {GUID} systemroot \Windows
    bcdedit /store C:\Boot\BCD /set {GUID} detecthal Yes
    bcdedit /store C:\Boot\BCD /set {GUID} winpe Yes
    bcdedit /store C:\Boot\BCD /set {GUID} osdevice ramdisk=[boot]\Boot\winpe.wim,{ramdiskoptions}
    bcdedit /store C:\Boot\BCD /set {GUID} device ramdisk=[boot]\Boot\winpe.wim,{ramdiskoptions}
    bcdedit /store C:\Boot\BCD /create {bootmgr} /d BootManager
    bcdedit /store C:\Boot\BCD /set {bootmgr} timeout 10
    bcdedit /store C:\Boot\BCD /displayorder {GUID}

    IMAGEX /UNMOUNT /COMMIT C:\vistape\mount
    ___________________________________________________________

    Getestet habe ich unter Windows Vista mit WAIK
    Gruß Markus

  6. An sich eine coole Sache - aber wie klappt das mit der GUID? Müsste die nicht irgendwie als Variable eingelesen werden?

  7. Dario

    ich glaub das ich voll der loser bin :( ich hab ein Asus Laptop und hab mein Vista löschen müssen, dachte mir an nix weil ich ja eine recovery partition hatte und war mir sicher das ich nur imagex ausfüren müsste und pronto wäre Vista wieder da.. naja, nix da…hab 2 sus.swm datein di über 2 GB groß sind die ich nicht aufmachen kann. Entpacken oder so klappt es auch nicht! Zumindest hab ich es noch nicht geschafft. ICh zweiffel schon weil sau viele leute das gleich problem haben und nicht weiter kommen oder bekommen eine erkären zusamengestelt das niemand damit was anfangen kann. ICh bin nicht der fitterste aber teilweise sind da zuviele Wörte die ich noch nie gehört habe.
    Wenn sich jemand mit diesen thema befasst hat, bitte bitte bitte.. schreib mir ne eMail. Weiss sonst nicht wie ich hilfe holen soll… viel dank schon mal..lg Dario

  8. @Dario: versuch doch mal bei Asus ne Recovery-CD zu bestellen… die machen das bestimmt…

  9. Thomas

    Hi,

    nette Anleitung, hab ich natürlich gleich ausprobiert. Am Ende kommt bei mir aber statt eines VistaPE-Boots nur ein:

    BOOTMGR image is corrupt. The system cannot boot. Press any key to reboot.

    Ich such jetzt auch schon 2 Stunden nach dem Fehler. Kann mir evtl. jemand helfen?

    Dank und Gruß, Thomas

  10. Thomas

    Ich bins nochmal.
    Also ich hab mal die bootmgr.exe ins TFTP-Hauptverzeichnis kopiert, dann meckert er jetzt aber dass der die /Boot/BCD nicht lesen kann (An error occured while attempting to read the boot configuration data). Das BCD-Storage liegt aber auf jedenfall am angegebenen Platz. Musst ich noch irgendwelche Dateien von \Boot nach \ verschieben?

  11. @Thomas: welche Anleitung hast Dugenommen? Meine oder die von Mark? Mit meiner sollte das problemlos klappern - wichtig ist, wirklich alle Schritte in der angegebenen Reihenfolge durchzuführen…

  12. Dario

    Wollte schonmal ein dickes Danke sagen für die hilfe… habs zwar noch nicht geschafft da was zu machen ber ich habjetzt Windows Ultimate drauf… die meinsten treiber worde sofort erkannt und weniger hab ich hinter installieren müssen.. das ding läuft :D Schade nur das meine mitgelieferte Software weg sind aber so wichtig waren die auch wieder nicht…war mir eh zu viel mühl dabei :))

  13. Thomas

    Hi Stephan,

    ich hab deine genommen.
    Was mich z.b. wundert ist: Warum sucht der die bootmgr.exe im TFTP-Hauptverzeichnis und nicht unter Boot, so wie es deine Anleitung angibt. Zu meinem Problem, dass er die BCD nicht findet hab ich bisher auch nur gehört, dass es evtl. daran liegt, dass der nach \Boot\BCD sucht und nicht nach Boot\BCD (also ohne Anfangsbackslash). Evtl. hast ja ne Idee wie ich mein Prob gelöst bekomm.

    Vielen Dank schonmal, Thomas

  14. Thomas

    So, bin wieder einen Schritt weiter:

    Die Datei /etc/xinetd.d/tftp muss abgeändert werden:
    server_args = -s /tftpboot/
    in
    server_args = -s /tptpboot/ -m /etc/tftp_remap.conf

    und in die /etc/tftp_remap.conf muss
    rg \\ /
    rein. Jetzt schafft der TFTP-Server auch mit den Windows-Backslahes umzugehen.

    Im Moment erhalte ich zwar noch den Tippfehler, dass die BCD keinen gültigen Systemeintrag enthält, aber das wird wohl ein Tippfehler von mir gewesen sein!

    Gruß, Thomas

  15. @Thomas: da schlag ich mir an den Kopf… Du hast nen Linux-Server! Das ändert die Sache natürlich ;-)
    Vielen Dank für den Hinweis!

  16. Thomas

    Ja, für Server nimmt man gescheite Betriebssysteme xD

    aber habs jetzt zum Laufen gebracht! Jetzt muss ich mir nur noch n schönes HowTo suchen wie ich mir das System sinnvoll einrichte (z.B. Software zur Verfügung stell und diese dynmaisch nachladen kann. Ist ja bisschen unsinnig das Image Gigabytegröße erreichen zu lassen)

  17. Ziggy

    Die GUID bekomme ich im Skript wie folgt:
    Bcdedit /store c:\winpe_x86\mount\boot\BCD –create /d “WINPE” –application osloader > %temp%\ID.txt

    und verarbeite diese dann so:
    for /f “tokens=3″ %%n in (%temp%\ID.txt) do set ID=%%n

    Bcdedit /store c:\winpe_x86\mount\boot\BCD –set %ID% osdevice boot
    Bcdedit /store c:\winpe_x86\mount\boot\BCD –set %ID% device boot
    Bcdedit /store c:\winpe_x86\mount\boot\BCD –set %ID% path \windows\system32\winload.exe
    Bcdedit /store c:\winpe_x86\mount\boot\BCD –set %ID% systemroot \windows
    Bcdedit /store c:\winpe_x86\mount\boot\BCD –set %ID% winpe yes
    Bcdedit /store c:\winpe_x86\mount\boot\BCD –set %ID% detecthal yes
    Bcdedit /store c:\winpe_x86\mount\boot\BCD –displayorder %ID% -addlast

Schreibe einen Kommentar

Deine E-Mail wird niemals veröffentlicht. Erforderliche Felder sind als * markiert.

*
*
  • Zufälliger Beitrag:

  • Vor einem Jahr

  • Archiv

  • Anmelden/Registrieren