Die DesktopdateienEinblick in das Windows Imaging-Format

Wes Miller

Dieser Artikel basiert auf Vorabversionen von Windows-Bereitstellungstools. Änderungen an den in diesem Artikel enthaltenen Informationen sind vorbehalten.

Die Veröffentlichung von Windows Vista bringt wichtige Änderungen im Installations- und Bereitstellungsvorgang von Windows mit sich. Das Setupmodul und die gesamte Suite von Bereitstellungstools für Windows Vista (sowie die bevorstehende Version von Windows Server mit dem Codenamen „Longhorn“) sind umgearbeitet worden. Diese Änderungen und die Anstrengungen des

Windows®-Bereitstellungsteams beim Implementieren dieser Änderungen wurden in zurückliegenden TechNet Magazin-Artikeln behandelt. Dieses Thema eröffnet jedoch viele Diskussionen, und so werden Windows PE, Windows-Installation und -Bereitstellung und andere Windows-Verwaltungs- und Sicherheitsthemen in dieser neuen regelmäßigen Rubrik abgedeckt.

Im vorliegenden ersten Beitrag wird das neue Windows Imaging-Format (WIM) erörtert. Wenn Sie nicht bereits mit den Einzelheiten der Abbilderstellung vertraut sind, lesen Sie unbedingt die Randleiste "Der typische Abbilderstellungsprozess", um einen Überblick zu erhalten. Im nächsten Artikel wird das automatisierte Installationskit für Windows behandelt – eine neue Suite von Tools, die Folgendes umfasst: ImageX (das Befehlszeilenprogramm zum Erstellen und Manipulieren von WIM-Abbildern) und Windows-Bereitstellungsdienste (WDS), die die Remoteinstallationsdienste (RIS) ersetzen. Dabei wird untersucht, wie diese Tools das Bereitstellen von Betriebssystemen erleichtern.

Der Wendepunkt

Jahr für Jahr hat das Windows-Bereitstellungsteam das gleiche Feedback von Originalherstellern (OEM) und Unternehmenskunden erhalten. Sie verlangen nach einer besseren Unterstützung für die Abbilderstellung, und sie möchten, dass Microsoft vereinheitlichte Abbilderstellungstools bereitstellt. Diese Benutzer sind nicht daran interessiert, einen Drittanbieter auszuwählen und sich mit den Feinheiten des jeweiligen Produkts auseinander zu setzen. Außerdem wurde von OEMs und Unternehmenskunden oft beanstandet, dass sie für Abbilderstellungstools bezahlen sollten, die zum Bereitstellen von Windows verwendet werden. Stattdessen wurde gewünscht, dass Microsoft diese Tools bereitstellt.

Schon in der Anfangsphase der Entwicklung von Windows Vista™ ist das Windows-Bereitstellungsteam ein sehr großes Risiko eingegangen. Es wurde entschieden, das gesamte Setupmodul vollständig zu verwerfen – darunter viele Komponenten, die nahezu ein Jahrzehnt lang existierten. Das Setup war schon immer labil und enthielt zu viele Schritte. Der Prozess sollte beschleunigt, unnötige Schritte sollten entfernt und die Zuverlässigkeit des Windows-Setups sollte insgesamt verbessert werden. Zu diesem Zweck musste der gesamte Installationsvorgang von einem langsam arbeitenden Modul, das wir geraume Zeit verwendet hatten, losgelöst und durch einen komplett abbildbasierten Installationsvorgang ersetzt werden.

Entwerfen eines neuen Abbilderstellungsformats

Bereits im Anfangsstadium des Setupneuentwurfs wollten wir definieren, welche Art von Abbild wir verwenden sollten. Das klassische Argument war bislang Sektor im Vergleich zu Datei. D. h., sollten wir ein Abbildformat verwenden, das eine Kopie eines Volumens Sektor für Sektor als ein Duplikat speichert, oder eines, das jede einzelne Datei individuell speichert. Der von den meisten erwartete Vorteil ist Geschwindigkeit (mit einem Sektoransatz) im Vergleich zu Komprimierung (mit einem dateibasierten Ansatz). Am Ende kamen wir auf ein Format, das meiner Meinung nach einen großartiger Kompromiss darstellt. Es liefert sehr gute Leistung, bietet dabei jedoch auch hervorragende Komprimierung.

