c't 18/2018
S. 176
FAQ
Windows Imaging Format

Windows Image-Format WIM

Antworten auf die häufigsten Fragen

WIM-Dateien

¯??? Was ist eine WIM-Datei eigentlich und wofür braucht man sie?

¯!!! In Dateien mit der Endung .wim stecken Abbilder (Images) von Windows-Installationen. Daher auch der Name WIM, der für Windows IMaging steht. Während einer Windows-Installation macht das Setup-Programm schon seit Vista im Wesentlichen nichts anderes mehr, als so ein Image aus einer WIM-Datei auf die Festplatte/SSD zu kopieren und mit einem Bootloader zu versorgen. Die WIM-Datei liegt dabei auf dem Installationsmedium im Ordner „sources“ und trägt den Namen „Install.wim“. Sie ist üblicherweise mehrere GByte groß.

Solche Dateien kommen aber auch zu anderen Zwecken als zur Windows-Installation zum Einsatz. Wenn Sie von einem Windows-Installationsmedium booten, startet davon ein Mini-Betriebssystem namens Windows PE, unter dem die eigentliche Installation abläuft. Dieses PE (Preinstallation Environment) steckt ebenfalls in einer WIM-Datei, nämlich in der boot.wim ebenfalls im Ordner Sources. Von Wiederherstellungsdatenträgern startet eine auf PE basierende Wiederherstellungsumgebung (RE, Recovery Environment) aus einer Winre.wim. Diese Datei findet sich normalerweise auch auf der Festplatte/SSD. Unser c’t-Notfall-Windows steckt ebenfalls in einer WIM-Datei. Details zu RE haben wir in [1], zu PE in [2] und zum Notfall-Windows in [3] veröffentlicht.

Art der Images

¯??? Wie ist ein Image in einer WIM-Dateien gespeichert?

¯!!! Das Image ist in der Install.wim nicht etwa sektorbasiert, sondern dateiweise gespeichert. In erster Näherung kann man sich eine WIM-Datei also ähnlich wie ein ZIP-Archiv vorstellen. Allerdings werden zusätzlich zu einer Datei und der Ordnerstruktur auch diverse Metadaten gespeichert, etwa Zugriffsrechte und Attribute. Des Weiteren können mehrere Images in einer WIM-Datei stecken, beispielsweise Windows 10 Home, Pro, Education sowie die jeweiligen N-Varianten [4].

Der Vorteil der dateibasierten Speicherung der Images liegt darin, dass sie sich auf beliebigen SSDs und Festplatten zurückspielen lassen, sofern diese nur genug Platz bieten. Auch die Frage, ob der PC im UEFI- oder BIOS-Modus bootet, spielt so keine Rolle. Das Setup-Programm partitioniert leere Laufwerke selbst, wenn man es lässt.

Platzsparmethoden

¯??? Wie kann eine Install.wim so viele Images enthalten, obwohl sie doch nur wenige GByte groß ist? Alle Images zusammen müssten doch ein Vielfaches der Größe ergeben.

¯!!! Die Images sind nicht nur komprimiert, sondern es wird beim Speichern auch sichergestellt, dass nichts doppelt enthalten ist. Dazu wird jedes Image durch einen Katalog repräsentiert, der festlegt, welche Dateien dazugehören. Zudem werden alle Dateien aufgeteilt in 32 KByte kleine Blöcke, und es wird beim Schreiben eines Images in eine WIM-Datei sichergestellt, dass niemals zwei identische Blöcke enthalten sind. Das spart nicht nur bei identischen, sondern auch bei nur teilweise identischen Dateien Platz.

Install.wim

Weil zudem die Schnittmenge bei den verschiedenen Windows-Editionen außerordentlich groß ist, wächst eine Install.wim durch das Hinzufügen weiterer Windows-Images nur wenig. Selbst bei 32- und 64-Bit-Windows ist die Schnittmenge noch recht groß, weil in beiden viele identische, architekturunabhängige Dateien enthalten sind (Bilder, Sprachpakete, Schriftarten, …).

