Anleitung

WIM-Dateien unter Linux verwalten

27.06.2015 von Thorsten Eggeling
In WIM-Dateien (Windows Imaging Format) lassen sich Windows-Backups optimal speichern. Mit dem Open-Source-Tool Wimlib erstellen und bearbeiten Sie solche WIM-Dateien unter Linux.

Seit Windows Vista nutzt Microsoft WIM-Dateien für eine Vielzahl von Aufgaben inklusive der Installation. Unter Windows gibt es Tools wie Dism oder Imagex, um WIM-Dateien zu erstellen und zu bearbeiten. Wir stellen Ihnen ein Werkzeug vor, mit dem Sie WIM-Dateien auch unter Linux etwa für Backups oder für ein Windows-Reparatursystem erstellen können.

Grundlagen: Das können WIM-Dateien

Auf einer Windows-Installations-DVD befindet sich die Datei „Boot.wim“, in der das Installationssystem steckt. Eine weitere „Install.wim“ enthält das komplette System, das vom Setup-Programm auf die Platte entpackt wird. Ferner gibt es eine „Winre.wim“ mit dem Reparatur- und Wiederherstellungssystem. In einer WIM-Datei ist bei Rechnern mit vorinstalliertem Windows außerdem ein Abbild gespeichert, mit dem Sie das System bei Bedarf auf Werkseinstellungen zurücksetzen können. WIM-Dateien eignen sich aber auch gut für ein Backup eines kompletten Windows-Systems.

Das Format ist dateibasiert. Es landen also Dateien und Ordner im Archiv, keine physikalischen Festplattensektoren wie bei einigen Backup-Programmen. Dadurch lassen sich auch einzelne Dateien oder Ordner schnell aus dem Archiv extrahieren, und eine Wiederherstellung ist auch auf anderer Hardware problemlos möglich. Um Platz zu sparen, werden die Daten im Wim-Archiv komprimiert abgelegt, identische Dateien nur einmal gespeichert. Der Kompressionsfaktor hängt von der Art der Daten ab. Im Durchschnitt sind 40 bis 50 Prozent erreichbar. Für Backups eignet sich das Wim-Format vor allem dann, wenn Sie gelegentlich eine vollständige Systemsicherung anlegen wollen. Im optimalen Fall erstellen Sie die erste Sicherung von einem gerade neu installierten System, das Sie bereits individuell angepasst, mit Programmen bestückt und von Ballast befreit haben. Bei Problemen müssen Sie dann Windows in Zukunft nicht neu installieren, sondern Sie stellen es aus dem Backup wieder her. Nach größeren Updates oder anderen Änderungen erstellen Sie jeweils ein neues Backup.


Wimlib-Tool unter Linux installieren

Wimlib ist eine Open-Source-Programmbibliothek, um WIM-Dateien zu erstellen, zu ändern, zu extrahieren und zu mounten. Die Entwickler stellen dafür das Kommandozeilen-Front-End wimlib-imagex zur Verfügung. Wimlib läuft unter allen aktuellen Linux-Distributionen und unter Windows.

Für Ubuntu und seine Verwandten gibt es ein PPA-Repositorium bei https://launchpad.net, das bei Redaktionsschluss jedoch noch die ältere Wimlib-Version 1.7.1-1 enthielt. Wenn Sie das Repositorium nutzen möchten, fügen Sie es zu den Paketquellen hinzu und installieren das Paket „wimtools“. Dazu verwenden Sie im Terminal die folgenden drei Zeilen:

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install wimtools

Wie empfehlen allerdings, die aktuellste Wimlib-Version zu verwenden und aus den Quellen selbst zu kompilieren. Das geht am schnellsten über das Script „mk_wimlib.sh“. Kopieren Sie es direkt in Ihr Home-Verzeichnis, und machen Sie es mit dem Befehl

chmod 755 mk_wimlib.sh

ausführbar. Starten Sie es dann mit sudo ./mk_wimlib.sh.