Am Anfang wurden mehrere Hauptziele definiert, die wir erreichen mussten, um ein Abbilderstellungsformat zu erstellen, das die Bedürfnisse von OEMs und Unternehmensmitarbeitern erfüllt. In unserer Liste überwogen die Argumente für eine dateibasierte Architektur. Die Vorteile, die dieser Ansatz bot, schien allen offensichtlich, und daher entschieden wir uns zuerst für diese Variante. So entstanden bald darauf die WIM-Dateien. (Und falls Sie sich schon gewundert haben, das "M" in WIM hat keine große Bedeutung. Die Bezeichnung WIM wurde gewählt, weil das Ganze auf wiederkehrenden Windows Team-Ereignissen kurz vor wichtigen Lieferterminen beruht, und *.WI schien eine seltsame Abkürzung zu sein.) Im Folgenden werden die Ziele dargestellt, die wir für das neue Abbildformat definiert haben.

Formatneutrales Dateisystem für Windows (NTFS) Das Abbildformat musste in beiden von Windows unterstützten Dateisystemarchitekturen funktionieren. Obwohl fast alle Systeme mit NTFS ausgeführt werden, verwenden viele OEMs und Unternehmen FAT-Dateisysteme als eine Notlösung, die ihnen beim Bereitstellen von Windows die Verwendung von MS-DOS® ermöglichen. Sie konvertieren dann später in NTFS. Dies musste für Windows Vista weiterhin unterstützt werden.

Neutrale Volumengeometrie Hier musste das alte Problem gelöst werden, das darin bestand, ein großes Volumen zu erstellen und es auf ein kleineres anzuwenden. Das Abbilderstellungstool kann dieses Problem zwar durch Tricks bei der Manipulation von Partitionen umgehen. Dies ist jedoch unzuverlässig. In einer dateibasierten Architektur nimmt das Abbild nur so viel Platz ein wie die Dateien, aus denen es besteht. Da das Dateisystem unabhängig wiederhergestellt wird, muss nicht auf die Volumengröße vertraut werden.

Der typische Abbilderstellungsprozess

Wenn ein OEM eine große Anzahl von Systemen dupliziert oder eine große Organisation Windows für zahlreiche Computer bereitstellen muss, verwenden sie gewöhnlich Abbilderstellungstechnologie. Die Voraussetzung dabei ist, dass das Hostsystem genau nach Wunsch erstellt und dann auf die Zielsysteme dupliziert wird. Falls Sie mit dem Abbilderstellungsprozess nicht vertraut sind, folgt hier eine kurze Übersicht.

  1. Der Administrator installiert Windows auf einem System und konfiguriert es wie gewünscht. Dies umfasst das Hinzufügen und Entfernen von Komponenten, das Installieren gebräuchlicher Anwendungen und das Optimieren der UI- und anderer Einstellungen. Im Folgenden wird dies als das Hostsystem bezeichnet.
  2. Der Administrator führt dann Sysprep aus (wird von Microsoft in Form von Windows-Bereitstellungstools zur Verfügung gestellt). Sysprep erledigt die schwierige Aufgabe der Bereinigung der Attribute, die eine Windows-Installation einmalig machen (wie z. B. Computername, Windows Sicherheits-ID (SID) und andere eindeutige Bezeichner im System). Sie werden zurückgesetzt, wenn die zweite Hälfte von Sysprep ausgeführt wird.
  3. Als Nächstes fährt der Administrator den Computer herunter und startet Windows PE, MS-DOS oder ein anderes Betriebssystem, das die Ausführung der Abbilderstellungsanwendung ermöglicht.
  4. Jetzt führt er/sie das Abbilderstellungstool aus, wodurch ein Abbild des Verweissystems erstellt wird. Dieses Abbild ist eine Datei (oder Sammlung von Dateien), die ein genaues Replikat des Verweisdatenträgers oder der Partition enthält.
  5. Das System wird heruntergefahren, und der Administrator archiviert das Abbild, das erforderlichenfalls aktualisiert werden kann (durch Hinzufügen von Anwendungen, Hotfixes und Service Packs).
  6. Das Abbild wird auf ein oder mehrere Computer repliziert, und Sysprep schließt seine Arbeit ab, indem es eine verkürzte Version des Setups durchläuft (als Mini-Setup oder Windows-Willkommenseite bezeichnet, je nachdem unter welcher Windows-Version Sie Sysprep ausführen und wie Sysprep konfiguriert ist). Diese Phase stützt sich auf „setupcl.exe“, eine winzige ausführbare Datei im systemeigenen Modus.