Install.esd statt Install.wim

¯??? Ich habe einen Installationsstick mit dem Media Creation Tool erstellt, wie Sie es in [5] beschrieben haben. Doch darauf finde ich keine Install.wim. Stattdessen liegt im Ordner Sources eine mehrere GByte große Datei namens Install.esd.

¯!!! Dabei handelt es sich ebenfalls um eine WIM-Datei, allerdings eine besonders stark komprimierte, damit der Download möglichst klein ausfällt. ESD steht für Electronic Software Distribution. Sollten Sie mit dem Media Creation Tool ein Medium für 32- und 64-Bit-Installationen erstellt haben, finden Sie den Ordner Sources jeweils in den Unterordnern „x86“ und „x64“. Es gibt übrigens noch eine dritte mögliche Dateiendung für WIM-Dateien: Wenn im Ordner Sources Dateien liegen namens Install.swm, install2.swm, install3.swm und so weiter, dann sind das aufgeteilte WIM-Dateien. Das Aufteilen ist erforderlich, wenn man WIM-Dateien größer 4 GByte vom Stick an einem PC im UEFI-Modus installieren will [6].

Images anzeigen

¯??? Wie kann ich herausfinden, welche Images genau in einer WIM-Datei stecken?

¯!!! Dazu gibt es unter Windows das Kommandozeilenprogramm Dism (Deployment Image Servicing and Management). Starten Sie eine Eingabeaufforderung mit Administratorrechten und tippen Sie folgenden Befehl ein:

dism /get-wiminfo :

./wimfile:e:\sources\install.wim

Eine WIM-Datei kann mehrere Images enthalten. Ein Kommandozeilenbefehl zeigt an, welche das sind.

Beachten Sie, dass hinter /wimfile: kein Leerzeichen steht. Den Pfad dahinter sowie die Dateiendung passen Sie bitte an. Sie erhalten eine Übersicht über alle Images, die in der Datei stecken. Mit dem Parameter /get-imageinfo erhalten Sie Details zu einem einzelnen Image:

dism /get-imageinfo :

./imagefile:e:\sources\install.wim :

./index:1

Die Nummer, die Sie hinter /index: tippen müssen, entnehmen Sie der Ausgabe des vorigen Befehls; dort steht für jedes Image eine Index-Nummer drin.

In ein Image reinschauen

¯??? Wie kann ich mir ansehen, welche Dateien und Ordner genau in welchem Image stecken?

Das Open-Source-Programm 7-Zip verrät, welche Dateien und Ordner zu welchem Image in einer WIM-Datei gehören. Achtung: Entpacken Sie nicht leichtfertig die komplette WIM-Datei, denn das kann sehr viel Platz kosten.