Das Script installiert zuerst die nötigen Build-Tools über die Paketverwaltung und legt das Verzeichnis „~/src/ wimblib“ an. Es lädt dann das aktuelle Wimlib herunter und entpackt das Archiv. Sollte es inzwischen eine neuere Version geben, ändern Sie im Script den Wert hinter „Wimlib_Version=“ auf die neue Versionsnummer. Wimlib wird kompiliert und in „/usr/local/“ installiert. Eigentlich benötigen Sie nur das Kommandozeilen-Tool wimlibimagex, das Sie für die unterschiedlichen Funktionen jeweils mit anderen Optionen aufrufen. Basisfunktionen sind beispielsweise wimlib-imagex capture oder wimlib-imagex apply. Damit Sie sich Tipparbeit sparen können, gibt es für jede Aufgabe ein eigenes Tool, das dann etwa wimcapture und wimapply heißt. Ohne weitere Parameter gibt jedes Tool nach dem Start einen kurzen Hilfetext aus. Ausführliche Informationen und Anwendungsbeispiele rufen Sie beispielsweise mit man wimcapture ab.

Windows-Backup mit wimcapture erstellen

Wir gehen für diesen Artikel davon aus, dass Sie Linux parallel zu Windows auf dem gleichen PC installiert haben. Tipps für die Verwendung eines Linux-USB-Sticks lesen Sie im Kasten „Linux mobil: Installation auf USB-Laufwerk“. Als Backup-Ziel kommt sowohl die Windows- als auch die Linux-Partition infrage. Sicherer ist es jedoch, die Backup-Dateien auf einem Netzwerklaufwerk oder einer zweiten Festplatte redundant zu speichern. Dann sind die Dateien auch nach einem Festplattendefekt nicht verloren.

Vorbereitungen: Für ein fehlerfreies Backup muss sich das Windows-Dateisystem in einem konsistenten Zustand befinden, also ordnungsgemäß beendet worden sein und sich nicht im Ruhezustand befinden. Bei Windows 8/8.1 verwenden Sie immer „Neu starten“ (nie „Herunterfahren“), bevor Sie ein Linux-System starten. Wenn Sie etwa unter Linux Mint versuchen, eine Windows- Partition im undefinierten Zustand über den Dateimanager zu mounten, erhalten Sie eine Fehlermeldung. Starten Sie dann noch einmal Windows, und beenden Sie dieses dann mit „Neu starten“.

Bevor Sie loslegen, verschaffen Sie sich auf der Kommandozeile mit

sudo parted -l

einen Überblick über die Festplatten und Partitionen. Windows 8.1 ist auf neuen PCs immer im Uefi-Modus auf einer GPT-Partition installiert. Auf der ersten Festplatte finden Sie wenigstens vier Partitionen: eine Wiederherstellungspartition, die EFI-Systempartition, „Microsoft reserved partition“ (msftdata) und die Windows-Partition. Dazu kommen meist noch eine Daten und eine Recovery-Partition. Auf Windows- 7-PCs gibt es in der Regel nur eine Bootpartition mit einer Größe von 100 MB, ferner die Windows-Systempartition und eventuell noch eine zusätzliche Datenpartition. Parted zeigt hinter „Festplatte“ die Laufwerksbezeichnung an, etwa „/dev/sda“. Darunter steht die nummerierte Liste der Partitionen. Die Windows-Partition identifizieren Sie anhand ihrer Größe und der Bezeichnung „Basic data partition“. Das ergibt dann beispielsweise „/dev/sda4“.

Backup erstellen: Für das Backup verwenden Sie den Befehl wimcapture. Dieser erwartet als Parameter ein Quell- und ein Zielverzeichnis. Sollte die Windows-Partition gemountet sein, lösen Sie die Laufwerkseinbindung zuerst über die „Auswerfen“-Schaltfläche im Dateimanager oder den Kontextmenüpunkt „Aushängen“.

Geben Sie dann im Terminal folgenden Befehl ein:

sudo wimcapture /dev/sda4 /Backup/ Win81.wim "Window8Backup" "2015-01-12"

