Momentan kann man sich ja für knapp 30 Euro ein Upgrade auf Windows 8 Pro per elektronischem Download besorgen. Mit dem Setup-Assistenten lässt sich sogar eine ISO-Datei erzeugen und auf DVD brennen (oder auf USB-Stick speichern). Wer jedoch (U)EFI-Hardware besitzt, und das Upgrade von einer gebooteten DVD installierte muss, läuft in eine böse Falle: Die Windows 8 Setup-DVD ist nicht in einer (U)EFI-Umgebung bootbar. Zeit, um unter ein paar Topfdeckelnach zu schauen und nach Lösungen zu graben.
Was ist das Problem?
Wer sich die Elektronische Download-Variante des Windows 8 Pro-Upgrades holt, kann diese im Setup-Assistenten als ISO-Datei speichern. Der Ablauf ist unter [4] beschrieben und klappt auch ganz gut. Brennt man die ISO-Datei per Windows 7-Bordfunktionen oder mit ImgBurn & Co. auf eine DVD, ist scheinbar alles gut. Man kann die DVD bei einem gebooteten Windows einlegen und auslesen. Soweit so gut – ist das doch der Weg, den Microsoft für Upgrades vorsieht.
Beim Schreiben meine Windows 8-Tricks-Titels bin ich aber auf ein Problem gestoßen. Natürlich probiere ich einiges aus. Da gibt es die Anwender, deren Altsystem so verhunzt ist, dass kein Upgrade aus Windows möglich ist. Es bleibt eigentlich nur ein Clean Install von einer gebooteten Setup-DVD.
Und dabei knallt es, falls (U)EFI-Hardware verwendet wird. Denn die gebrannte Setup-DVD aus dem ESD-Download ist auf (U)EFI-Systemen nicht bootfähig. Gut, man kann auf den BIOS-Mode zurückgehen. Wer aber eine Disk mit Kapazitäten größer 2 TB hat, kommt um eine UEFI-Installation auf GPT-Disk nicht herum.
Anmerkungen: Ich habe zwar keine 3 TB-Festplatte und auch keine UEFI-Hardware. Aber ich habe hier beschrieben, wie man durchaus EFI-Tests in VMware Workstation fahren kann. Einige Ausführungen erfolgen daher “etwas freihändig und ohne Netz und doppelten Boden” – bin aber sehr zuversichtlich, dass die “Trapezübung” geklappt hat.
Zudem ist zu berücksichtigen, dass (U)EFI-Boot nur in den 64-Bit-Versionen von Windows unterstützt wird! Die nachfolgenden Ausführungen beziehen sich daher auf die 64-Bit-Version von Windows 8.
Das ergab mein Test
Mein Testszenario: Die im Setup-Assistenten aus den ESD-Dateien erstellte Datei Windows.iso habe ich direkt in der virtuellen Maschine als DVD-Laufwerk eingebunden (erspart das Brennen von DVDs). Allerdings zeigte das Image in der VMware EFI-Umgebung ein sehr merkwürdiges Verhalten.
- Boote ich die DVD in einer BIOS-Umgebung komme ich sofort in den Setup-Assistenten.
- Versuche ich diese DVD in der EFI-Umgebung zu booten, wird der Datenträger nicht erkannt.
Da ich nicht wusste, ob meine EFI-Umgebung Unsinn macht, habe ich dann die ISO eines Windows 8 64-Bit-Abbilds aus meinem MSDN-Abo in die gleiche VM eingebunden. Dort klappte das Booten sowohl in der BIOS- als auch in der EFI-Umgebung.
Ein kurzer E-Mail-Austausch mit Blog-Leser Hans-Peter Matthess ergab, dass seine DVD-Box Upgrade-Version und auch die 90-Tage-Evaluierungsversion von Windows 8 Enterprise sowohl in einer BIOS- und einer EFI-Emulation bootet. So etwas kristallisierte sich auch in diesem Forenbeitrag heraus. Update: Im Nachtrag habe ich noch [6] gefunden, wo ebenfalls bestätigt wird, das die ESD-Version einer Setup-DVD nicht unter EFI bootet.
Wo liegt der Unterschied?
Hat mich interessiert, wo wohl der Unterschied in den Abbilddateien sein kann. Hans-Peter Matthess fragte in einer E-Mail nach, ob die ISO denn einen MSDOS-FAT12-Efisektor habe. Das könne man im Hex-Editor untersuchen (laut Hans-Peter soll der Efi-Sektor bei LBA 2393, Block 2393 zu finden sein). Ich habe mal einen Blick per Hex-Editor gewagt, aber nicht wirklich was an Unterschieden erkennen können. Ohne jetzt allzu tief in die Details der DVD-Struktur einzusteigen (unter [1] ist nur der CD-Boot erläutert), habe ich einen anderen Ansatz zur Analyse gewählt. Die Testversion von IsoBuster ist in der Lage, den ersten Boot-Sektor einer DVD anzuzeigen. Und dort werden die Unterschiede sehr schnell klar.
Der obige Screenshot enthält die Dateien der Boot-Sektion im ersten Track der von der ESD-Download-Variante erstellten ISO. Neben dem BootCatalog.cat findet sich nur noch eine Microsoft IMAPIv2.img-Abbilddatei im Sektor. Diese steuert wohl das Bootverhalten.
Schaut man sich dagegen das Image einer von Microsoft herunterladbaren ISO-Datei (MSDN-Variante oder 90-Tage-Eval-Version) mit Windows 8 an, ergibt sich ein anderes Bild.
Neben der BootCatalog.cat-Datei finden sich eine Microsoft Corporation.img und eine BootImage.img Abbilddatei im ersten Track. Und diese sind offenbar verantwortlich dafür, dass dieses Medium sowohl in einer BIOS- als auch in einer EFI-Umgebung booten kann.
Offenbar ist Microsoft davon ausgegangen, dass Windows 8-Updates eher nicht auf UEFI-Plattformen erfolgen und erst recht kein Upgrade per Booten von DVD erforderlich ist. Daher hat man den Assistenten entsprechend eingestellt, dass er keine zwei Boot-Abbilddateien in der ISO erzeugt.
Ich mach mir meine eigene ISO!
Tja, wie sag ich’s jetzt meinem Kinde? Nachdem mir die Unterschiede halbwegs klar waren, hätte ich das Ganze auf sich beruhen lassen können. Da ich weiß, dass einige Leute in Foren hilflos an diesem Thema rumstoppeln – weil es mich reizte – und weil ich in meinem Windows 8-Tricks-Buch noch ein paar Schmankerl einbauen will, habe ich Hacke und Schaufel aus dem Keller geholt und etwas gegraben …
Unter [7] findet sich ein Microsoft-Beitrag, der erklärt, wie man eine Windows PE-Umgebung auf eine bootbare DVD bringt, die es auch unter UEFI-Systemen tut. Offenbar kann mit mit dem Kommendozeilen-Tool Oscdimg mittels der Option bootdata eine DVD erstellen, die im x86-basierten Boot-Sektor das Standardabbild verwendet, gleichzeitig aber noch ein sekundäres EFI-Boot-Image als EFI-Startanwendung aufweist. Der Parameter 2 gibt an, dass zwei BootCatalog-Einträge zu schreiben sind.
War ein interessanter Denkansatz, da müsste sich doch was drehen lassen. Nun wollte ich mir nicht 3 GB des WAIK downloaden, um an Oscdimg.exe heranzukommen (obwohl, irgendwo auf der Platte dümpelt das Paket noch). Unter [8] hat Mark L. Ferguson dankenswerterweise den direkten Download-Link angegeben. Also das Teil heruntergeladen, entpackt und in meinen Ordner Windows\system32 kopiert.
Dann einen Ordner geöffnet und eine BATCH-Datei makeiso.bat angelegt. Anschließend per Windows-Editor folgenden Befehl eingetragen:
oscdimg -m -o -u2 –udfver102
-bootdata:2#p0,e,bC:\ESD\Windows\boot\etfsboot.com#
pEF,e,bC:\ESD\Windows\efi\microsoft\boot\efisys.bin
C:\ESD\Windows C:\ISOtst\Win8.iso
Achtet darauf, dass das alles in einer Zeile steht, ich musste das Ganze im Blog etwas aufteilen. Trennt die Zeilen durch ein Leerzeichen. Die Pfadangaben müsst ihr ggf. etwas anpassen. Wichtig ist, dass der Ordner C:\ISOtst\ erstellt werden kann, da dort die Ergebnisdatei angelegt wird. Unter [9] findet ihr bei Bedarf noch die Oscdimg-Optionen beschrieben.
Nachdem der obige Befehl erfolgreich durchgelaufen war, habe ich die Win8.iso auf die Schnelle in IsoBuster analysiert – sah gut aus. Dann flugs in meine VMware VM eingebunden und gebootet. Ich bin dann zwar auf der EFI-Shell hängen geblieben.
Aber mit dem Befehl exit kommt man aus der Shell wieder in den Boot-Manager. Dort flugs den Eintrag Boot Manager angewählt.
Und anschließend das EFI CDROM-Drive mit der gemonteten ISO als Medium ausgewählt.
Tja, was soll ich sagen? Da schmettert mir die VM doch “press any key to boot from DVD” entgegen und nach dem Antippen einer Taste kommt irgendwann dieses Dialogfeld.
Ich hab’s aus Zeitmangel nicht mehr bis zum Excess ausprobiert und nun auch noch eine Installation auf einem GPT-Datenträger durchgenudelt. Schätze aber, dass damit sich Katze im Sack respektive die DVD EFI-bootbar sein sollte.
Falls ihr auf UEFI-fähiger Hardware noch neue Erkenntnisse erlangt, lasst mir eine Rückmeldung als Kommentar zukommen. Wer sich jetzt eher auf USB-Stick zur Installation kapriziert, den möchte ich auf meinen Beitrag unter [2] verweisen. Dort zeige ich, wie Windows 7 so auf einen USB-Stick gebracht wird, dass es auf UEFI-Systemen booten kann. Das dürfte auch für Windows 8 funktionieren (beachtet aber meinen Kommentarnachtrag). Nachtrag: Habe gesehen, dass unter [10] eine Diskussion im US MS Answers-Forum meine Lösungsfindung verkürzt hätte.
Links:
1: Boot-CD explained
2: Windows 7-Installation per USB-Stick auf EFI-Systemen
3: UEFI-Emulation auf PCs
4: Windows 8 Upgrade: Schritt-für-Schritt – Teil 2
5: Microsoft Forendiskussion
6: Diskussion bei windows-8-forum.net
7: ISO-Image von Win PE für UEFI erstellen (MS)
8: MS-Anwsers-Forendiskussion OSCDIMG
9: Befehlszeilenoptionen von Oscdimg
10: Diskussion im US MS Answers Forum
11: Windows 8 Upgrade: Schritt-für-Schritt Teil II
Die USB-Variante (und damit die Lösung aus Link2) ist sowieso vorzuziehen, weil lustigerweise damit ein clean install des Upgrades auf blanker Platte ohne Handstände funktioniert.
Für meinen Teil bin ich froh, 50€ in ein DVD-Set investiert zu haben. Mit meiner Kuhstall-Flat (384k) wären meine drei Rechner wohl ansonsten immer noch nicht mit Win8 bestückt. Aber, wie gesagt, ich verwendete eine DVD lediglich, um einen USB-Stick zu erstellen. Dabei braucht es (im Unterschied zu Win7) noch nicht mal [2].
Frank
@Frank: Interessant – wie erstellt Du den USB-Sticks? Mit einem solchen Kommando:
xcopy D:\*.* /s/e/f E:\
@Günter: Ja, abschließend. Die Vorbereitung mit – aber wem sage ich das? – diskpart.
Frank
> Dabei braucht es (im Unterschied zu Win7) noch nicht mal [2].
Ja, weil der Pfad zu bootx64.efi im Unterschied zu Win 7-DVDs halt schon im Root der Win 8-DVD enthalten ist. Und statt xcopy könnte man eigentlich langsam mal robocopy verwenden.
Weiterhin: Bei obigem BootImage.img handelt es sich um den besagten
MSDOS-Efisektor.
Ich bekomm da die Fehlermeldung:
ERROR: boot sector data could not be processed
Was nun? Oder was ist falsch an meiner makeiso.bat
Keine Ahnung. Du führst den Prozess unter Windows 7 durch? Das war meine Testumgebung. Zudem habe ich die Batchdatei aus einem Fenster der Eingabeaufforderung aufgerufen (sollte aber egal sein).
Du hast sichergestellt, dass die richtigen Pfade angegeben und die Dateien da auch vorhanden sind? Kontrolliere mal deinen ESD-Ordner.
oscdimg -m -o -u2 –udfver102 -bootdata:2#p0,e,bC:\ESD\Windows\boot\etfsboot.com# pEF,e,bC:\ESD\Windows\efi\microsoft\boot\efisys.bin C:\ESD\Windows C:\ISOtst\Win8.iso
Ich habe es auch mit der Eingabeaufforderung versucht, sonst wäre die Fehlermeldung gar nicht zu lesen gewesen. Die Pfade sind exakt und korrekt.
Oben nochmals mein Text, der aber völlig ident ist mit dem eingestellten; inkl, der Leerstellen nach den Zeilen.
Sehr rätselhaft …
Aber vielleicht entdeckts du hier einen Fehler?
@Alfred: Hast Du Schreibberechtigungen auf dem Zielordner? Ich hatte in meiner Batchdatei einen Unterordner in downloads verwendet – dann müsstest Du allerdings die Pfade auf deinen Konten- und Profilnamen umbiegen. Ich habe dir meine Bat per Mail zugeschickt – vielleicht klappt es damit.
Update: Ich habe es nochmals verglichen, da ist bei dir ein Leerzeichen an der falschen Stelle. Die Batchdatei ist als ZIP-Archiv unter http://www.borncity.de/archive/makeiso.zip herunterladbar. Einfach entpacken und dann die Pfade anpassen. Der zweite Befehl in der BAT-Datei ist durch ein REM auskommentiert. (Nachtrag: Mit der Batchdatei hat’s wohl bei Leser Alfred funktioniert).
Nachtrag: Setup-USB-Stick von Setup-DVD erstellen
Der vom Upgrade-Assistenten erstellte USB-Stick mit den Installationsdateien lässt sich problemlos auf BIOS- und auf (U)EFI-Systemen booten – ich hab’s mal angetestet.
Wer sich die Upgrade-Box mit DVDs gekauft hat, verfügt aber nicht über den Upgrade-Assistenten, bzw. dieser ist dann nutzlos. Falls ihr eine Setup-DVD habt und einen USB-Stick erstellen wollt, geht das „zu Fuß“ mit Windows-Bordmitteln. Der unter [2] verlinkte Beitrag enthält zwar alle Infos, ist aber zu stark auf Windows 7 bezogen. Ich habe daher noch einen Blog-Beitrag verfasst, der Schritt-für-Schritt zeigt, wie man einen USB-Stick mit den Windows 8-Installationsdateien unter Windows 8 erstellt. Der USB-Stick kann dann auf BIOS- und UEFI-Systemen booten. Der Beitrag findet sich nachfolgend.
a1: http://www.borncity.com/blog/2012/11/23/windows-8-usb-installations-stick-erstellen/
Nachtrag: Die gebrannte DVD enthält keine install.wim
Weil ich die Frage bereits in Foren [o1] gesehen habe, noch eine Ergänzung. Erstellt man eine ISO-Datei mit dem Setup-Assistenten aus dem ESD-Ordner, enthält dieses Image keine install.wim, sondern die datei install.esd. Diese .esd-Datei enthält das Installationsabbild aber in verschlüsselter Form. Der Setup-Assistent kann die Datei entschlüsseln und entpacken.
Wer spezielle Treiber beim Setup zur Installation hinzufügen muss, hat mit der install.esd natürlich ein Problem. Man kann nicht mit DISM an das Abbild heran, um Treiberpakete hinzuzufügen. Unter [o2] hat ein Benutzer skizziert, wie sich das Problem mittels einer autounattend.xml lösen lässt.
o1: MS Forenanfrage
o2: MS-Forenanfrage Customized Upgrade
oscdimg.exe vom Windows 8 Toolkit lässt sich auch direkt von Microsoft herunterladen: Installationsprogramm.
Den Installer starten. Dann bei der Installationsauswahl alles abwählen ausser den Bereitstellungstools (ca. 40 MB).
Hm. es geht: Nach 3 Stunden. Aber wirklich wirklich kompliziert.