Neutrale Systemarchitektur Die Abbildarchitektur musste mit einer Architektur funktionieren, die von Windows unterstützt werden konnte. Zur damaligen Zeit lief dies auf die Unterstützung der sehr unterschiedlichen Architekturen x86 und IA64 (Intel Itanium) hinaus. Heute umfasst dies auch die x64 (AMD64 und EM64T)-Architektur.

Schnelles Erstellen und Anwenden: Das Abbild musste bei der gegebenen Komprimierung einigermaßen schnell zu erstellen sein. Weitaus wichtiger war es jedoch, dass es bei der Abbildanwendung sehr schnell war.

Unterstützen nicht-destruktiver Abbildanwendung Da wir die Upgradeoption ersetzten (sie ersetzt Windows, ohne Benutzerdaten oder Anwendungen zu schaden) sowie ein Tool ableiteten, das für die Systemwiederherstellung verwendet werden konnte, sollte es in der Lage sein, ein System abzubilden, ohne alles, was sich bereits auf dem Volumen befand, zu zerstören. Sektorbasierte Formate lassen dies ohne beträchtliche Arbeit seitens der Benutzer nicht zu. Im Allgemeinen wird entweder ein ganzes Volumen oder überhaupt nichts wiederhergestellt.

Unterstützen wichtiger Komprimierung Zu Beginn der Entwicklung von Windows Vista konzentrierten wir uns nach wie vor auf die Lieferung auf CD. Angesichts der Tatsache, dass ein Abbild von Windows XP nahezu 1 GB beträgt, war es wichtig, das Abbild so stark wie möglich zu komprimieren. Dafür gibt es Tricks, die Sie mit einem sektorbasierten Abbild durchführen können. Die beweglichen Teile in einer deartigen Implementierung bereiteten uns jedoch Bedenken. Viele sektorbasierte Formate unterdrücken Leerzeichen auf Datenträgern, um Platz zu sparen. (Warum einem Abbild eine 0 zuordnen, wenn es immer eine 0 ist?) Doch mithilfe eines dateibasierten Ansatzes wurde dies intern gelöst, da Leerzeichen nicht erfasst wurden.

Unterstützen des „Single Instancing“ der Dateien Dies ist mit dem vorherigen Problem identisch. Windows ist dafür bekannt, dass es mehrere Kopien der gleichen Datei an verschiedenen Orten speichert. Der dateibasierte Ansatz erleichterte es, nur eine Instanz jeder Datei zu speichern und die Datei bei Bedarf zu verwenden.

Unterstützen der Medien- (Datenträger-)Verteilung Schon in den Anfangsstadien von WIM, als wir ein Abbild auf einer einzelnen CD unterbringen konnten, war uns klar, dass wir mehrere Medien unterstützen mussten. Selbst wenn wir Windows auf einer CD geliefert hätten, hätten die Abbilder nach dem Hinzufügen von Anwendungen, Service Packs usw. seitens der Benutzer wahrscheinlich die Größe einer einzelnen CD oder DVD überschritten. Daher mussten wir sie über mehrere Medien mit eigenen Installations- und Wiederherstellungslösungen verteilen.

Unterstützen mehrfacher Volumenabbilds in einem Dateipaket Ein Abbild ist selten für alles geeignet. Bei der Konstruktion von "Single Instancing" haben wir auch die Möglichkeit eingebaut, mehr als ein Volumen abzuholen – und die gleichen Einstellungen für Komprimierung und Single Instancing funktionieren für alle Volumen. Wenn Sie also ein Abbild von Windows XP Professional abholen und dann ein neues Abbild von Windows XP Tablet PC Edition (die eine Obermenge von Windows XP Professional ist) anhängen, wird das Abbild nur um die Dateien erweitert, die sich in den beiden Versionen explizit unterscheiden.