Ersetzen Sie dabei die Pfadangaben durch die für Ihr System erforderlichen Werte: „/dev/sda4“ ist die Windows- Partition, „/Backup/Win81.wim“ ist das Ziel. Danach folgen in Anführungszeichen eine frei wählbare Bezeichnung und eine Beschreibung für die WIM-Datei, anhand derer Sie später die Backups auseinanderhalten können. Jedes Backup landet dann vollständig in einer Datei. Deutlich platzsparender sind inkrementelle Backups, bei denen nur die Änderungen in der WIM-Datei landen. Dafür verwenden Sie diesen Befehl:

sudo wimappend /dev/sda4 /Backup/Win81.wim "Window8Backup" "2015-01-22"

Quelle und Ziel sind die gleichen wie bei wimcapture. Wimappend legt bei jedem Aufruf ein neues Image in der WIM-Datei an, das eine vollständige Wiederherstellung ermöglicht. Auf diese Weise lässt sich das System auf den ursprünglichen Zustand des ersten Backups oder einer neueren Sicherung zurücksetzen.

Nach dem gleichen Muster sollten Sie auch die EFI- oder Bootpartitionen sichern. Beachten Sie aber, dass eine Wiederherstellung nur ohne Änderung des Partitionsschemas auf der gleichen Hardware erfolgen kann.


Windows-Backup mit wimapply wiederherstellen

Zum Zurücksichern eines Backups verwenden Sie wimapply. Das Tool erwartet als Ziel immer eine leere Partition. Sie müssen daher alle Dateien sichern, die seit dem letzten Backup hinzugekommen sind. Am einfachsten ist es, zuerst ein Backup des aktuellen Zustandes zu erstellen und fehlende Dateien später manuell zu extrahieren. Sollte die Windows-Partition gemountet sein, lösen Sie die Laufwerkseinbindung über die „Auswerfen“-Schaltfläche im Dateimanager oder den Kontextmenüpunkt „Aushängen“.

Formatieren Sie dann die Windows- Partition beispielsweise im Terminal:

sudo mkfs.ntfs -f /dev/sda4

Prüfen Sie die Partitionsangabe genau, damit Sie nicht versehentlich die falsche Partition formatieren. Danach nutzen Sie folgende Befehlszeile:

sudo wimapply /Backup/Win81.wim 1 /dev/sda4

Ersetzen Sie den Pfad zur WIM-Datei und die Gerätebezeichnung durch die für Ihr System gültigen Werte. Die „1“ steht für eine Indexnummer der in der WIM-Datei enthaltenen Abbilder. Sind mehrere Abbilder enthalten, geben Sie die höchste Nummer für das letzte Backup an. Mit wiminfo /Backup/ Win81.wim können Sie die Indexnummern und die zugehörigen Beschreibungen ermitteln.

Restore auf neuer Hardware: Nach Austausch der Festplatte oder für den Umzug auf einen neuen PC können Sie wimapply ebenfalls verwenden. Auf einer leeren Festplatte fehlen jedoch die Bootpartition und Konfiguration. Es ist ziemlich umständlich, diese von Hand zu erstellen. Es geht deutlich einfacher, wenn Sie Windows wie gewohnt neu installieren und dann mit wimapply das Backup zurücksichern.

Einzelne Dateien extrahieren oder ändern

Mit wimextract können Sie einzelne Dateien oder den kompletten Inhalt einer WIM-Datei entpacken. Der Beispielbefehl