¯!!! Das geht relativ komfortabel mit dem Open-Source-Programm 7-Zip (https://7-zip.org), das kann WIM- und ESD-Dateien öffnen. Die Images finden Sie darin jeweils in Ordnern, die als Namen die jeweilige Index-Nummer tragen. Sie können mit 7-Zip auch Daten aus der WIM-Datei extrahieren. Doch Obacht: Widerstehen Sie dem Versuch, mal eben von 7-Zip die ganze WIM-Datei entpacken zu lassen, denn dann landen alle Images auf einen Schlag auf der Platte, und das kann überraschend viel Platz kosten.

Images bearbeiten

¯??? Kann ich Images um eigene Dateien ergänzen oder welche daraus entfernen?

¯!!! Das geht mit WIM-, aber nicht mit ESD-Dateien. Das Verfahren: Mounten Sie das Image in einem Ordner auf der Platte, ändern Sie es nach Wunsch und packen Sie es wieder zurück in die WIM-Datei. Verschaffen Sie sich zuerst wie oben beschrieben einen Überblick über die enthaltenen Images in der WIM-Datei und suchen Sie die Index-Nummer des gewählten Images. Die WIM-Datei muss auf einem beschreibbaren Laufwerk liegen, der Mount-Ordner muss bereits vorhanden sein. Das Mounten erledigt folgender Befehl (Pfade und Index anpassen):

dism /mount-image :

./imagefile:e:\sources\install.wim :

./index:1 /mountdir:d:\mount

Nun können Sie im Ordner d:\mount Dateien entfernen und hinzufügen. Der nächste Befehl schreibt das Image in die WIM-Datei zurück:

dism /unmount-image :

./mountdir:d:\mount /commit

Die Option /commit am Ende weist Dism an, die Änderungen zu übernehmen. Falls Sie die Änderungen doch nicht übernehmen wollen, ersetzen Sie diese Option durch /discard.

ESD in WIM umwandeln

¯??? Da ich eine ESD-Datei nicht bearbeiten kann: Kann ich sie wenigstens in eine WIM-Datei umwandeln?

¯!!! Nein, umwandeln geht nicht, Sie können aber mit Dism Images aus einer ESD- in eine WIM-Datei exportieren und danach darin bearbeiten. Suchen Sie zuerst wie oben beschrieben die Index-Nummer des zu exportierenden Images heraus. Den Export erledigt dieser Befehl:

dism /export-image /sourceimagefile::

.f:\sources\install.esd /source:

.index:5 /destinationimagefile::

.e:\wim\install.wim /compress:max

Pfade und Index-Nummer passen Sie bitte an. Der Zielordner (hier e:\wim) muss bereits existieren. Nun dauert es etwas, bis die neue Datei auf der Platte erscheint. Sie ist etwas größer als die ESD-Datei, weil die Kompressionsstufe max trotz des Namens nicht die Maximalstufe ist. Sie ist nur die maximal für das Bearbeiten noch geeignete Stufe. Noch stärker könnten Sie mit der Stufe recovery komprimieren, doch das Ergebnis würde sich nur durch die Dateiendung von der ESD-Datei unterscheiden, hier also nicht weiterhelfen.

Insgesamt kennt dism übrigens vier Kompressionsstufen, die Sie durch Anpassen der Option /compress: auswählen: none (unkomprimiert), fast (XPRESS), max (LZX) und recovery (LZMS). Die beiden mittleren Stufen unterscheiden sich sowohl vom Platz- als auch vom Zeitbedarf beim Erstellen nur wenig: Aus einer 2,79 GByte großen ESD-Datei erzeugte die Option /compress:fast bei unserem Test in 9 Minuten und 4 Sekunden eine 3,74 GByte große WIM-Datei, bei /compress:max kam nach 9 Minuten und 28 Sekunden eine 3,44 GByte große Datei heraus.

Images selbst erzeugen

¯??? Kann ich auch selbst Images erzeugen?

¯!!! Ja, das geht mit Dism mit der Option /capture-image zum Erstellen einer Image-Datei beziehungsweise mit der Option /append-image zum Hinzufügen eines weiteren Images. Es sind einige weitere Optionen anzugeben, die Details verrät Dism, wenn Sie ein /? anhängen, also beispielsweise dism /capture-image /? eintippen. Beachten Sie zudem, dass Sie, wenn Sie eine Windows-Installation verpacken, die Wiederherstellungsumgebung Windows RE mit einpacken. Die liegt üblicherweise auf einer separaten Recovery-Partition. Mit reagentc /disable verschieben Sie sie auf Laufwerk c:, nach dem Zurückspielen des Images schiebt reagentc /enable sie wieder zurück.

Klingt alles zu kompliziert? Dann lassen Sie die Kommandozeile geschlossen und verwenden Sie stattdessen unser Sicherungsskript c’t-WIMage. Das packt Ihre laufende Windows-Installation mit nur einem Doppelklick als Image in eine WIM-Datei. Wenn Sie unseren Anleitungen folgen, können Sie auf diese Weise Ihre Windows-Installation sichern und auf nahezu beliebiger Hardware wiederherstellen. Letzteres übernimmt dann übrigens wieder das Windows-Setup-Programm, dem es egal ist, ob es ein Image von Microsoft, von einem PC-Hersteller oder von Ihnen zurückspielt. Eine Einführung sowie alle Anleitungen finden Sie unter ct.de/wimage.

Grenzen

¯??? Gibt es Einschränkungen für WIM-Dateien, was die Größe oder die Anzahl der hineinpassenden Images betrifft?

¯!!! Beides hat Microsoft unseres Wissens nach nicht dokumentiert, und selbst herausgefunden haben wir es auch nicht. Erfolgreich in eine WIM-Datei geschrieben haben wir eine 2,7 TByte große Installation, die dank reichlich unkomprimierbarer Zufallsdaten ein über 2,1 TByte großes Abbild ergab. Auf Versuche mit noch größeren Abbildern haben wir verzichtet, da schon das Sichern dieses Riesenabbilds fast 30 Stunden dauerte. Auch das Wiederherstellen war abgesehen vom enormen Zeitaufwand kein Problem.

Unbekannt ist auch die maximal mögliche Anzahl an Images in einer WIM-Datei: Nachdem wir in tagelangem automatisierten Dauertest Abbild Nummer 1030 nicht nur sichern, sondern auch problemlos wiederherstellen konnten, haben wir die Forschung abgebrochen.

Image zurückspielen ohne Setup.exe

¯??? Brauche ich eigentlich wirklich das Windows-Setup-Programm zum Zurückspielen eines Images aus einer WIM-Datei?

¯!!! Nein, denn auch das geht mit Dism, doch in aller Deutlichkeit: Das ist nur was für Leute, die den sicheren Umgang mit Windows PE oder RE beherrschen und dort mit den Kommandozeilentools Dism, Diskpart und bcdboot umgehen können. Zudem brauchen Sie Kenntnisse über die Partitionierung und über bcd-Stores. Das Folgende beschreibt das Vorgehen daher bewusst knapp: Wem diese Informationen nicht ausreichen, der sollte besser dem Setup-Programm das Zurückspielen überlassen.

Booten Sie zuerst PE oder RE und öffnen Sie mit Umschalt+F10 eine Eingabeaufforderung. Stellen Sie anschließend sicher, dass Sie die Install.wim im Zugriff haben; das Netzwerk initialisieren Sie bei Bedarf mit dem Befehl wpeutil InitializeNetwork.

Eine Übersicht über die Platten verschaffen Sie sich am einfachsten mit dem Öffnen-Dialog von Notepad. Sofern die Windows-Partition noch existiert, können Sie sie formatieren. Eine leere Platte müssen Sie hingegen erst mit diskpart einrichten. Über ct.de/y4ap finden Sie eine Textdatei mit den Befehlszeilen zum Herauskopieren, die die wesentlichen Befehle zum Partitionieren für MBR- und GPT-Platten enthält. Kopieren Sie die am besten neben die Install.wim, um sie im Ernstfall verfügbar zu haben.

Anschließend suchen Sie mit dism /get-wiminfo das passende Abbild heraus. Stecken viele Abbilder in der WIM-Datei, sorgt die Umleitung der Ausgabe in eine Textdatei für eine übersichtlichere Darstellung. Spielen Sie das ausgewählte Image mit dism /apply-image zurück. Mit bcdboot erzeugen Sie den Bootloader dafür; achten Sie dabei auf die korrekte Auswahl der jeweiligen Partitionen. Anschließend können Sie das zurückgespielte Windows wieder starten und dort dann mit reagentc /enable die RE-Umgebung reaktivieren. (axv@ct.de)