Demzufolge können ein OEM oder Unternehmensmitarbeiter viele abgeleitete Abbilder ohne einen exponentiellen Anstieg in der Größe zusammenfügen. Diese Fähigkeit wäre mit sektorbasierten Formaten nicht zu erreichen gewesen.

Funktionsweise von WIM

Das WIM-Format wurde so einfach wie möglich entworfen und erfüllt unsere Leitgrundsätze. Dies wurde durch den dateibasierten Ansatz ermöglicht. Aber wie funktioniert das Ganze im Detail?

Im Prinzip verhält es sich bei einer WIM-Datei wie mit einer CAB-Datei (ähnelt dem ZIP-Format, mit dem Unterschied, dass Microsoft das CAB-Format entworfen hat und dessen Eigentümer ist). WIM wird von manchen als die "Miniversion des CAB" bezeichnet. Der Hauptunterschied zwischen einer WIM-Datei und einer CAB-Datei ist, dass ein WIM-Abbild zusätzlich zum Erstellen und Komprimieren der Datei selbst Metadaten speichert, die für die Dateien und die Verzeichnisse gelten, aus denen ein in einem Volumenabbild erstelltes Volumen besteht. Es handelt sich um eine Art Archivdatei mit allen Metainformationen, die erforderlich sind, um das Volumen in dem Zustand wiederherzustellen, in dem es bei der Abbilderstellung vorlag – Zugriffssteuerungslisten (ACLs), kurze/lange Dateinamen, Attribute und so weiter.

Beachten Sie, dass während der Erstellung zu keinem Zeitpunkt Partitionsinformationen (Größe oder Typ) gesammelt werden. Das System wird vom Anwendungsprozess auch nicht partitioniert. ImageX ist im Vergleich zu den meisten Abbilderstellungstools partitionsneutral und erfordert, dass die Partition vor der Anwendung erstellt und formatiert wird. Um den Prozess vor dem Anwenden Ihres Abbilds zu automatisieren, sollten Sie die Diskpart- und Format-Befehlszeilenprogramme verwenden.

Was in einem Volumenabbild gespeichert werden kann, wird durch nichts eingeschränkt. Ein Abbild kann zwei Volumen, das gleiche an einem Dienstag und Donnerstag erstellte Volumen, ein Abbild mit einem Service Pack und eines ohne oder alles, was Ihren Anforderungen entspricht, enthalten. Das Wichtigste ist, dass Dateien, die identisch sind, nur einmal erstellt werden. Je weniger zwei Volumenabbilder gemeinsam haben, desto mehr Platz wird eingenommen.

Es soll außerdem darauf hingewiesen werden, dass das WIM-Format nichts enthält, was seiner Verwendung mit früheren Versionen von Windows im Wege steht. Es funktioniert genauso gut mit Windows 2000 wie mit Windows Vista. Im Folgenden wird erläutert, was im Einzelnen geschieht, wenn Abbilder erstellt und angewendet werden.

Erstellen eines Abbilds

Beim Erstellen eines Abbilds werden die folgenden Schritte ausgeführt:

Volumenmetadaten werden erstellt ImageX sammelt im Volumen Daten über Dateinamen, NTFS-ACLs und andere Dateisystemattribute. (Sie können gewünschtenfalls bestimmte Dateien mit einer Skriptdatei ausschließen.)

Dateidaten werden erstellt Die Datei wird von ImageX geladen. Jede Datei wird auf das Volumen geladen und darauf vorbereitet, bestimmte Daten darüber zu sammeln.

Dateihash wird generiert Ein kryptografisches Dateihash, das auf der Datei selbst basiert, wird generiert. Dieses Hash wird zum eindeutigen Bezeichner der Dateien im Abbild.

Duplikate werden geprüft und entfernt Wenn das Abbild bereits eine andere Datei mit dem gleichen Hash enthält, wird angenommen, dass dies die gleiche Datei ist, und die neue Datei wird mit einem Verweis auf die bereits vorhandene Datei versehen.