wimextract /Backup/Win81.wim 1 /Users/te/Documents/*.doc --destdir=/home/te/Dokumente

kopiert alle DOC-Dateien aus „/Users/te/Documents“ in den Ordner „Dokumente“ im Home-Verzeichnis. „1“ steht für das erste Abbild in der WIMDatei. Mit wimextract /Backup/ Win81.wim 1 --dest-dir=/home/te/Restore entpacken Sie die komplette WIM-Datei in den Ordner „Restore“. Die Zielverzeichnisse müssen bereits vorhanden sein. Beachten Sie Großund Kleinschreibung, sonst findet wimextract das Verzeichnis nicht.

Eine Alternative ist wimmount. Mit der Befehlszeile

wimmountrw /Backup/Win81.wim 1 ~/mnt/wim

hängen Sie das Abbild „1“ der WIMDatei in das Verzeichnis „mnt/wim“ in Ihrem Home-Verzeichnis („~“) ein. Auch hier muss das Zielverzeichnis bereits existieren. Sie können dann Dateien heraus- oder hineinkopieren. Mit wimunmount ~/mnt/wim --commit lösen Sie die Einbindung und speichern die Änderungen. Ohne die Option „--commit“ werden die Änderungen verworfen.

Ein weiterer Befehl für die Manipulation von WIM-Dateien ist wimupdate. Damit können Sie Dateien sowie Ordner löschen oder hinzufügen. Der Terminal-Befehl

wimupdate /Backup/Win81.wim 1 --command="add 'Documents' '/Users/te/Documents'"

fügt alle Dateien aus dem Ordner „Documents“ im aktuellen Verzeichnis zu „/Users/te/Documents“ in der WIM-Datei hinzu. Auch hier ist Groß- und- Kleinschreibung genau zu beachten.

Windows-Rettungssystem erstellen

Zum Lieferumfang von Wimlib gehört auch das Script mkwinpeimg. Damit erzeugen Sie aus der Datei „Boot.wim“ von der Windows-Installations-DVD ein Windows-Notfallsystem (Windows PE/RE) für eine bootfähige CD oder einen USB-Stick. Um die Verwendung zu erleichtern, haben wir einige Tools und ein Script zusammengestellt, dass Ihnen die Anwendung zeigt. Laden Sie das Paket herunter, und entpacken Sie es in das Verzeichnis „winpe“ in Ihrem Home-Verzeichnis. Sie benötigen außerdem die ISO-Datei von Windows 8.1. Diese können Sie sich über das Microsoft Media Creation Tool kostenlos herunterladen. Verwenden Sie Windows 8.1 Core mit 32 Bit, denn ein 64-Bit-PE kann keine 32-Bit-Programme ausführen. Das 32-Bit-Notfallsystem eignet sich aber für alle Windows-Versionen – gleich ob Windows 7 oder 8, 32 oder 64 Bit.

Speichern Sie die ISO-Datei „Windows_ 8.1_Core_de_x86.iso“ unter „~/Downloads“. Wenn Sie eine andere Datei oder ein anderes Verzeichnis verwenden, passen Sie im Script den Wert hinter „WINISO=“ an. Machen Sie die Script-Datei mit

chmod 755 mk_pe.sh

ausführbar, und starten Sie sie mit sudo ./mk_pe.sh.

Das Script mountet die ISO-Datei unter „/mnt/windows8“. Es kopiert über mkwinpeimg die Datei „Boot. wim“ nach „~/winpe“ und erstellt dann „winpe.img“ für einen USB-Stick und „winpe.iso“ für eine CD/DVD. Aus dem Ordner „pe_files“ baut es zusätzliche Dateien ein. Dazu gehört der Programmstarter PC-WELT-App-Launcher, der Sie begrüßt, wenn Sie das Notfall-System booten. Über die Schaltflächen erreichen Sie den Dateimanager Double Commander, die Windows-RE-Tools für die Systemreparatur und die Netzwerkeinstellungen. Im Notfallsystem können Sie nur ein kabelgebundenes Netzwerk verwenden. WLAN funktioniert nicht. In der Liste unter den Schaltflächen tauchen einige portable Anwendungen auf, die wir als Beispiel hinzugefügt haben. Mit dabei sind 7-Zip, das Rücksetz-Tool für Windows-Anmeldekennwörter Ntpwedit und ein Remote- Registry-Editor zum Bearbeiten der Registry des installierten Systems. Sie können selbst weitere Programme hinzufügen. Damit diese in der Liste auftauchen, muss im Namen „Portable“ enthalten sein. Mit „winpe.img“ erstellen Sie einen bootfähigen Stick über das Tool „USB-Abbilderstellung“. Sie finden es bei Linux Mint über die Suchfunktion des Startmenüs. Alternativ verwenden Sie Sie dd:

dd if=winpe.img of=/dev/sd[XY]

Tragen Sie hinter „of=“ den Laufwerkspfad des USB-Sticks ein. Bei beiden Verfahren werden alle Dateien auf dem Stick gelöscht, und das Notfallsystem nimmt den gesamten Platz ein.

(PC-Welt/ad)