Einmalige Dateidaten werden komprimiert Im Unterschied zu CAB und vielen anderen Archivformaten wird jede Datei in einer WIM-Datei einzeln komprimiert und nicht als eine Sammlung von Dateien, die als ein einziger Datenstrom gruppiert sind. Sie haben außerdem die Wahl, keine Komprimierung zu verwenden. In diesem Fall wird dieser Schritt ausgelassen.

Volumenmetadaten werden komprimiert und gespeichert Nachdem alle Dateien archiviert worden sind, wird ein Metadatenzugang für das Volumen erstellt. Dadurch wird jede einzelne Datei aufgelistet, die dem Abbild für das Volumen hinzugefügt wurde.

Abbild-XML-Daten werden generiert und gespeichert Dies ist ein Verweis für jedes Volumenabbild, das erstellt wird. Wenn Sie z. B. ImageX /Info ausführen, werden diese XML-Daten angezeigt.

Zwischengespeicherter WIM-Datenindex wird geschrieben Abschließend wird der Masterdatenindex (zusammen mit den zwischengespeicherten Daten) geschrieben. Hier handelt es sich um die Masterdateitabelle für das gesamte WIM; sie umfasst einen Eintrag pro Hash.

Wie Sie sehen können, wird ein WIM auf einer Datei-für-Datei-Basis erstellt. Ferner verfügen Sie über eine einzige WIM-Datei, unabhängig von der Anzahl der Volumen, die Sie an das Abbild anhängen.

Abbild-Overload

Es gab eine Reihe von Teams, die ähnliche Lösungen entwickelten, als wir mit unserer Arbeit an WIM begannen. Das Team, das für die automatisierten Bereitstellungsdienste zuständig ist, entwickelte eine Abbilderstellungslösung für ein anderes Kundensegment. Der Ansatz, den dieses Team wählte, enthielt einige sehr interessante untergeordnete Implementierungsdetails, doch sein Abbilderstellungsmodul basierte, wie es zu dieser Zeit üblich war, auf Sektoren. Das Windows XP Embedded-Team erstellte außerdem ein sektorbasiertes Abbilderstellungsmodul, mit dem eingebettete unabhängige Hardwarehersteller ihre eigenen Abbilder zum Zeitpunkt der Systemherstellung bereitstellen können. Und als das Virtual  PC-Team 2003 von Microsoft übernommen wurde, hat es ein anderes Dateiformat für virtuelle Festplattendateien (VHD) beigesteuert.

Alle diese Formate waren grundsätzlich sektorbasiert. Diese Lösungen haben zwar den Anforderungen der einzelnen Kundensegmente entsprochen, konnten jedoch unsere Richtlinien für WIM nicht erfüllen. Aus diesem Grund haben wir ein neues WIM-Format erstellt und das ImageX-Befehlszeilenprogramm für das Erstellen von Abbildern fortgesetzt. Am Ende hat eine Reihe anderer Teams unser Format übernommen, bevor es allgemein als Teil von Windows Vista Beta angesehen wurde. Das SMS-Team hat z. B. eine frühe Implementierung von WIM in ihrem OS-Bereitstellungspaket geliefert.

Anwenden eines Abbilds

Im Folgenden wird der entgegengesetzte Prozess erläutert: das Anwenden eines Abbilds.

Zwischengespeicherter WIM-Datenindex wird geladen: Dies entspricht dem letzten Schritt im vorherigen Verfahren. Da es sich hier um den Masterindex handelt, wird er als Erstes vom WIM geladen, nachdem Sie festgelegt haben, welches Volumenabbild angewendet werden soll.

Abbildmetadaten werden abgerufen und geladen ImageX lädt die Metadaten, die sich auf das jeweilige Volumenabbild beziehen.

Verzeichnisstruktur wird erstellt Um zu gewährleisten, dass jeder Datei ein Ort zugewiesen ist, an dem sie wiederhergestellt werden kann, wird die gesamte Verzeichnisstruktur des Volumens erstellt.

Dateidaten werden extrahiert Die Dateien werden vom WIM in genau derselben sequenziellen Reihenfolge extrahiert, in der sie archiviert wurden.

Dateidaten werden angewendet In diesem Schritt werden die Dateien geladen, dekomprimiert (falls das Volumenabbild im WIM komprimiert wurde) und auf die einzelnen Verweisorte kopiert. Schließlich werden alle Metadaten auf die einzelnen Datei angewendet.

Alle Verzeichnismetadaten werden angewendet Es ist wichtig, dass dies zuletzt geschieht, da die Möglichkeit besteht, dass ein ACL in einem Verzeichnis die korrekte Anwendung des Abbilds ausschließt.

Flexible Komprimierung

Eine der wichtigsten Ziele, die wir uns für das WIM-Abbilderstellungsformat setzten, war das Bereitstellen flexibler Komprimierungsoptionen. Daher bauten wir die Möglichkeit ein, ein Volumenabbild bei Bedarf mit oder ohne Komprimierung zu erstellen. Letztere Option eignet sich für Szenarios, in denen das Abbild nicht aggressiv komprimiert werden muss oder wenn eine hohe Geschwindigkeit entscheidend ist.

Es gibt ein paar Hauptgrundsätze, die in Bezug auf die Komprimierung zu beachten sind. Eine Komprimierung dauert immer länger als eine Dekomprimierung. Je aggressiver der Komprimierungsalgorithmus ist, desto länger dauert es, einen Datensatz zu komprimieren. Und je mehr Daten einem Komprimierungsalgorithmus zugeführt werden, desto leichter ist die Komprimierung.

WIM-Abbilder können mithilfe der XPress- oder LZX-Komprimierung komprimiert werden, wobei es Ihnen selbstverständlich frei steht, keine Komprimierung anzuwenden. XPress ist ein guter Kompromiss, wenn Sie eine Komprimierung benötigen, dem Erstellungsprozess jedoch nicht zu viel Zeit einräumen möchten. LZX bietet ein ideales Komprimierungsverhältnis. Allerdings dauert diese Methode beträchtlich länger.

Keine Komprimierung zu verwenden, führt zur schnellsten Abbilderstellung, ergibt jedoch das größte Abbild. Der Komprimierungstyp ist eine „pro WIM“-Option. Nachdem Sie ein Volumenabbild in einem WIM erstellt haben, müssen alle zukünftigen Volumenabbilder mit der gleichen Komprimierungseinstellung erstellt werden.

Beachten Sie, dass WIM-Abbilder auf einer Datei-für-Datei-Basis komprimiert werden und die Komprimierung deshalb nicht so vollständig wie möglich ausfällt. Dies war eine bewusste Entscheidung – dadurch kann das Abbild leichter bearbeitet werden. Die Möglichkeit, Abbilder nach der Erstellung zu bearbeiten, ist eine wichtige Option. Damit eine Datei bearbeitet werden kann, nachdem das Abbild erstellt wurde, müssen die Dateidaten und seine Metadaten ersetzt werden. Wenn wir das gesamte WIM auf einmal komprimiert hätten, wäre es verhältnismäßig kompliziert geworden, den Support für das Bearbeiten von Dateien technisch auszuführen (sofern es überhaupt möglich gewesen wäre), und das Ersetzen einer Datei im Abbild hätte eine beachtliche Zeit in Anspruch genommen. Mit diesem Kompromiss sind wir bei einem Format angelangt, das gut komprimiert ist und nach wie vor mit unseren Tools bearbeitet werden kann.

Es bleibt zu wünschen, dass Ihnen dieser Überblick einen Einblick in die Arbeitsweise der Abbilderstellungsfunktionen gewährt, die wir für Windows Vista entworfen haben. Im nächsten Artikel werden einige der Tools behandelt, die Sie zum Verwenden und Bereitstellen von WIM-Abbildern verwenden können. Außerdem werden die ImageX- und Windows-Bereitstellungsdienste näher untersucht.

Wes Miller ist Entwicklungsmanager bei Pluck (www.pluck.com) in Austin, Texas. Davor arbeitete er bei Winternals Software in Austin und bei Microsoft als Programm-Manager und Produktmanager für Windows. Sie erreichen Wes unter: technet@getwired.com. Wes Miller möchte sich bei John Macintyre, dem derzeitigen WIM/ImageX-Programm-Manager bei Microsoft, für seine Hilfe bei diesem Artikel

© 2008 Microsoft Corporation und CMP Media, LLC. Alle Rechte vorbehalten. Die nicht genehmigte teilweise oder vollständige Vervielfältigung ist nicht zulässig.